Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Where the hell are great senior developers and hands-on engineering directors? (medium.com/obie)
25 points by obiefernandez on April 13, 2016 | hide | past | favorite | 43 comments


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.


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.


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.


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.


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.


"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.


> Also, a lot of people are tired of the Agile stuff.

also what i've seen from a lot of Senior people. just because you use jira, have daily status meetings doesn't make you "Agile"


In my opinion, it's worse here- they seem to be really serious and really dogmatic about Agile. (Capital A!) To me that conjures visions of being obligated to do pointless shit because process dictates it. Good people just want to get work done with a minimum of bullshit.

I actually think it's fine if a place claims to be agile based on using jira and having standups. Because I have no interest or investment in "the real thing".


The articles on modern agile seemed very prescriptive. Where I am right now the team does do scrum (yes it has its problems) but the team has figured out how to get it to work for them and so can get on with delivering and over time cutting out the parts of the process that doesn't work. Common sense should prevail when it comes to any software development methodology.

I could be wrong and the practices described in the articles come out of a team working together over a prolonged period of time (based on obie's comment above it looks like these come out of good experience but they should still adapt to the team).


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


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.


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.


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.


> 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).


That does not match my experience. Is this something that has changed recently in Silicon Valley?


Exactly. Far, far under.


If that's how you like to roll, fair enough. Maybe you should poach people from Pivotal Labs then :)


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""


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


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.


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


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.


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".


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.


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).


so sad


'so sad' as in, it makes you sad how I think of these things, or 'so sad' because you agree in some extent? Anyway, I think it's sad as well.

The best example is to describe how our world works is where a job advert tells you to have X amount of experience with Y technology. You have Z skills, which is close to Y, but the only way to get the experience in Y is to get that, or similar jobs. But the company won't hire you, because you don't have Y. Even if you go and get Y in your spare time, that won't cut it because they want 'commercial' experience not home learning. Welcome to IT kids, where you have to be 2X years old, with 30 years of experience (commercial) and 3 degrees and Agile and 20 programming languages and...

I wanted to have a good Agile experience so bad, that in every job I had, I fell flat on my face. And when I wanted them to change some things. I fell flat on my face.

When I asked the 50 years old 'Senior Developer' why don't we use the Adapter Pattern, the response was a question. 'What's that?'

When I wanted them to change from ant to maven? Sorry we don't have the time right now.

Most of my friends who are developers as well are thinking to start their on business, or go into management, because they had enough. And all of them I would count as senior regarding their knowledge and experience.

I can only talk from my experience. I am sure there are places, which are like nirvana for developers, but I haven't come across one yet.


so sad because those places you describe as nirvana do exist and they're awesome.

i get the impression that you were idealistic about some of this stuff in the past, but that idealism has been crushed over the years.


Sadly yes. I should have known better.

Oh well, hope never dies.


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.


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.


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?


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


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...


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


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"


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?


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.


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


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").


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.


"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.


Great read! Thank you!




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

Search: