Hey, tech companies. Hey, engineers working at tech companies.
There’s a great post by Chad Fowler going around with a job
description for an engineer we’d all love to work with.
He says he can’t find any of those engineers to hire. Spoiler: neither can your company. I’m going to tell you why
not, and what it would take to fix it.
If you’re going to read Chad’s post unbiased, do it now. Otherwise I’ll
summarize that engineer job description for you:
- Very reliable with a great attitude about the job and the work.
- Serious empathy for co-workers
- Communicates clearly and constantly
- Makes technical decisions humbly, focusing on the users and the company, not the developer him/herself; no “science projects”
- Lots of experience, so s/he knows all kinds of development methodologies, and which parts actually work
- Hates “ceremony” – no-nonsense
- Willing to adapt to frameworks, tech, constraints and people except when it will have a “materially negative impact”
- Make boring tech choices at work, play in free time (or “whenever it’s appropriate”)
- Don’t mind looking bad when s/he deserves it
- Love to teach and learn
- Confident in lots of programming languages, architectures and operating systems, but not dogmatic about focusing on one
So: do you see why these people are very rare yet? It’s not just that this
describes three or four full-time jobs to stay current (though it does.) It’s
that several of those jobs conflict with each other and with your company.
Here’s an example:
- Puts his/her primary focus on users and company, makes boring tech choices
- Plays around only in spare time
- Super competent at many dev methodologies and technologies
See the problem?
Here’s another set:
- No time for ceremony; hates it
- Communicates clearly and constantly
- Always perceived as having a good attitude
Not a Contradiction
It’s totally possible to do all of these, of course. You can go gain a lot of
skill in technology, then stop gaining more for awhile, or gain it more slowly
(i.e. not at work with “science projects”.)
The communication/attitude thing is possible too – it requires a level of
humility and empathy that doesn’t come without a lot of practice and a fair
quantity of screwing up over a number of years.
It’s just that you want somebody who has put a short teaching career worth of
effort into teaching. And a long programming career worth of effort into
programming. And architecture. Plus you want them to be constantly positive,
effectively humble and a clear, constant communicator. Let’s call that one
more job worth of preparation.
Why You Wouldn’t Hire One Right Now If S/He Interviewed
Imagine somebody like the above – a great communicator, great teacher,
broadly experienced with many methodologies and many technologies. You’re
talking about somebody older. With a minimum of three full careers’ worth of
skills, they’re not 22 any more.
So: somebody older, very experienced, highly skilled, but not currently trying
to learn new stuff at work.
Do you see why s/he has about two years before s/he can’t get a new job?
Do you see why at your small startup, you wouldn’t hire him/her now?
An engineer fitting this description is committing career suicide. You won’t
find many of them because only a small number of highly talented people have
decided they’re done as programmers but haven’t yet left the field or switched
The first thing your company does with older programmers is to “make sure s/he
is keeping current and hasn’t just stopped learning.”
Could We Have Nice Things?
Would it be possible to have an industry that allowed such people to keep
working? Absolutely. Do we have one now? Nope.
If you had enough stability that making humble technical choices wouldn’t
result in career suicide in two years, that would do it (we don’t.) If would
help extra if older people weren’t required to demonstrate how current they
are with any technology they couldn’t have learned five years ago. This is
often true at, say, defense contractors, and sometimes that allows such
engineers to thrive.
If you put aside a specific chunk of time, regularly, for keeping skills up to
date, that might allow somebody like this to work for you – see Google’s
now-defunct 20% time for one possible method.
Or, if we were willing to pay these engineers as much as a decent lawyer or
doctor, they could stay this good and still make choices that would put them
out of work in two years. Two years working at 150% salary, six months off to
refresh skills, repeat.
I’m sure there are other methods. Some day, perhaps our industry will adopt
What If I Want To BE ONE?
You could get an uncommon concession like the ones above. Please try to get it
in writing – it can be hard for your manager to justify honoring an
only-verbal agreement for an unusual concession. You know how it is.
Or you could put in the much lesser effort to start your own company, become a
freelancer or otherwise work for yourself. I suspect you’ll pay yourself more
and respect yourself more than almost any company would.
Also, have you thumbed through a copy of John
Sonmez’ “Soft Skills”? That’s another technique to get good, work for
yourself, and genuinely get the benefits of being something as awesome as the
Being humble gets easier when you’re being treated well. Being treated well
gets easier when you can just walk away.
I’m writing this because I do know people that match that
description. And I see how they’re usually treated.
I want better for you.
If you’re a company trying to hire one of these, now you know why you can’t
find them. You can treat them better, or you can keep never finding them. You
have no other options.