
Where the hell are great senior developers and hands-on engineering directors? - obiefernandez
https://medium.com/@obie/where-the-hell-are-all-the-great-senior-software-developers-and-hands-on-engineering-directors-b88b0d15fbdf
======
mkozlows
Your problem is:

1\. Great senior devs are actually rare, so yeah, you won't just have them
flowing into your applicant queue no matter who you are.

2\. You're not just looking for great senior devs, you're looking for great
senior devs who hold certain ideological positions, which is going to narrow
your pool much further.

Lots and lots of senior devs have been through the OO design stuff and come
out the other side. Like a lot of people, I read and used a ton of design
patterns stuff back when I was working in Java around the turn of the century,
and nowadays think of OO design as an antipattern to be avoided, with a strong
preference toward functionally-oriented code.

Same thing with the XP/agile stuff. Been there, done that, kept what worked
and abandoned what didn't. I wouldn't want to apply for a place that had an
ideological commitment to strong XP principles and thought of people with
other opinions as being in need of "training up."

And maybe you don't want people like me working for you; that's fine, you've
got your vision of your OO/XP workplace and you don't want people who don't
buy in fully. But don't be surprised when you can't find people who combine
strong ability, a lot of experience, and a particular type of tech ideology.

~~~
obiefernandez
This is a great example of the feedback I'm looking for since it gives me
clues on how to adjust my messaging for the future...

OO: Totally understand where you're coming from and share your viewpoint.
(Former OO Java guy, Rubyist, now primarily dong Node for last 2 years)

XP/Agile: I have 8-9 teams under me and their processes vary and are
continually evolving via weekly retrospectives and a commitment to perpetual
learning and improvement. My ideological commitment is to ruthlessly,
earnestly be excellent in what we do. The vibrant cynicism around Agile has
been extremely eye-opening.

------
brudgers
Looking at the company's careers page, I get the impression of old school
enterprise meets academia. Entry level administrative positions [clerks]
require a bachelor's degree. Senior administrative positions want a CPA or a
JD. An employment office position prefers a Master Degree.

What about software engineers you might ask? Software engineer positions
include "Senior", "IV" "III" "II" etc. I'd say this is poor signaling. If
Roman numerals ever suggested an engineering culture, it's one that was well
over by 476 CE [when Odacer became King of Italy rather than Emperor of Rome
and an important milestone for Gibbon].

What does that structure optimize for? The Techonolgist II at some college or
government who wants to be a III and the IV who wants to become a Senior.
These are people who are fine as part of formalized bureaucracies. Who else?
People taking a shot bullshitting through an interview structured around
categorizing a software engineer as a II or III or IV or a Senior.

My intuition is that the problem of attracting the right sort of engineering
talent is cultural fit. As Salvor Hardin quipped "an atom-blaster is a good
weapon, but it can point both ways."

Good luck.

~~~
obiefernandez
Thanks for the critical feedback. We hadn't considered bad signaling with the
leveling. It's fairly new and replaces senior designations that had their own
problems.

~~~
brudgers
Since I am on a roll, toss out "engineer" and go with "developer" or
"programmer". In the world of real-honest -to-Uncle-Bob-engineers, a senior
engineer has a license and is often legally responsible for the work done
under their supervision to the point of direct personal liability. That's why
in a Civil Engineering context "I,II,III" make sense, there's a progression of
credentials and responsibility.

Choosing "engineer" also says something about culture. Combined with a no
formal credential job description, there's a cultural tension.

Incidentally, I gave up on a meaningufl use of "architect" years ago.

------
draw_down
"Competitive pay" is not a number. Most companies just don't want to pay for
the talent they claim to want so bad.

Also, a lot of people are tired of the Agile stuff. Senior people in the range
this person is looking for are likely to be among those who saw Agile come
around and slowly turn into the weird joke that it is today. Places that are
so dogmatic about it that they require TDD and pair programming experience are
a red flag imo. Just some thoughts from a dev with 12 years experience.

~~~
obiefernandez
Made some adjustments to the article. Our minimum base pay for senior
engineers is $125k, more than that for directors + sizable equity grants in a
public company. Result is above market pay (in our opinion) although still
less than what Google can pay.

I am realizing that Agile might be much more tainted out there than I
originally thought. We do Pivotal Labs/Thoughtbot style Agile, which means
very strong emphasis on pair programming, TDD and CI -- but with directors
given wide latitude on how to evolve process matters on their team. i've
written extensively about it in my modern agile collection on medium

[https://medium.com/modern-agile](https://medium.com/modern-agile)

~~~
programd
There's your problem. Your minimum base pay for senior engineers is far under
market. Add about $40-$50K and you might get some interest.

~~~
AlexThorn
Definitely.

It's hard to imagine a salary of $125k/yr being competitive for senior
developers _or_ directors in NYC, whether we're talking about a startup or a
billion-dollar company.

Moreover, people capable of working remotely can participate in job markets
(and benefit from their corresponding pay rates) not only in NYC but also
places like San Francisco and Boston.

From a personal perspective, when job postings mention 'competitive' pay but
won't establish a baseline expectation involving concrete numbers, I generally
feel safe making the assumption that the salary on offer is on the low end of
average; otherwise, mentioning it explicitly would be a great differentiator.

~~~
obiefernandez
I purposely said $125k minimum since that is the lower bound of our Engineer
IV salary band. What we pay for director-level is entirely based on experience
(e.g. a master craftsman might make more base than I do as an SVP)

That said, it is possible that we still need to pay more.

~~~
AlexThorn
> That said, it is possible that we still need to pay more.

It can't hurt!

One might also consider referencing a concrete salary band in the job posting.
IMO, the cons from the hopeful employer's perspective (relinquishing some
negotiating power) are far outweighed by the pros (setting correct baseline
expectations as to both required skill level and average compensation for
same).

------
sharemywin
Read as "where are all the senior developers that think exactly like me. I
have some limited exposure doing xyz at my last job and I think it's the only
way to do things. Come work for me were you can be my minion and if you
exercise an ounce of your own thinking I'll "can" your ass faster than you can
say "but your way could work too""

~~~
obiefernandez
Geez, cynical much? I have a small but solid reputation in the field, written
multiple successful books, launched/sold Hashrocket, ex-Thoughtworks, and been
doing Kent Beck-style XP since 2000

~~~
sharemywin
I apologize, my comments were a little over the top. They weren't necessarily
directed at you. I've just worked too many places where "group think" and
arrogant senior devs/architects pass judgement on the masses.

------
manuel-vidaurre
Obie. Great to read you. As you know we have a nearshore company specialized
in ecommerce and fintech. We have found the importance of intrinsic motivation
with balance of extrinsic motivation. What you have setup, if I reading right,
it's more appealing for extrinsic motivation, the only point that you cover
for intrinsic motivation is the need for growing our mastery. Your extrinsic
motivation drivers are very conventional and no very good for attract good
talent, as a good friend once told, joking about why she still single:
"husbands are like parking spaces, the good ones are already in use". Usually
talent developers have a lot of working options, usually the work that is more
aligned with your view and believes is more likely and option. My
recommendation work more in intrinsic motivation factors: autonomy, propose,
meaning, mastery, etc. Maybe you should also see the international talent,
here in Mexico there are lot of talent, there the challenge is cultural fit
and remote working. I wish the best for you, if I can help you in any way
please let me know. All the best --- Manuel

------
MrLeftHand
Maybe because Agile is not what it should be. Managers love it Devs hate it.
And every place I worked in, no one could do it right. It's not helping at
all. It helps the manager to have more tools at his disposal to annoy the
team, but it doesn't help the common folk. Also I'm tired to see people
referring to seniors as old guys who worked as Devs for XX amount of years.
Most of these people are stuck in a loop and know nothing about the new
technologies and the younger generation has to teach them in the end. Also
most of the senior Devs will move up in to manager positions and won't look
back. None of my workplaces knew anything about SOLID principles, Design
Patterns and all that fancy unicorn stuff because it looks lovely on paper but
in the end it slows development down, so people avoid it. Most of the
development work is done like we were monkeys with typewriters. But this is
only my opinion. Take it with a pinch of salt.

~~~
br3w5
Avoiding all that "fancy unicorn stuff" might not slow you down but it will
slow down the next person who picks up your code but who cares that's their
problem.

You must come from the same school as "who needs tests they're a waste of
time".

~~~
MrLeftHand
By calling it "fancy unicorn stuff" I mean, it is really hard to come by in
real life. Because generally people avoid it and when they don't, they usually
use it in a completely wrong way. I saw a Singleton pattern which made me
carve my eyes out. And that came from a guy, who was a Senior Developer. And
most of the times being a developer is about working with legacy code and
trying to fix loads of problems, which wont be fixed in the end because there
is not enough time, money and energy and so on and so on and... This makes
loads of experienced people move in to management, or creating their own
business, because they had enough of the trench work. That's why you won't see
talented people on the market. Because they know...

Oh and no, I'm not from that school. But having tests doesn't mean the tests
are any good. You can have loads of methodologies, patterns, principles. If
you can't tell when to use a Factory Pattern, or how to implement SOLID, then
it doesn't matter how much you like, or want them.

~~~
br3w5
Ok I retract my tests comment!

Design patterns can definitely be abused and pragmatism is important when
deciding whether or not to use them. I would say though that implementing
SOLID is certainly achievable if writing from scratch but harder when
refactoring code that breaks those principles (usually badly with no tests or
poor tests).

------
brianmichel
As silly as it sounds, if you are a senior developer/eng director that is in
high demand these days, the product that you'd be working on matters
tremendously. Having people motivated by the whole of the product they are
working on is huge, while individual complex problems are also fun, staying
power lasts in people who want to use what they are building every day.

I think the sentiment of this article is more around finding senior developers
who are also interested in the product you are building. Which is a huge
problem because the intersection there is even more sparse than finding a
senior developer that just wants to solve generic, complex problems.

------
daveott
Obie! I'm dealing with it too. I think many of us who are hiring are. I've got
a good team, but besides myself and one other, none are senior. Despite having
open positions at a thriving company with great pay and benefits, I have zero
senior folks in my pipeline of candidates. We've attracted great talent in
every other area of the business from marketing to finance, but development is
left with a pool of junior applicants. I know for myself, I don't look for a
new opportunity outside of my existing network of friends and colleagues. I am
where I am now because I have history with two other people at the company and
I want to work with them. Pay and benefits at a cool startup aren't enough
because there are lots of those opportunities. As much as I like mentoring, I
want to work with other talented developers. There is the catch I suppose.
Senior developers want to work with other senior developers so that they can
keep upping their own game, and if you don't have any, it's hard to attract
others.

~~~
br3w5
So is your problem that senior developers just do not apply or that the ones
that do apply (from a smaller pool of applicants) get screened out at some
point in the process?

~~~
obiefernandez
They don't apply and my recruiters are not finding them.

------
bradurani
I've written a response to this article. It echoes much of what's been said,
but also adds some new things. Enjoy!

In response to Obie's where the hell are all the good senior software
engineers and hands-on engineering directors

[https://medium.com/@bradurani/in-response-to-obie-s-where-
th...](https://medium.com/@bradurani/in-response-to-obie-s-where-the-hell-are-
the-great-senior-software-developers-21632f3182b6#.v3w4goxlm)

------
utnick
There are very few companies that do pair programming. It will really close
down your funnel if you make pair programming experience a requirement. I
would wager less than 1% of programming jobs do any significant amount of
pairing

------
graemebradbury
Without your medium post I would have dismissed your job adverts completely.
They're awfully 'grey' and samey.

On one hand medium uses the positive accomplishments eg "...Empowered cross-
functional teams doing disciplined TDD ... pair programming, and continuous
integration/deployment ..."

On the job advert reads like you want someone to come and get the team to do
those things.

If anything I'd sum up the medium post as "We do good things, come join us"
and your jobs adverts "We're slightly above average, can someone please make
us better"

------
thewoolleyman
Good article. I think there's a shortage, and I also think technology overload
and the ever-increasing rate of innovation and change prevents many junior
programmers from really learning agile fundamentals well. There's just too
much other stuff to learn that changes too fast, as well as general societal
information overload, to get into the deep philosophical fundamentals of agile
and OO. I spent hours reading the TDD Usenet list when I started. Who has time
to do that now?

------
GFK_of_xmaspast
I had not previously heard of "2U", and I may be atypical in this, but working
for a for-profit education outfit is not in line with my personal ethics.

~~~
obiefernandez
We are white-label service provider for two dozen of the most prestigious
universities in the world. maybe check your assumptions -- we are in no way U.
of Phoenix

~~~
GFK_of_xmaspast
I realized that, and my point stands. There's too much money flowing out of
universities and into private hands for my comfort, and I won't be part of it.
(I make an exception here for things like "hardware and equipment" and
"research software").

~~~
obiefernandez
Most (if not all) of our partners are private universities. Also, we generate
more revenue for them, not less. So I don't get your point.

------
br3w5
"Tons of interesting and potentially great people that have never paired or
don’t know really know how to TDD".

I am slightly surprised at this because these are not new things.

------
gkegeles
Great read! Thank you!

