What Makes Developers Really Great
Some years ago, we had a young guy contact Blend looking for a job. He dropped by a few weeks later, and it did not go well (more on why below).
In the next couple weeks, I found out that he “interviewed” at a couple of other Sioux Falls web development shops (it’s a small city – we talk). They reported to me that their experience with this kid was much the same as mine had been.
So, I wrote the kid an email. I have re-printed an anonymous version of the email below. In it, I explained to him that he was digging a professional hole from which he was going to find it tough to climb out of later.
I had some reason to read the email again, this many years later. In the intervening time, I’d had so many situations that make me convinced I did the right thing by writing to him, and equally sure that my assessment of what makes a good developer great is completely accurate. I should have all of Blend’s new developers read this, before they start.
Here’s the email:
Dear [Young Guy]:
I have some advice for you. It’s probably not going to be that pleasant to hear, but I hope you take it in the spirit in which it’s offered.
I interviewed you last year (well, sort of – you just dropped in unannounced one afternoon). Since then, I’ve spoken to two other people in the Sioux Falls Web development community with whom you’ve interviewed. It turns out we all got the exact same impression of you.
You come off as exceptionally arrogant and cocky. When I interviewed you, it was tough for me to get a word in edgewise. You didn’t bother to ask me any questions about the position or the company. You seemed solely concerned with showing me how awesome all your stuff was and making sure I knew that you wrote it all from scratch because it was better than anything open-source (which I didn’t think was true, but I nodded politely anyway).
When I was done talking with you, I remarked to my partner “that kid was either really arrogant or completely terrified.” I gave you the benefit of the doubt, which is why I was willing to refer you on to someone else, but the other two people I’ve talked to got the exact same impression. They were both highly doubtful you could ever work as part of a team.
Here’s the thing – you either need to stop interviewing, or you need to change your approach. You now have three firms who won’t hire you, and this is going to make it a lot harder to find a job later on, when you really need one.
Here’s the most important thing you can understand about this industry – your ability to write code is a relatively small part of what we’re all looking for. Code monkeys who can crank out PHP are a dime a dozen.
What separates the okay developers from the great developers are the soft skills and the intangibles. Things like:
- Are you humble enough to take criticism? When you write bad code, can you admit that? Are you mature enough to admit that other people might write better code than you? Are you willing to use someone else’s code rather than re-inventing the wheel just because you’re convinced your code is always better?
- Can you communicate? Can I sit you down in front of a client and know you’re not going to make an ass out of yourself? Can I trust that you’re going to listen to the client and really understand their issues before making grand pronouncements about your ideas? Can you recognize a difficult client or highly-charged situation and handle it delicately? Are you sensitive to organizational politics? Can you recognize when the client isn’t telling you something and why?
- Can you work as part of a team? Will you respect the other members of the team, or will you try to always force your opinions or views on everyone else? If you do indeed have the best plan, can you communicate this without sounding or acting like a jerk? Will you communicate with the other members of the team, or are you going to go all “lone wolf” on everyone? Can you compromise?
Right now, based on my impression and what I’m hearing from others, you would have a real tough time with this stuff. Consequently, developers like you are absolute poison to a group. My impression is that Blend (or [other firm]) would eject you like a virus in fairly short order.
Now, an awful lot of this is simply because you are very, very young (much younger than I thought when I spoke to you last year, it turns out). The skills I mentioned usually come with time and experience. You need to work with a group for a while and make a lot of mistakes before you develop. This stuff can’t really be taught.
Understand too that I took the time to write this email (on my vacation, no less) because, in my limited exposure to you, I really did see some solid talent there. But you’re shooting yourself in the foot with these job interviews. You’re not leaving a good impression at all, so you need to either back off for a while, until perhaps you get a little older, or really change how you approach these things.
So, like I said before, take this advice in the spirit that it’s offered. You seem like a really motivated and talented guy, and I would hate for you to continue doing things that might cause you problems later on. The Sioux Falls Web development community isn’t that big, so if you come off poorly, word gets around.
I understand you’re graduating next year. When that happens, if you’re still looking for a job, be sure to drop me a line. I’m always interested in new talent.
For the record, he wrote back and was very contrite and grateful for the email. To my knowledge, he left for college sometime later (turns out he was in high school when he was looking for work), and we never heard from him again.
The greater truth to all of this is that “hard” development skills only take you so far. You can be the greatest pure coder in the world, but if you can’t get along with people, you’re not going to get far. You need to have the people skills to get your point across while preserving and building relationships. In an instant, you can do something to lose all the credibility you’re ever had with someone, and that’s often impossible to recover from.
Hard development skills are easier than you think to find. Moreover, I can train for them. It’s the “soft” skills we hire for, and they’re tougher to teach because they depend on a person’s core values, their opinion of themselves, and how they value other people.
Every once in a while, I find myself wondering what happened to this kid. I genuinely hope he took the advice and is doing well.
Edit: I Googled him. He’s doing just fine, it seems. No idea if he took any of my advice, but looks like things worked out well for him.
Another Edit: I made this comment: “Code monkeys who can crank out PHP are a dime a dozen.” It was in poor form, and an exaggeration of what I meant. What I meant was that great coders are a superset of great coders who also have good people skills (which is a tautology, in and of itself), so I can find a great coder long before I can find someone with both hard and soft skills. I worded this very poorly.