A few days ago, Shekar Kirani posted a Twitter thread about “10x Engineers”, you know, the magical creatures that can do anything. My first thought was a) this is a myth and b) this is a person who will damage a company far more than they help it. But there’s more to it. (For what it’s worth, this is not satire. Kirani appears to truly believe 10x engineers are necessary for a startup. Kirani clearly has more tolerance for spoilt children than I do.)
So let’s look at what he says. Note, for this post, we are talking about Kirani’s version of a 10x coder, which is not a person to hire at all. The truth is a bit more expansive and less awful:
1. 10x engineers hate meetings. They think it is a waste of time and obvious things are being discussed. They attend meetings because the manager has called for a “Staff meeting” to discuss the features and status.
This is often the case, but it is not always the case. Many meetings are “unnecessary”, but then, people are also awful at communicating things unless made to. If people communicated better, more completely, and more regularly, many meetings would be even more unnecessary. But they don’t, and so we have meetings. But the subtext of this is that to a 10x engineer, no one “less smart” than they are may make requirements of their time. This isn’t about the usefulness of the meeting. This is about a “manager” (and you can hear the disgust Kirani has for that position, even though that’s what Kirani is) daring to think they have the right to make the 10x engineer do something other than what they want. Another subtext to this is: If you’re a manager, you’re clearly too stupid to do “real” work.
This is the same reaction a small child has when they have to do something they don’t want to do. Given the “10x engineers” I’ve known, the way both act out that resentment will be surprisingly similar, other than the small child can more easily be made to be reasonable. Or at all.
2. Timings in the office for 10x engineers is highly irregular. They tend to work when very few folks are around. If there is a crowd or all-hands meeting, they are not visible. Most of them are late-night coders and come late to the office.
Sorry your highness, but when you choose to work for someone who is not you, you sometimes have to do things you don’t like. Yes, there is a remarkable similarity between 1 and 2. Almost as if, once again, the 10x engineer isn’t subject to the same rules as everyone else. Now, I have no problem with flexible work hours. As someone who dearly misses working midshifts, and would love to be back on a midnight – 8am schedule, I get it. But, even when I worked mids, there were things I had to do at work during the day. Didn’t like it, because it was usually in the middle of my sleep schedule, but I did it. I didn’t expect the entire company to wrap itself around my needs. Doing that, regardless of talent level, is the sign of a self-centered jerk.
Do not employ self-centered jerks. They are never worth the pain they will cause.
3. 10x engineers laptop screen background color is typically black (they always change defaults). Their keyboard keys such as i, f, x are usually worn out than of a, s, and e (email senders).
This is utter elitist nonsense. Kirani should have not gone to 11 with this, because this item is just stupid. And ableist. It also assumes that all “real” 10x engineers do everything in vim or perhaps emacs. Honestly, I can’t tell, because you have to be some kind of real dip to actually believe this level of tripe, and “tripe” gentle reader, is the kindest word I have for it.
4. 10x engineers know every line of the code that has gone into production. If a QA or support folks alert an issue, they know precisely where the fault (or bug) is and can fix the same in hours vs days
Haaaah…no. In fact, once the code base gets to a certain size, this is not the case. They may be faster at it, but that’s not the same thing. Also, Kirani’s 10x engineer has to fix it, because Dog knows, if you try to let anyone access their code, they will have a fit. Especially someone not as smart as them by their standards. 10x engineers, again, tend to be rather spoiled. In Kirani’s world, no one else is capable of fixing a bug, because his 10x engineer is the only one who knows where anything is.
This is a real danger: the reality of the 10x engineer being the only one who knows the code (Kirani actually uses this as a point in their favor later on) because they won’t document. So they can never take a vacation, not that they would, and if they leave, you are screwed, because again, no one else has a clue about the code, it is written for one person’s eyes. I’m also going to bet in Kirani’s world, anyone doing anything not related to engineering or making money is a waste of carbon only suitable for a soylent green vat.
A 10x engineer will kill your company with this kind of thing. They’ll kill it via burnout, via leaving, via not being able to juggle the plates anymore, but following Kirani’s advice will kill your company dead.
(I am also amused that Kirani even allows for bugs given points 6 & 7, which would seem to make bugs impossible by a 10x engineer. Which goes to show you that Kirani literally has no gods-damned clue about his own thesis.)
5. Most of the 10x engineers are full-stack engineers. For them code is code, they don’t care whether it is front-end, back-end, API, database, serverless, etc. I have rarely seen them doing UI work.
We can tell. So can everyone trying to use their code, because it’s a gods-damned awful mess of arcane procedures that only make sense to one person, because there’s only one person who counts. God help the poor bastards who have to try to fit that code into a usable UI, because the 10x programmer won’t.
This also tells you where Kirani’s head is at. No, not up his nethers. Okay, not just up his nethers. Kirani is still living in the glory days of the 90s when a UI was something people too stupid to do real engineering bolted onto code once it was done. I’ve used interfaces like that. They’re awful.
6. 10x engineers can convert “thought” into “code” in their mind and write it in an iterative fashion. Given a product feature, they can write that entire feature in one or two sittings of 4 to 6 hours with a caffeinated drink without distraction.
The problem with this of course is when that feature has to be used or coded by someone who isn’t the 10x coder, because at no point will that thought be written down, and the source code will rarely be written to be readable by anyone else. So basically, what you will have is code that no one can ever touch or modify. 10x coders will slow your company down with this kind of thing, because it is the opposite of teamwork.
It also means that even if you hire another one of Kirani’s 10x manticores, (I refuse to call them unicorns. Unicorns are beautiful. Manticores are just assholes who destroy everything they touch. Rather like Kirani’s 10x engineer), they will be of little to no use to you, because manticores can’t work together. They treat everyone else poorly, especially that manticore over there who thinks they know anything when clearly they don’t. I mean, they use 4 spaces as an indent instead of one. Only a fool does that.
7. 10x engineers rarely look at help documentation of classes or methods. They know it in memory and can recall from memory. They write code at the same ease as writing English. No breaks, no pauce, just type.
Normally, I am forgiving of typos, but this one (“pauce”) is so perfectly illustrative of the problem with “just type it all from memory”. I mean, that’s not even a homophone issue. I guess manticores aren’t that good at English either. As well, the 10x coder will know some of the classes and methods in memory, but all of them? Nope. And the arrogance that makes them think they don’t need to look things up will fundamentally limit them to only being able to use the things they have in memory. This is ultimately limiting as hell, because new features? What are those? New methodologies? Who has time for that, I am birthing code from my thoughts as Zeus did birth Athena herself.
8. 10x engineers are always learning new frameworks, languages ahead of everyone in the company. They are not afraid of anything new. If there is something new (e.g. blockchain) they gobble up, setup, experiment before anyone is getting started.
Wait, I thought you said they had everything already memorized? There is an unavoidable problem with Kirani’s thesis. Points 7 & 8 just happen to illustrate it in sequence. As well, Kirani’s Manticore leads you into the infinite stench of the Bog Of Never-Released-Product because “wait, we have to move everything to this NEW framework…” That’s not to say you never look at anything new, but again, Kirani’s Manticore has no time to actually get something done. Besides, once they memorize this new framework (see number 7), they’ll be able to do the entire conversion in their head, (see number 6) and it will take them almost zero time (number 7 again.)
Begin to see the pattern?
9. 10x engineers are poor mentors as they can’t teach others on what to do OR parcel the work. They always think “It takes too long to teach or discuss with others, I would rather do it myself.” They are also poor interviewers.
They are literally incapable of helping anyone else improve their skills, delegating tasks, managing workloads, or helping anyone but themselves including the rest of the company…HIRE THEM NOW! HIRE THEM ALL! Honestly, if I ran a company, every time one of Kirani’s Manticores applied, I would work day and night to get them hired…
…by my competition. Because man, I’d be a market leader in about a year without even trying hard. Seriously, why would anyone want this kind of person working for them. Let us unpack what Kirani is recommending here. He’s saying you should hire someone who:
- Can’t communicate what they know in a useful fashion
- Doesn’t want to communicate what they know in a useful fashion even if they could
- Will relentlessly micromanage and resist any attempt to remove things from their plate
- Can’t assist the company in evaluating new hires
Kirani’s Manticore is literally only capable of working by, and for themselves. Well, not the latter. Turns out working for yourself involves a lot of communication and meetings. So really, they’re only capable of working for someone else, but never in a way that requires any form of normal human interaction.
This is an asshole. Kirani’s Manticore is in fact, an asshole.
Two more points, almost done.
10. 10x engineers don’t hack things. They write quality code and know exactly how the code has to evolve, and have a mental model of overall code structure. They write at most one design document, and the rest is in the code.
Undocumented code, (no, the source is not, in and of itself, documentation. That Kirani believes this shows how far up his own nethers his head dwells) is a hack. It is the worst kind of hack, because it lets you fall in to the “if it ain’t broke, don’t fix it” trap. That’s a trap because it leads you into corners you don’t know you’re in until you try to grow the product or the company, and you discover this code that is only readable, fixable, maintainable by one person cannot actually be grown or even updated. But that’s okay, Kirani’s Manticore was going to rewrite the entire thing from scratch anyway. This time, they’ll incorporate your useless new features that don’t really matter, but you’re the boss and the customers want it.
(I am being kind using neutral pronouns. Kirani’s Manticore is always male. I’ve never in my life seen a woman be this much of an asshole. I’m not saying it’s impossible or can’t/hasn’t happened, I’ve just not seen it and new reader, I Am Not New.)
Also, Kirani’s definition of Quality is shall we say…at odds with any useful definition.
11. 10x engineers rarely job hunt or move out of the company. They move out because you make their life miserable with the process, meetings, training, and other non-value-added activities. If you come across them, hold on to them. Celebrate them.
Kirani literally called training a non-value-added activity. Which is directly at odds with item 8. It is also at odds with literally everything useful about keeping good people. Training is one of the key things you can do to retain them. Here is my advice, take it or not: If you find you have accidentally hired Kirani’s Manticore, fire them. Fire them before they drive everyone else out of your company, and/or make you the target of a hostile work environment claim. Because Kirani’s Manticore is an asshole, and nothing, I mean nothing is worth that.
Shekar Kirani is the kind of person who thinks Uber would have been a paradise had they fired all the non-bros who were bringing everyone down.
Oh, minor addendum. If you really want to know where Kirani’s head is at, read this tweet. The pertinent part:
Find the best in each & get the best out of them. That’s what good managers do.
That’s VC for “use them and dump them.” So yeah. Shekar Kirani. Don’t listen to him.