I'm currently a L5 embedded specialist in Google. The specialty is nice in that it's extremely easy to break into divisions that need my niche (e.g. AR/VR, Self Driving, IoT, etc). However, there are a couple of downsides that I see relative to my peers in backend: - Niche specialty means that I'm effectively constrained to select companies and sub-teams within them. Can't really keep my TC outside of Apple or niche teams within Facebook Reality Labs, Google, Amazon devices and maybe 1 or 2 others. - Head count around me at Google is not growing much (unlike other areas like GCP). At some point I'd like to be a manager - Except for Apple, hardware divisions in top paying companies are no where near as profitable as pure software so there is some level of risk there in case of downturn - Seems like the industry standard now for Staff+ positions requires backend systems design, and frankly I'd rather learn from practice than from a book now - Hardware is less remote friendly Backend distributed systems engineering seems to address all these downsides. My main worry is that it seems like there are a lot of backend engineers and it'd be hard to shine. Are Sr backend engineers still in such high demand that the move makes sense? TC: $500K YoE: 8 (sry for clickbait title, but you guys know how it is) #google #facebook #apple #netflix #amazon #stripe #unicorns #uber #linkedin
Is there real distributed systems work in big tech outside infra teams? Shit just works and auto scales.
Probably not, but there seem to be more opportunities to join really fast growing companies (eg Instacart a year ago) coming in from distributed systems than embedded.
Thinking the exact same thing myself.
What are the main skills you need to have for an embedded position? Is the interview LC or also low level programming?
You do need to know low level programming concepts like interrupts, timers, communication protocols etc. C is also very likely to come up at some point in the interviews. Smaller companies don’t tend to include LC but larger ones and FAANG would likely include it.
Why are you constrained? I made a similar switch without much difficulty with a generalist interview, I wouldn’t worry. Companies like candidates with a variety of backgrounds Tc700, >15yoe
At what level did you do the switch? Sounds like you switched by switching companies? It's actually fairly trivial for me to switch teams within Google which is why I'm considering it.
Yep by switching companies, 5b at Uber. I’m not convinced it’d be harder at higher levels, it’s all software engineering imho
I used to be in Linux embedded systems for a long time. Now I don't even know what I'm doing. Distributed systems have their own fun challenges but you don't get to focus on one area like embedded. If I get paid like you, I'd never switch. The confidence you have in your skill is worth more than TC.
Why did you switch from Linux embedded? Would you consider going back?
The role for my expertise don't pay that much. And overall the industry I was in was shrinking rapidly.
I have gotten to hate embedded over time. It is the same shit writing A or B or C to registers over and over again. I used to get so bored working that I jumped out. Distributed systems is fun because there is little code to handle and more things to do and experiment with.
I think that there is more money to be done in a narrow specialty with very few people offering similar skills. Unless you are bored in your current specialty, I wouldn't want to be a generalist. While hand surgeons make more money than PCP, there are way more PCP offers.
That certainly applies for IC. But picture seems a bit different for mgmt ladder where it's ultimately where I want to head.
That's a fair point. Then generalist knowledge becomes super valuable.
Don’t worry about who’s in what field. Expand your knowledge and experience. Learn more things so you can build your overall skill set. You can build both depth and breadth, don’t just choose one. YOE: 23 TC: $350k (plus WLB and equity in startups along the way) Specialties: software engineer, backbone network engineer, systems architect, database engineer, engineering leader.
Was there a question somewhere in there?
Should I give up my embedded specialty and move to backend?
Don’t see any pressing need to do that. Embedded is not shrinking, it’s growing. Having 2/3 options for a 700k job is better than having 20-30 options for a 400k job.