hannemanย inย ย 
Software Engineerย 2 years ago

Differences between full stack / frontend / backend engineers?

Im traditionally a backend engineer, but i just learned some React so its time to slap on Full Stack Engineer on my resume ๐Ÿ˜‚

Are there actually compensation differences? Any one valued over the other? I have respect for both, they both have challenges in their own right
19g616kyjayk75Software Engineerย 2 years ago
From my experience in FAANG and comparable startups (currently L6 "full stack"). Other environments may vary. I've observed differences in focus areas at various seniority levels besides obvious stack differences. Backend: most common; heavier focus on algorithms and design. At L5+ also has expectations about domain knowledge in the particular sub-specialization chosen (build systems, networking, storage, general purpose application servers). Full-stack: less common; much lower focus on algorithms. Heavier focus on domain knowledge at L4+ and often even high L3, specific to the sub-specialization chosen (Android, iOS, Web). At high L4 and L5+, relatively heavier focus on FE architecture (API design, deployment, experimentation, observability). Frontend: pretty rare; almost FE SWEs are good full-stack SWEs that happen to spend most of their time in FE. I haven't noticed significant compensation differences, level for level. But there are definite level distribution differences. It's common to have multiple L5 and L6 on a BE team, but even mature and high-scale FE teams commonly have just one L5 TL and 1-2 L5 IC plus a handful of L3 and L4 SWE. So indirectly, you can say that's a comp difference. It's pretty common to have BE SWE look down upon FE SWE because on the main overlapping skill (algorithms and design), I've noticed that level for level, FE SWE are decisively weaker than BE SWE on average. My armchair theory is most FE SWE spend their entire careers writing code that scales infinitely horizontally by running on end user devices are and are often foregrounded during operation, so unlike BE SWE rarely do (or should) contemplate things like concurrency and memory/compute efficiency. Of course, FE SWE "make up for" that with domain knowledge as well as the more business-centric parts of the job (negotiating with UX/PM, dealing with end user feedback/metrics), but that's often seen as not real engineering by folks who don't practice it on a regular basis. If someone wants to optimize for comp and is indifferent on BE vs FE (in practice, at companies of sufficient size, full stack developers are shunted into FE work if they aren't shunted into leadership roles), I'd suggest the following takeaway: Compared to other SWEs, are you relatively stronger at soft skills and domain knowledge or coding and algorithms? If the first, go FE because the technical bar per se will be much lower. If the second, go BE because you'll be outcompeted by more charismatic peers or peers who are better at learning a new library every 6 months.