Hacker News .hnnew | past | comments | ask | show | jobs | submitlogin

My answer is it depends on what you want to do. If you want to work at a FAANG, specialization is the name of the game. Find a niche like time-series databases or something, and work on that.

If you want to work at a smaller company or found a startup, being a generalist is a great asset. It also puts you closer to the top of the hierarchy if you can make yourself invaluable to the business/yourself by being a “Swiss army knife.” By that, I mean everyone wants you around, because you can probably solve upwards of 90% of the problems that arise.

Of course, you can’t be a full generalist, you will end up having some language or tech stack you’re more adept in. That’s fine. You’ll probably end up being “T” shaped.

But to reiterate: if you want to make good money and you love a niche topic, specialize in it. Then go and work at a company with the scale/needs for that specific niche. Otherwise, if you’re a generalist, you’re better equipped to handle a vast multitude of problems, build initial solutions, and then hand them off to specialists as your company/project grows.

Edit: You might also just be a fox and not a hedgehog — that’s what I would consider myself. An interesting read: https://en.m.wikipedia.org/wiki/The_Hedgehog_and_the_Fox.



> If you want to work at a FAANG, specialization is the name of the game.

Strong disagree. Most FAANG dev hiring is through generalist pipelines, and plenty of L5/L6 devs move around between different domains and tech areas.


I’ve never worked at a FAANG, so I may be mistaken. What I do know is that all my friends/acquaintances who’ve ended up at FAANGs have branched deeper into various niches than would be possible at smaller companies.

For example, at a company with 50 people, it might be unreasonable to develop hyper optimized native apps for each platform that necessitate a specialist in memory management optimization in Swift. (This is a real example.)

At a FAANG, jobs like that seem to be relatively common. Scale brings challenges that the vast majority of businesses don’t have to deal with. These challenges require solutions the vast majority of companies can’t afford to build.

The only other field I can think of that requires specialists to the degree FAANG-scale companies do is academia, which is ridiculously hyper-specialized (out of necessity).

I’m not sure about the hiring process... I do know about the prevalence of “leetcode” challenges, though, which I suppose are rather generalist.


As an ex-FAANG who knows dozens of folks at FAANG companies: the vast, vast majority of folks there are generalists, whether they know it or not. The number of people doing anything remotely "hyper optimized" is extremely small relative to the number of employees.

They may work on more specialized problems, but only because the corps are big enough to have entire teams or orgs around things most companies can't even do in-house, but it doesn't make the ICs specialists themselves.

To give you an idea, the last offer I got from Google had me choosing between a team developing a proprietary database, a team working on low-level networking problems, and a team responsible for, essentially, refactoring another teams code to make it portable.

Specialist teams, mostly generalist individuals.


I suppose it’s a semantic difference.

In the startup world, being a generalist might mean “Python, Node, Go, some backend frameworks (Express, Django, etc.), HTML/CSS, some frontend frameworks (React, Vue), maybe some experience with cloud and devops, also maybe experience with GraphQL or gRPC, good knowledge of key/value stores and SQL databases, probably high-level knowledge of ancillary technologies like JWT, auth systems, a good understanding of data structures and algorithms, experience in optimizing queries, oh and also a little React Native and maybe Cordova.... <and so on, and so on>” (This is me.)

In a FAANG, one might be a generalist in something like “iOS” or “ML” and then develop a deeper subspecialty in that field.

To me, this looks like a specialist. But I understand that to someone who works at those organizations (FAANG+), a specialist is someone who developed a new language or exclusively builds compilers or does systems-level programming or something.

I suppose these are different vantage points. If you’re specialized enough, everything probably looks “generalist” to some degree.


wut


The words "generalist" and "specialist" are relative, so different people perceive the roles of "generalists" and "specialists" differently.

To me, even a small degree of specialization within software development qualifies someone as a specialist. xyzzy_plugh seems to think many more people are generalists than specialists, even at larger (FAANG) compaines.


By your definition, I've been a specialist in columnar store databases, high-performance RPC frameworks, compilers and toolchains, embedded firmware and vector graphics.

That sounds like a generalist to me.


you're crazy, I love you, but you're crazy


Scale brings different challenges but most of them have been solved already and been abstracted away (at least at Google). From what I have seen most people work on implementing some kind of business logic.


Despite their stated intentions, the hiring pipelines are for specialists. The leetcode tests are good at selecting for specialists, since the nature of those tests (irrespective of the subject matter) matches the specialist skillset.

It's important to distinguish between specialist/generalist roles versus specialist/generalist people. Most of FAANG is hiring specialists people for both roles. That's my sense of it anyway.


Yes, this is my sense as well. Interesting to see the variety of perspectives in this thread.

I suppose I might also just have particularly specialized friends/acquaintances. Who knows...


Leetcode is just a proxy for intelligence, just like SAT is


Actually not quite. L6+ hires (atleast at G) are strongly based on domain expertise and the generalists are relegated l3-l5.


Does this also apply to their SRE teams?


I've worked at Microsoft and Google as well as interviewed at Amazon and Facebook. The interviews are very broad and cover a wide range of topics regardless of what you get hired for. When I interviewed at Google I actually didn't even know what specific division I'd be working for until they gave me an offer (I did know at MS but the interviews were still very general).

The overwhelming impression I have about FAANG interviews is that they don't really care about specialty in specific technologies. Unless you're going for a research position, they care about a solid understanding of the fundamentals, data structures, algorithms, good system design and architecture etc...


I take your point. Hiring aside, though, I don’t know anywhere in the tech world where people specialize as much as they do in large, FAANG-like organizations.

I remember a fantastic Medium post by some self-taught/bootcamp coder who made his way into Uber and specialized in time-series databases, making himself the resident expert and developing deep knowledge of these databases. This quickly pulled him up the ranks and got him better compensation and recognition for his work. Now he is a uniquely qualified specialist in a deep niche.

FAANGs are full of people with deep knowledge like this, because there are so many niche problems that require strong specialization.

Perhaps you could argue they’re all T-shaped generalists, but then the lines between “specialist” and “generalist” become quite blurred.


This might sound jaded but for FAANG just focus on gaming promo process and delivering “business value” (however your org defines value). In fact, business and soft skills start to out weigh tech skills as you level up because figuring out how to communicate across a monsterous org is have the battle.

For most startups I believe generalists are more important since the teams can’t afford to hire specialists in every technical issue they tackler


> If you want to work at a FAANG, specialization is the name of the game.

From a FAANG company, it's the opposite.

Prior to FAANG I was pigeon-holed as a "junior java developer" My manager (who was toxic but that's another story) couldn't believe that I could also know JavaScript or SQL. I wasn't a "front-end" or a "database engineer!"

In FAANG, you cannot say "that's not my job." In a given day or week, I easily look at code across 3+ languages, frameworks while hoping between design and devops. Even our Front-End Engineers go oncall occasionally.

It is exhausting at times, but helps to make for a more well-rounded developer. Learning new things is helpful if nothing for the confidence to know you can tackle new things. The same could be said for diving deep I suppose.

What I'm getting at, is even when you try to "specialize", you're going to come across side-concerns.

P.S. I really like the fox/hedgehog parable. Thanks!


My experience was the exact opposite. Startup couldn’t afford for me to work in anything but a niche space. FAANG had me working on literally everything.

There are exceptions, FAANG can have incredibly specialized roles. I just think that generally they are looking for generalists.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: