Once upon a time, early in my career, I took a programming job with a small web development shop. Not long after starting, I was informed that one of my fellow programmers was a GENIUS. Really, I asked, a GENIUS? Oh yes. VERY smart guy. Way smarter than the rest of us. We’re lucky to have him. As I soon found out, though, working with a GENIUS wasn’t quite the honor it was cracked up to be. In fact, it turned out to be a real headache.

I was reminded of this person (i.e., the repressed memories came flooding back) after an article in the New York Times about Brilliant Jerks. That article talked about brilliant people who can be very valuable when a startup is trying to get off the ground, then can turn into liabilities (and jerks) once the company finds its footing and begins to mature and grow out of the startup phase. The author speaks about the Brilliant Jerk from the point of view of a company principal (or consultant) who has the power or influence to do something about it.

Reading the article, I realized that I knew a close relative of the Brilliant Jerk - the Genius Programmer. In addition to the aforementioned GENIUS, I ran into this type of programmer now and again during my time in the coding trenches. Unlike the founder of a startup forced to deal with a Brilliant Jerk, though, it’s much different dealing with one of these types when you’re at an equal or lower level on the org chart.

While Genius Programmers are good at using their big brains to think deep thoughts, in my experience, they often have trouble working in a production environment. Why? Couple of reasons:

Lack of people skills - The classic nerd quality gets taken to a higher level with the Genius Programmer. They don’t communicate well (sure, they can opine at length on the root causes of the problems in the Middle East - or The Avengers - but don’t bother asking them to write usable documentation), they don’t listen well (your opinions are cute and all, but, seriously, <yawn>) and they always - always - know best. Why? Because that’s what they’ve been told forever.

Always rolling their own - Why use an existing product or tool that someone with a smaller brainpan wrote when you can create the next Mona Lisa in Perl?

Carelessness - The most problematic trait of the Genius Programmer. A Genius Programmer will plow forward with what he thinks is best when he thinks it’s best; he can’t be bothered with following rules and procedures when, say, pushing code live. Worst of all, he'll rarely get called on it by leadership because, after all, he is a GENIUS and, gosh, we can’t afford to lose such a rare pile of gray matter.

What can you do when you find yourself working with (or under) a Genius Programmer? Well, not a whole lot, unfortunately. Your options are pretty much limited to either:

Convincing the Genius Programmer that his skills are being wasted at this two-bit company - but, of course, he probably isn’t really listening to what you’re saying.

Or

Finding a new job. In the end, it’ll be better for your blood pressure.

Have you worked with a Genius Programmer? If so, how did you deal with him or her? Please share your experience.

Oh, and if you’re a programmer that I may have worked with in the past, I’m definitely not talking about you.