> Smaller companies need generalists more than big ones do
Big companies like Google also seem to hire a lot of generalists who have good programming fundamentals, are smart, and can quickly (i.e. within months) become productive in many kinds of projects.
These generalists then work on a project for 1-3 years. When they lose interest, they move to another Google project or leave the company.
If you really want to work on both engineering and sales, you'd probably want to run your own business or work at a very small company.
I'd have put it the other way around. Small startups can't afford specialists, not in terms of salary, but in terms of output: there's too much stuff to do and the specialist work (whatever it is) isn't a large fraction of the total.
The larger and more mature a company is, the more able it is to afford a job title which specializes in something narrower. It doesn't need to be super large; if the product is very technical, a specialist might be necessary.
The situation can be a bit different in a large company. They might want to hire a Java developer, or a front end developer. These are specialist roles, in that the people in them have chosen a professional specialism. They're commodity specialists though, so common that they're not thought of as special. It's more rare that they want someone who can do devops, UI, JS, RoR, Java and C++ - this is a generalist.
Yup, this is spot on. In our startup one of the challenges to hiring isn't a lack of money or need, but rather that we need people who can bounce around a lot of somewhat specialized topics, while generally no one topic is big enough to justify a full-time specialist.
I wouldn't say Google et al hire a lot of generalists per se, more like they hire generics: people who intellectually know fundamentals to a depth that can be used for anything, vs. generalists, who have experience in a range of things and an amount of big-picture sense. Generics don't need experience to be useful, generalists don't need fundamentals, so to speak. (IMO, rhetorical, not hard-and-fast rules, don't @ me)
Care to share in what positions such companies make such hires? I've looked around a few times over the years and have never found the slightest hint that they did such a thing.
I’ve been recruited for these and met people who worked in these roles. Typically it’s called a CTO or Head of Engineering. Sometimes it’s a chief architect or staff/principal engineer title or something like “engineer in residence” or they let people choose their own title.
Big companies like Google also seem to hire a lot of generalists who have good programming fundamentals, are smart, and can quickly (i.e. within months) become productive in many kinds of projects.
These generalists then work on a project for 1-3 years. When they lose interest, they move to another Google project or leave the company.
If you really want to work on both engineering and sales, you'd probably want to run your own business or work at a very small company.