What Makes Developers Really Great

By Deane Barker on September 17, 2013

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.

Comments (50)

Bryan Ruby says:

That’s a good letter you wrote and I suspect it could probably be addressed to more than just up and coming developers. Your “kid” reminds me of a line Bing Crosby says as Father O’Malley as he lectures another 18 year-old in the 1944 “Going My Way”:

When I was 18, I thought my father was pretty dumb. After a while when I got to be 21, I was amazed to find out how much he’d learned in three years.

I think you hit the nail on the head, it all has to do with “core values”. Unfortunately that isn’t easy fixable from an employer’s point of view as it’s all up to the individual on which road they will take.

John Locke says:

Thanks for taking the time to write this, Deane. People, and how much other people trust you is at the core of all business, even web based business. We all need other people in order to survive and there are always better coders out there. The intangible things like honesty, humility, transparency, and working toward a common goal are more important than people think.

Maintenance Man says:

Wait. I know PHP is not the most difficult of languages. But PHP code monkeys are only worth a dime a dozen? I am learning PHP right now. And this regex stuff does not seem simple.

Yeah. I get what you are saying. You need the soft skills as well to be a great programmer. But don’t underestimate the hard skills. I have seen plenty of guys with great soft skills, but little hard skills. It is hard to use such individuals to get the real work done.

Karoline Klever says:

It’s great that you took your time to send him this e-mail! And I agree with what you’re saying, the “soft” skills matter a lot more than many want to admit.

Great post!

Justice K. Consuming says:

So what you’re saying is that “soft skills” are compensation for lacking real rock hard skills. It’s not that those who are hard enough can get by without “people skills”, it’s that it they become a distraction for those who focus entirely on their work (i.e. Jobs, Torvalds). If you get good enough to make your own thing, you do it and maintain it by focusing on that thing. Of course lots do this and fail miserably, cuz they don’t have the will to try 10,000 things before accepting. What makes them “impolite” also drives them to look at their work (but not themselves) with harsh criticism, and drive them to push it until they make something that either changes lives or ruins their own. (Or both.)

You equate “really great developers” with “people you’d hire”. For your little PHP consulting company. I don’t mean to condescend, but it sounds like you’re looking for servicemen. Oh, sorry, servicepeople: almost missed your one fedeveloper there at the bottom by herself. There are those who make products and those who perform services. The Beatles made products, Beatles cover bands perform a service. This kind of work is like being a refrigerator salesman/repairman. You’re looking for technicians; great product people do something more akin to applied philosophy/theology.

[A version of this post originally appeared as a comment on reddit: http://www.reddit.com/r/programming/comments/1mjhz6/what_makes_developers_really_great/cca86zs. (ç) MMXIII JUSTKEEPCONSUMING. All rights reserved. Appearance of this writing on this site does not imply transfer of copyright to the website owner. If someone capitalizes “web” in this day’n’age, don’t trust them.]

Justice K. Consuming says:

Thanks for mangling my underscores, kneebiter.

Anirudha says:

I do agree with your thoughts.. We can always google or refer to the docs for any problems..We should focus more on business logic and of-course our client.

Sipho Ndhlovu says:

Dean, I doubt it Justice read your post in context. You put forward some pretty valuable and relevant points here. I couldn’t agree with you more.

Arpit jain says:

I’m agree with most of your points but according to me soft skills and technical knowledge both are integral for any developer. It is easy to find a programmer but very difficult to find a “good programmer.”

Dave says:

Well as you yourself say, softskills come with experience. And he’s not going to get that sitting at home. So someone is going to have to hire him. Why not you? Sure, he may be a bit of pain to deal with at first, but he’ll learn, and you’ll have made someone who is both a great coder and a great part of a team.

MBB says:

Just a couple of points. First, by definition, people in software development are likely to be somewhere on the geek scale and therefore might not be so good in social situations. There is always space for one brilliant yet impossible developer on your team; it is how you manage that developer that is the challenge. Second, when was the last time an IT course ever taught those soft skills you value? I had to learn all that stuff on the fly.

twain says:

Deane, Who do you think will make a better software product, a really good programmer with bad people skill or a bad programmer with exceptional people skill?. Really good programmers have the X factor, bad ones don’t.

Mohammed Essa says:

I agree with all of the points above, and as a developer I appreciate the points made. However, my question is: How does a developer draw the line between being a good developer with good soft skills and being a “push-over” where everyone takes advantage and criticises your code with absolutely no context about why you coded something in that way? Also, I find personally, that when you try to share your experience and research with some team members, they quickly “grab” the knowledge and sell it as their own rather than sharing the credit with you or the team as a whole. I think its because of these issues that some developers become “Lone Wolves” or enjoy working alone in some environments.

DAVE B. says:

Justice, above, has obviously never run a company dealing face to face with customers. In ANY industry you have to be able to deal with people, both men and women. Trust me. I have been in the customer service business (not IT) for 30 years. Being trustworthy, likable, and very able to communicate are extremely important to success. As to developers, it seems to me that the ‘boss’ wants to get ‘the job done’ with little to no blowback from poor coding. If the customer is happy and writing checks who gives a crap if the code is bullet proof? It’s about the money guys.

Siddhartha says:

you bothered to write him ,this is very pleasant surprise.I wish, if i too were that fortunate to ever had the interviewer like you i would have luckiest person of the world.Here in our place despite of answering most of the answers, hardly have chance to get selected and the reason of rejection remains mystry.Till date,though working in good company,i am cluless what they are looking for.

Dayan says:

Hi am a Developer. and i Have to say this is a must read for the community. it is true that tech skills only take you so far, from any point of view. Thanks for this post.

Dave says:

Code monkeys who can crank out PHP are a dime a dozen.

if I got that from my employer to read before going to work, I’d walk out.

Mike Ellis says:

Hi Deane. I totally agree with your article. I went self-employed many years ago as I’m not “the best developer in the world”, but I have lots of development experience in many areas (and platforms), can communicate with technical and non-technical people alike and I’m still learning (even from my five year old daughter); life’s so much fun! However, there are short-sighted individuals who only care if you are what they deem an “expert” in a very narrow field (and under a certain age), irrespective of any other “life” skills, and so they don’t give you a second glance. Big bucks and peer praise don’t do it for me; quiet achievement and the satisfaction of supplying what the customer wants are my main motives, but money is very handy! I meet a lot of “technical” people who cannot string several words together in a coherent sentence, let alone write down said sentence. Best wishes from the UK.


Nice article, i think Justice might be “that kid” :P

Chad McCallum says:

I have to agree with the original article here. I’ve seen “great devs” completely shut down a team before. It doesn’t matter how good you are, if you alienate your co-workers and don’t work with a team you’re going to do more damage overall than your excellent coding will ever compensate for. Code is only one part of the equation. It’s an important part, but it’s only one part.

AC says:

My experience has been difficulties in finding someone who can walk in the door and write maintainable code and who understands how to write “solutions”, not just lines of code. The soft skills are key because “lone wolf” development will not be tolerated. I don’t care how right you are, if someone else can’t maintain it, your efforts are not beneficial.

lol says:

I kindof agree with the autor, but I find the ending epic: 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.

Miguel Salgado says:

A few weeks ago I read an article (I wish I could find it...) about how the mythical image of being competent or a “leader” embodies many of the characteristics commonly found in personality disorders, such as narcissism (as an example of this Steve Jobs was mentioned), psychopathy, histrionic (Steve Ballmer was mentioned in this case) etc. The interesting thing the article said was how most managers will fail precisely for having these characteristics. In part this comment is in response to Justic K. Consuming’s comment above. Deane, I agree with you, being very good or talented in one thing does not give you the right to be very bad or totally misfit in other areas. When that happens, it’s just a sad waste of talent.

JMP says:

Wow... what a great email! Couple quick thoughts:

  • I think some of this had to do with the fact the developer was in high school. Most high school age programmers bring with them what my high school programming mentor called ‘youthful exuberance’. You don’t realize you don’t know what you don’t know yet, and you feel the need to demonstrate mastery.

  • I think Justice is trying to say that arrogance in the workplace can have good results, similar to Torvalds’ recent arguments that ‘management by perkele’ can be highly effective.

Dave Derman says:

Every junior developer coming out of college should be required to read this article. Spot on! I’ve seen many instances where rock star coders with bad attitudes hurt a company. I’d rather hire a B level coder with an A+ personality than an A+ coder with a poor attitude.

Brian Balke says:

I was trained to write code by someone that was awarded a lifetime subscription to a computer science magazine because he pointed out, in the era before e-mail, that buying a supercomputer wouldn’t solve the subsription processing bottleneck created by the three-day delay in getting mail back and forth between the two processing offices.

Saying that knowledge of syntax and APIs makes someone a great programming is like saying that knowledge of grammar and vocabulary makes someone a great writer. Yes, you can always claim to have produced a better algorithm, data structure or data processing service, but unless that connects to a customer need somewhere, nobody is going to pay you any money for the work that you do. If you can’t manage relationships with a customer, at least show some gratitude for those that can.

Even when working on internals, your customers are going to be other programmers. You need to be able to communicate with them, at least to the degree that enables you to understand their needs. Telling them that they’re incompetent is not going to facilitate that exchange.

Yes, I have competitive energies, and they are part of what inspires me to take apart a mess and put it back together in a way that supports maintenance and extension. But I attempt to channel that aggression with this perspective: I’m not here to compete against another developer, I’m here to compete FOR MY CUSTOMERS, often against the laws of nature. In that battle, there’s really no “loser” when a working product is delivered.

Hackson Jackson says:

I agree 110% with your post...We should all begin to embrace this philosophy because its true at the end of the day. Arrogance is poison.

Anon says:

I think it’s really cool that you took the time to send that advice to a talented young kid. I wish more people did stuff like this. I think what people need to realize is that if you can’t work in a team environment then you are useless to your team. That goes for any profession not just development. If there are two candidates with equal skill and experience, the guy who is a better team player will get the job.

Marius says:

Could you please come here in Romania and teach the recruiters from web business those things? They are eager to hire young guns like the ones you described and care less if the team is not getting along with each other.

Adrián Quiala says:

Nice story. We shouldn’t forget we all are social entities even if we could be hardcore programmers.

Tony Sukiennik says:

GREAT Insight Deane... I’m a very seasoned developer and have to look in the mirror and fess up to some level of the same problems. I’ve been trying to change the world for a long time and sometimes great passion about an idea can be the cause of some of these shortcomings you outline. Maybe the young guy was consumed with passion as is often the case. I like to say that I make up for my age with my immaturity ;-)

On another topic, I looked at some of your other posts and I think we could have a lively discussion about “Content Geography”. I’ve come up with a concept of “Content Wormholes” which allows you to easily traverse Content without constraint, independent of Taxonomy, like we do in our Brains. Total flexibility layered on top of structure.

I’ve been seriously thinking about moving someplace more down-to-earth than Silicon Valley. SD sounds like a pretty good place to Build...

Thanks again for the thought provoking post...

Jeff Watson says:

I’ve had some developers who are really talented, but their personality totally got in the way of working with the rest of the team and we spent lots of time and effort corralling their excesses or keeping them away from others. Just because they can code like crazy doesn’t mean they “work” in a team environment.

Bill Gross says:

Love your letter, Deane! In my previous life as a corporate software manager, I would have loved to have something like that in my arsenal to send to interviewees who botched the interview but whose talent could be redeemed if they only had ears to hear.

TBQ says:

@Justice, etc. - It doesn’t matter what great code you can produce if you can’t communicate with customers and coworkers. If you can’t listen to the customer and truly understand their requirements the code will likely become throw-away. If you can’t work with the rest of your team, the total team output will suffer. Either way, you lose. Sure, there are cases where an individual (developer or not) has a “superior” understanding of an issue, a market, or a technology, and that person can drive an effort or a team with success. However, it does require that the person first gains the respect and/or position to do so. And most people who think they can and also express themselves that way are not fit for the task.

Word Smashing says:

Building from scratch is a great way to learn. Building on the shoulders of giants is a great way to build things! No ones too good for open source in my opinion. I met a similar character when teaching entry level CS courses, a young guy who hadn’t finished high school yet and was taking CS classes on the side, great potential but had too much pride to realise he needed to learn many things. If i ever get asked what i don’t know, i always say uncountably infinite amounts. :)

DB says:

You meant to say “great coders are a superset of great coders who also have good people skills” :-)

Alexk2009 says:

I knew a guy once who wrote a search engine in a month, by himself, and it was a good one: the code was well crafted but a bit tangled. He could code far better than me, but in the end he left the project (not sure about the company) because no one wanted to work with him.

I knew someone else of similar calibre who was hated by everyone who worked with him. He seemed to have psychopathic tendencies. Eventually he was rude to the wrong person and asked to leave.

I don’t know why some developers are arrogant and consider non-techies as a lower form of life. I think the psychology here would be a fascinating research project.

But to get back to the topic: Anyone can learn technical skills. And one can learn soft skills. Develop both and avoid becoming autistic and you will have a much better career.

I cannot say I have never been arrogant, but having been on the wrong end of it, I try to avoid that vice.

Great you wrote the guy, perhaps they mellowed with age.

Pete says:

“Hard development skills are easier than you think to find”

I dont think so. Real hard development skills comes from many years of hard work.

David says:

Well I think all comes down to what you need. If you need someone who can code excellent then those with bad attitude is fine. It’s your responsible as manager to make it happen. If you can’t then it’s your failure not them. Don’t blame that to the others. Fact is great coder with great soft skills are hard to find. If you just simply want average coders for your job then go for it but don’t expect them do much because well most of them probably does not have initiatives. They will likely need to be told rather than gives ideas. You want someone who can interfaces with your clients? then I think you have been wrong all this time. They are not coders anymore they should be at an analysts level to do that and have a lot of experiences so that they knew what to be told to their coders team and knew what the client expect to see in their needs. You expect High School-er to posses that skill? Mad aren’t you? Gives him sometimes, train him, then proved if he’s worthy or not becoming senior level engineer you expect to see. If you just failed him in the beginning then that’s just how corporate person do best. They want big catch with less money. I think by saying he emailed you back and say kind of “thank you”. He’s more polite than you are, cause you just gave him word without a chance, even though you say he can applied again after he graduates that probably 99% chance of not happening because believe me you do not understands how he feels. So who’s the one failing to understands others here? I thought as well establish manager you sometimes need to give chances rather than branding things. Cause in the long run “great engineer” never be produced within a day.

Terry says:

I’m a 63-year-old former software developer. I’m also a woman – from the old days when half the programmers were women. Back in the old days, none of these issues existed, at least I never saw it. Programming was a nice profession. It wasn’t screwed up by concepts like “geek” or developerettes – there was no TV sitcom personality cult attached to the field. It was all about the particular activity driven by the code you were writing. It wasn’t even about code. It was about automating something. Code was just a tool. In short – it was a lot more fun in the old days.

David says:

Well believe me or not at least it’s still Fun for me Terry. Because I do not “brands” peoples. Sometimes resources got limited and we need to move with the projects with what he have at hands. That’s when a good manager comes to play. His job to manage their resources not to complain about things.

I know some of jerk developers and work with them once but well if you just know how to handle them properly they actually not that hard to be motivated and work in a team. You just need the “key”.

Andrew Thorpe says:

“Code monkeys who can crank out PHP are a dime a dozen.”... You saw my paycheck?

Seriously good post nice to hear of people trying to guide the younger ones. 18 is still shapable, what happens when the young one is actually 24, not finished school and throws in “public static” for all classes and then doesn’t evaluate booleans to true or false he throws in : if (MyReallyLongNameOfAVariableThatICopyAndPastedFromAnotherUnrelatedProject == null)??

Note: added problem, 24 year old is nephew of company owner.

You haven’t got an email to send to him?

Mine went something along the lines of, remember smoking heroine is best done far away from people and in large continuous quantities... hehe

Pete says:

The problem is that soft skills and hard skills don’t go together... They just mutualy exclude each other (naturaly). Developers with good soft skills are usualy lame developers (and at the end become managers – too be honest, also lame).

wes says:

Deane, I read this yesterday, Thursday 19 Sep. I know of where you are coming from. I’m also well down the road. A high schooler is supposed to be poised, polished, adroit, let alone understand tautology? (I’ll have to look that up, but at least I know it’s polysyllabic and I can say that without spitting.)

A dime a doze huh?

Actually you and yours are the dime a dozen thinkers. I’m not saying we need Sheldon’s, but this field requires some Piss and Vinegar as one of the entre skills. Think of the fact that we are entrusted to come up with solutions to pressing business problems that other mere mortals don’t want to think of tackling.

Yeah, you gots to learn you some ways to get the scardey-cats to cough up the hairballs of requirements so you dazzle the hell out of them, but a skilled coder can be taught how to stalk his prey so as to not offend. Heck, he might even get to the point he likes the pursuit more than the capture.

It is an excellent adventure to learn the ways of one’s quarry well enough they actually believe you are one of them. Coders solve problems, remember?

But guess what. If you apply to code or do that which is the base and you can’t do it, you’ll have trouble gaining enough exposure, i.e. gigs, to understand your quarry and actually be welcomed into his inner sactum where he guards the secrets. I.e., you gotta start somewhere.

Good luck, getting young people to take up this difficult profession when you go to such lengths to tell them they are nothing but a grasshppper and easily squashed. Hope you have fun coding when you turn around and look for that junior or neophyte and they have left a diagram of a bird on your screen as an indication of their willingness to suffer.

If you haven’t read, we have an abysmal retention rate and the numbers entering aren’t near enough to over the severe shortfall.

The issue is that that they won’t remain socially inept or did you come out with all of your tautology in perfect state?

Lighten up. He was a kid!!

JK says:

I am a developer. I agree with the fact that, developers need soft-skills to work in a team. But when taking up one extreme (as an employer?), you are missing out many other extremes.

  1. Is soft-skills relevant only for software developers? It is for any type of teams and any type of company/grouping. Your primary focus (need) is the drive here. If you need very good developers (product development), hire them (they may be a bit arrogant/people tend to depict them as arrogant, because both know they are very good. Still it is your responsibility to manage them and the politics). If you need people to interact with customers, hire those having very good people and communication skills. If you need average developers (website development), having a balance between soft/hard skills, hire that kind of people. A company is a combination of skills. Isn’t it?

  2. Expecting very good soft and hard skills in a single person is unrealistic, because each of these skills takes time (experience/practice) to learn. As an employer, it is natural that you may be looking for ones having multiple skills. If there is one very good at both, he will be ready to start his own company.

  3. There is no meaning in branding people. No one is so good or so bad at anything. It depends on what is being currently nurtured, and what opportunities are given.

  4. Kids (you refer one who is actually a kid) should be molded on field, not to be branded. An email like yours is great, if you cannot afford this molding. But if you demand high standards straight away in kids, you are greedy.

Arthur T. S. Jackson says:

I also think it’s great that you took the time to write the kid an email. I sure wish some interviewers would take the time to give us interviewees feedback after an interview that didn’t turn out. Usually, we’re just left wondering what went wrong.

Chandrakanth says:

Thank you very much for sharing this. I share your opinion to every word of it. It is very nice of you to write back to the young chap

minusSeven says:

He was in high school when he was looking for work ! Maybe you are being a bit to harsh with that email. These are things people learn one way or another. The fact that he was in high school perfectly explains the arrogance and lack of soft skills. Just let him be he will learn with time.

Sarah says:

Great post, it should be given to all young developers entering the job market, as well as some experienced people. Without trying to cause a riot, I think Justice missed the whole point and is either himself somewhat god-complexy and narcissistic, or has never in his life worked with a Young Guy. I’ve worked with people who show the character traits you described in Young Guy, and frankly when they left the company, the pain stayed indirectly. The one guy I worked with couldn’t be let near customers as he would pointlessly argue with them about what they wanted (incredibly bad for company image). He would not propose alternative/better solutions, just simply tell them what they wanted was stupid. In those exact words. He also got off on writing over-complicated esoteric code which irritated the living hell out of the other developers who had to work with him, or on his code after he left. Months after he’d left people used to complain about the code he’d written because it always took far longer to work on than it should have. Sometimes you’re not doing any one any favours by constantly trying to show how clever you are. If you’re really that good, people will notice by themselves, you don’t have to point it out. Soft skills are incredibly important, we don’t live in isolated bubbles or islands, we have to interact with people on a daily basis, and owe it to those people to be our best at it. Saying developers are a bunch of nerds is a gross misrepresentation of the industry. I’ve been directly and indirectly involved in dozens of interviews over the last year or so, and frankly, it’s a very small percentage of developers who truly fit the “basement dweller” stereotype. The vast majority are personable and articulate. Oh, and one last thing, I understand first hand the importance of not being a Young Guy. I’m not an extrovert, I feel awkward in social situations, I work really hard at being a great developer. But you know what? I’ve made some of the mistakes Young Guy did, and I’ve learnt from them. I work daily on my soft skills, it’s not easy and it doesn’t come naturally. It’s paid off though, because I’ve been in team leading and project management positions for years now. Without the soft skills, I wouldn’t be where I am now, regardless of my skills as a developer.

Tim says:

This is just great, sir. I mean the very moment when you shared your vision about soft skills with a poor guy. I imagine how he appreciated your advice and gratefully left the town. Now to the topic. I see your “soft skills” definition is clearly expressed in the email, but did you have an opportunity to address these question during his interview? Maybe you could talk to him about the importance of soft skills requirements within your team? From my experience, most IT job interviews are much like a polygraph examination intented to reveal the dark true side of interviewee. I think the IT interview can be made more constructive, if one ask these, no doubt, great soft skills questions, and then emphasize how valuable and important are soft skills within the team. You should hire the guy if his “hard skills” are good. Give him a chance, and keep track of his soft skills progress. If he doesn’t fit, tell him “thank you and farewell”. Of cause, the downside of this approach is no aftermath emails during vacation, no Shakespeare-like drama, no long blog posts. Also, I believe that communications with customers is not a part of software engineer’s responsibility, it is just a lame practice when no business analysts are available, but lazy managers only. Edit: My favorite part. “Code monkeys who can crank out PHP are a dime a dozen.” Is it really so bad in the PHP world? Are PHP developers are really monkeys? Now seriously, this only phrase ruins all your good image and exposes your sloppy soft skills. It is nice to be important, but is more important to be nice, Sir.