Hey all, I’ve been at Amazon for a while now and starting to think about what to look for next. I did a lot of innovative UI work on my last team but now have transitioned into fully backend/distributed systems work.
The UI work that I was doing was extremely innovative and I felt like I was starting to develop a deep specialization in that space before transitioning to backend (not voluntarily since team priorities changed).
I’m starting to casually look for new opportunities and I feel like I’m sort of at a cross roads on whether to pursue a specialized career in UI or focus on becoming a more generalist SWE.
I really enjoyed the exciting UI work I was doing but I’m worried that most tech companies do not have enough scope to grow beyond senior levels as a UI engineer. This seems to be the case at Amazon, and my guess is that it’s because the backend always grows in complexity as your user base grows but the same can’t be said for front end. Of course there are some companies like Figma, Netflix that have a lot of UI scope/ambiguity.
Im looking to eventually move to Chicago for personal reasons and am a bit concerned about the market out there (always open to remote also).
I’ve been getting a bunch of big tech/unicorn/HFT recruiters reaching out. Some would let me interview for front end but there are others that seem to only be hiring backend. I’m comfortable working in both, but I feel like I need to pick a side since that will determine what prep work I need to do.
Was wondering if I could get advice on whether it’s smarter to become more of a specialist vs generalist in today’s market. Right now im mostly interested in working at big tech/HFTs/large unicorns instead of smaller startups.
Good question! There's a lot of things going on here:
For #2 in particular, I recommend this: "Between platform (serving developers) and product teams (serving end customers), what should be one's preference based on level?"
For front-end vs. back-end, I think it really depends on your preference. As I mentioned in the list above, this isn't the same as product vs. infra as front-end infra engineers are a thing (we had a ton of mobile infra teams at Instagram). An example of front-end infra is you work on the core image loading component for Instagram, which is a common view used by every product team.
From my experience, front-end/back-end split isn't what makes the technical scope run out at senior, it's more product vs. infra. As long as you're in infra and your product has scale, there's generally tons of Staff+ level scope.
In terms of specialist vs. generalist, I don't think the market favors either one. I have seen both reach incredibly senior levels (L7+, $1M+ TC). What I will say though is that every engineer needs to start their career as a specialist as becoming extremely good at 1 thing provides the street cred and foundation to master other things (for me, this was Android product work): This Is How Software Engineers Should Initially Learn
I recommend going through Staff Engineer archetypes as well to understand how long-term career trajectories can play out: https://www.jointaro.com/course/grow-from-senior-to-staff-engineer-l5-to-l6/why-have-archetypes/
Thanks Alex for the super detailed response. The UI work i've done the past two years has been strongly on the infra side. Since i've transitioned to backend recently i've realized how much I miss the UI work I was working on, although i'm glad i'm rounding out a bit as a developer. I want to get back into UI work and even considering switching teams and roles from SDE to FEE (front-end engineer) but not sure if thats a good idea as i've heard FEE's are less respected and maybe even paid slightly less. Also I feel like most of the front end roles at Amazon are product based rather than infra as you mentioned so i'm concerned there wouldn't be enough scope to grow to L6 (SDE 3), but also thinking working on the product side might help me with landing strong external front end opportunities at other companies. What would you recommend I do in my case? Thanks again for the great advice.
What would you recommend I do in my case?
It's cliched but follow your passion. At the end of the day, being genuinely excited about your work is the biggest asset you need to grind things out long-term and earn those hard-fought promotions.
I wouldn't worry too much about the front-end web disrespect thing (it does exist but irrelevant), because you are already operating at a top company (FAANG). Once you get into that FAANG-level echelon, tech stack doesn't really matter as it's assumed that whatever stack you're working on, you have a world-class level of depth with it.