0

If I like everything, what should I specialize in?

Profile picture
Entry-Level Software Engineer at Taro Community9 days ago

I just watched Alex’s ”Level Up Your Code As A Software Engineer“ course. I wanted to ask about the first portion of the “Better Code Strategy” module.

A part that resonated with me is where Alex said he sees many junior devs fall into a trap of full stack when trying to specialize, which hinders them in the long run. It makes total sense that people would rather hire a 9/10 on front end than a 5/10 at front and back. I was in this situation at my previous employer - new grad role with a 4 month ramp up program. I didn't do so well on front end in training, and was told that I’d be placed in a back end role, so it “wouldn’t matter anyway”. Guess who got placed doing front end work? I had barely any support so I had to figure out everything myself. I was the only front end person on that team - the only other dev there was an L6 in back end. I also wasn’t good at communicating back then, so I was hindering the team a lot. 9 months later, I started handling front end. And right when I got good at handling front end tasks myself, I was told the architects wanted the apps my team was working on to make API calls to the backend rather than mid tier… so the team shifted focus to backend. I lost all my gains on backend by then, so that sucked. Another learning curve, within 2 months I gained independence. A week after I was told I was doing really well, I was laid off. Many people at the company outside of my team voiced that they put me in a "bad" position. I also point the finger at myself, because there was a lot that I needed to take accountability for.

Eventually, I got another job, doing database work. When I look at SQL, I see consistency in SQL and other coding languages. APIs, cloud, data, it all needs databases! To understand the world of code, it’s like everything draws back to databases. In my current role, as long as I pass the onboarding phase, then I can achieve excellence anywhere I go in my career with incredibly transferrable skills. Although I feel like I found where I’d like to dedicate time to specializing to get to the upper echelon of software engineering, I noticed I’m somebody who doesn’t mind what I do because I like everything I’ve seen so far. That’s why I figured to go for the niche that is “best” for all around career growth. With this in mind, what do you think the best fields to specialize in are?

66
2

Discussion

(2 comments)
  • 2
    Profile picture
    Engineer @ Robinhood
    8 days ago

    Start with a programming language you're most comfortable with and can consistently write code in.

    • Context switching takes away some focus. The more junior you are, the more expensive that focus cost is (since you don't have the mental framework to refocus yet). You are still learning, so there's an additional cost to make sure that learning is reinforced.
    • Business logic (which is nearly always written in some programming language) is generally what glues all the pieces of a system together. So it's a great jumping point to see how every connects.
  • 1
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    8 days ago

    I'm glad you like a lot of things 😊. I also like a lot of things, but front-end consumer mobile is what I like the most. Are there certain things you like more than others? Like to the point where you're happy to work overtime on it because it doesn't feel like work, similar to what I did with my 30+ side projects with 5 million+ users combined? If so, pick that.

    If not, here are the 2 factors that matter when choosing a specialization:

    1. Your passion for it
    2. How good you are at it

    If your passion is sort of equal for everything, you need to figure out how good you are at the end. This is tricky as judging your strength will vary based on the tech stack and the company you're at (as you've seen, you can be put in a bad position which might make you reflect on the teck stack you're working on more negatively). Here are some questions to think about when judging your strength in a particular area:

    1. Are you fast? - Can you put out commits in this stack faster than your teammates in this area who are a similar level?
    2. Are you highly correct with great quality? - Does your work in this space break less than anyone else's?
    3. Are you getting good feedback? - This is the fuzziest but also the most important one. If your manager and tech lead are telling you that you're a rockstar back-end engineer, you are probably a rockstar back-end engineer.

    On a more tactical note, I would be careful if your job is mostly running SQL queries as that will pigeonhole you more into data scientist and data engineer roles which tend to be paid less than software engineer roles. It's okay working on the code infra around running SQL like building an ORM or something but writing the queries themselves makes things tricky. It's totally okay to be good at SQL querying as a SWE (it's actually expected for Meta product SWEs to do this like I did), but it shouldn't be the bulk of your responsibility as a SWE.