393 comments

[ 3.1 ms ] story [ 272 ms ] thread
"I think 10x developers, like world-class athletes, musicians, and authors, absolutely do exist. You’re just not going to find them with a coding test." well there you go. exactly.
Tests are there to weed out 0.1x developers, not find 10x ones.
That's not exactly true. I use coding tests to observe whether the candidate understands what they are doing and have organised approach to the problem or they just throw stuff at the wall, recompile the code and see if it works.

You can ask a carpenter to make a small, simple thing and you will see how competently they use their tools, how steady their moves, how efficient they are with the material. And use that information to understand if they will be good carpenters working on much larger project.

But mostly my coding tests are there to weed out people who can talk but not actually program so that I can save time on the rest of the interviewing process or so that I don't have to fire them in 2 months for no results.

What you've described sounds roughly like what wiseowise said, though. I think 10x/0.1x is a bit of an oversimplification - there's no ISO Standard 1x Developer you can compare to - but if someone says they're using tests to filter out "0.1x developers" that could be definitely be interpreted as them weeding out people who can talk but not actually program.
I use coding tests to weed out potential employers. As a general rule I'm barely willing to even interview. I can't remember the last time I spent more than 30 minutes "interviewing."
That's fine. Some people don't want to put any effort getting a job or are not willing to show if they know how to program.

I respect your position. But understand, you are making it tough for me to know if you are good developer or just one of those people who are good at talking their way through interviews or need to go to a hundred interviews to get a job by accident. You will not get hired if I have anything to say about it.

I don't need to hire every good developer. I just need to hire some. The interview is optimised to make it unlikely for a bad apple to come through because it just cost too much to deal with people who are unable to perform. It is very hard to tell if a developer is in fact a good developer but it is pretty easy to spot a person who can't program their way out of a paper bag -- just get them to write a piece of code while you are watching them do it and explain what they are doing. And I also prefer to work with people who are easy to work with -- like people who don't make demands that don't bring them any value.

One definition of stupid is people who cost other people without any benefit for themselves. They are just drag on everything but don't benefit from it. If you come to an interview that I have designed and tuned and start making demands to change this or that derailing my plan and creating no advantage for yourself it is a sign of particular flavour of stupidity, in my view.

Smart people try to find a way to benefit themselves and even smarter people try to find a way to benefit both themselves and others by trying to find a mutually beneficial solution to their problems.

I literally LOLed. You describe an interview process which attempts to compensate for your inability to quickly assess a person's talent/fit and try to play it off as if you're doing a favor for talented people you are interviewing. Then you had the gaul to be smug about it by implying I wasn't in the "smarter" category. I'm so happy to be at a place in my career where I don't have to tolerate being spoken to like that anymore.
> You describe an interview process which attempts to compensate for your inability to quickly assess a person's talent/fit

That's literally what interview process is. Because we can't immediately tell who is this person, we need to compensate for it and spend a bit more time with them.

That's why it is called "interview" and not "welcoming ceremony".

You've used the word "we" when you meant "I." Not everyone shares your shortcomings in interviewing ability.
So to summarise, you require me to see your brilliance immediately with no work on your part and if I can't it is my shortcoming.

This is smack in the middle of what I call a toxic, self absorbed and entitled personality.

Good luck in your life.

plonk

In my 20+ year career I've been on the interviewer side more than the interviewee side. I've hired dozens of people, never took more than 30 mins to make a decision, and never recommended a false positive. Hiring/interviewing/managing is not my primary role, it's something I do occasionally as a side-task. It's possible and I do it myself.

Imagine for a moment if the interview process you describe actually went both ways. Have you ever seen an interviewee demand their hiring manager perform some mock management scenarios for them as part of the interview process? Of course not, because that's insulting and ridiculous. Just as ridiculous as doing the coding interview performance art.

Hiring managers/interviewers often perceive themselves as being in a position of power, which is why they feel comfortable demanding ridiculous rituals of subjugation. It's very jarring for them to not be in a position of power, when an interviewee perceives themselves as their manager's moral and intellectual equal.

You can count me amongst that "we". I certainly don't like interviews that torture the candidate, and to be honest I think the bigger tech companies primarily use them as an to filter X-hundred candidates down to a more manageable number. But I do think find that assessing someone's ability can take a little more than a casual glance at their CV and a brief chat. If your interviewing strategy works for you - and it seems that it does - then more power to you.
> You describe an interview process which attempts to compensate for your inability to quickly assess a person's talent/fit

“Just hire better, bro”

Tests are there to make sure the focus is on people who like puzzles and not those who proceed slowly in order to keep key product features in mind while also composing plenty of tests and documentation and working with the team to be sure of direction and consensus.
> and not those who proceed slowly in order to keep key product features in mind while also composing plenty of tests and documentation and working with the team to be sure of direction and consensus

That’s why there’s a system design round.

Tests find the 0.1x developers that studied for the test.
Whatever helps you sleep at night.
100% this. I've interviewed a great many candidates over the years, and the coding exercise has always been an incredibly valuable litmus test. It gives the interviewer a chance to see whether or not the potential employee has the knowledge of the language and skills needed to do the job. If a developer can't even figure out how to do a basic function on demand, how are they going to be able to contribute to the team? If a developer won't do a basic function on demand, then that's an instant disqualification. Anyone can say anything on a resume, and there needs to be a way to validate that it's not just a fabrication.

To be clear, I am making the distinction between "coding exercise" and "brain-teaser". Brain-teasers are not useful in an interview context, and only result in adding stress to an already stressful situation. Simple tasks like "Write a function that rolls two dice and calculates the position of a game piece as it moves around the edge of a game board" are much better. I am not looking for the candidate to give me their masters thesis in a piece of code on demand, I am looking to weed out candidates that clearly don't have the skills to fill the position.

I don't think this is really in good faith, what is meant by 10x programmers is exactly that they are 10x more productive in grinding jira tickets, not that some people know more and are wokring on harder problems, etc.
I think this touches the base of the disagreement about their existence: the unspoken definition being used.

When I hear 10x programmer I definitely don't think "that they are 10x more productive in grinding jira tickets."

I think there are programmers who can build something that would take ten or more other developers to replicate.

And that's "easy" since some people can win by choosing the right game to compete in.

I think it’s means “there are coders out there who are consistently 10x more impactful than the average coder,” and this could be the result of simply speed or through other methods — finding better solutions etc.
the most impactful are the architects, their bad decisions echo through eternity of code spaghetti
Exactly this. I’ve seen architectural decisions that over time lead to exponential work to implement new features. An architectural fix can lead to a big-O difference in productivity, not just 10x (a constant factor).
10x programmers aren't going to be good at grinding tickets.

they'll procrastinate on them because they are boring and tedious and will go work a massive project instead because it's fun to them.

they'll finish that massive project in the time everyone is fiddling their thumbs with the stupid back and forth of the meetings and whatnot of those "tasks".

if you are lucky to get one of us, let us run free, we'll make you some really cool shit without any input.

if you stifle us and try to fit us in a box, we won't make shit. we'll eventually get bored, pissed off, and leave.

oh and don't touch our code, it's beautiful, and it's the only way it'll work, trust us! ideas welcome, code not!

we don't like teams. one person, one thought, one architect, one vision, one program.

source: am one, believe me or not idc, i prefer being mythical.

> we don't like teams. one person, one thought, one architect, one vision, one program.

Hope this is satire. Otherwise its a horrible idea.

nope, not satire, is yours?

you negged and put your opinion down, but you forgot to put down why it's "horrible"!

so, until then... yes-huh!

well, if it's a short term use and throw kind of project/tool then sure I can go with 1 "10X programmer", but if I were a stakeholder in a long term project I wouldn't put all my eggs in a one person team.
the 10x designs the entire system. the 1x teams work in it after, in a controlled way.

eventually the 1x teams understand the system and mimic the patterns.

enough patterns created by the 10x it's hard for the 1x to fuck things up.

yes you eventually won't have the 10x one day, but if you utilized them right, they made you a nice temple.

10x or not, if you have a team design a system you're doing it wrong. teams can work in it later, one person should design it.

fair enough. would love to see your work to really believe what you are saying.
unfortunately that would dox me and i love being a contrarian here apparently.

feel free to shoot me a way to contact you if you want.

but it's not really worthwhile for me to basically gather up a resume unless you have connections.

wait, you are a 10x programmer and don't have a public github profile?
i have many profiles, including github, that would be part of the resume.

a lot of the cool stuff in my later years is commercial.

you could have just replied with your contact info if you were really interested in me.

the only reason for me to try to prove anything to you would be if you were actually someone.

(comment deleted)
Reminds me of a software team having one surgeon and the others are support staff--in no way denigrating, but equally essential with their skillsets, to execute on the (skunkworks?) project.

This idea of a surgeon team is also from Brooks.

Anyone would work faster and better alone, it just doesn't really scale. Building something yourself is much easier than working in a team, the bigger the teams the harder it is.
i agree, except for the scaling, a 10x can make an entire project it takes 100s of engineers for, and they'll do it in magnitudes less code.

but that long topic aside... i was just pointing out the ideal environment for "10x programmers".

you put a 10x on a team and treat them the same, they become a 1x (or worse because they are bored and procrastinate), the others will drag them down to their level.

to make teams work, let the 10x design and develop the initial system solely. then the 1x work in a scoped domain (using a plugin/extension system etc) within the 10x's vision

Sounds more like you’ve got ADHD than 10Xism.
i think there's probably a correlation, sure. will we find adhd & ocd are symptoms of a "puzzle gene"?

i don't need an e-diagnosis from a few sentences of mine though, thanks.

i know what i make and what others make and how easy it comes to me. the label doesn't matter.

i tamed my mind and my environment long ago, any thematical "adhd" attributes concerns me not...

I hope for your sake this is satire, because a few sentences is all I need to know I’d hate working with you.
likewise! don't worry, we won't meet.

my sake thanks you for your hope though.

(comment deleted)
At the beginning of my career I worked in a team of 6 developers. Everyone except me was at least a competent developer. One of us did literally 80% of work. Company was paid by head so it didn't care about productivity of others and our client (HP) was happy.

Hence I know that incredibly productive developers exist, but they are also rare since he was the only one that really qualified in more than 20 years of my career.

Because they are rare I don't care how to test for them as it is very unlikely I'll cross path with any when searching for new team members (not sexy enough work) and just try to focus on finding competent reliable people.

I know few like that, had spell myself in my youth. Sadly, you learn in later life, you don't get compensated any more and worse, you set yourself up for burnout. Something I'm aware many did and, dare say, still do. Companies don't care, they'll take your blood but not good at giving it back or, indeed, slowing you down to the rate they pay you. Let alone, compensate for the efficiency (though that may have changed in the last decade or so in some places).
That's a good point.

The fact is, if you are working for a corporation your salary is mostly dependant on your position and not on your output. Peoples outputs can be orders of magnitude different and they will still be earning roughly similar salaries.

My advice to 10x-ers is: don't work for corporations. If you can be very productive you are selling yourself short.

Agreed on this. If you are a true 10x’er or 100x’er you can do best by making your own company. A year and a half ago I actually did this and recently exited for a good sum. Made a lot more money than if I had kept my salaried position.

The most productive engineers are not only good at coding, but also at identifying market value or customer need, and dealing with others to efficiently build everything required for the business.

>If you are a true 10x’er or 100x’er you can do best by making your own company.

What it takes to be a 10x is not necessarily the same as what it takes to start your own company, imo.

> My advice to 10x-ers is: don't work for corporations. If you can be very productive you are selling yourself short.

I understand the reasoning here, but I think it's worth adding a the caveats that:

1. Running a business and programming (or whatever skill you're an expert in) are two very different skillsets, and you need the former to get the best opportunities.

2. Not everyone finds it fun to run a business or take care of things other than what they're actually passionate about.

It may be worth evaluating whether you'll enjoy these aspects, and acknowledge there's a chance you might prefer working for less in a situation with less stress/responsibilities.

> 1. Running a business and programming (or whatever skill you're an expert in) are two very different skillsets, and you need the former to get the best opportunities.

Sure. But smart developers are also a good material to be smart in other areas of life, if they put themselves to it.

> 2. Not everyone finds it fun to run a business or take care of things other than what they're actually passionate about.

True. One way, old as humanity, is to find a partner who is enthusiastic about doing the things that you dislike. As far as statistics go, startups have higher chance of succeeding with two founders than one, when both founders have complementary skillsets.

I agree, I've found like 1 or 2 "10x" developers in my career. Before I met them I doubted they existed.

I think that's why there's debate about whether they exist. It's a somewhat implausible idea and they're rare enough that plenty of people have never met one.

However if you follow open source stuff at all it's relatively easy to find examples, e.g. in the Rust world Alex Crichton is an absolute machine. Probably a 20x developer.

Added to which, corporate bureaucracy often nullfies your impact anyway.

That 10x potential matters little if the real hard work is tracking down the right person to reconfigure kubernetes or getting sign off to deploy to prod and the code writing is essentially all plumbing.

My question is ; if you somehow could level up all the other people on the team to the super productive person's level - how much more productive would the team have been? Clearly it would have been somewhat more productive but I think a lot of this "10x developer" stuff is kind of reductionist - the quality of the overall team being solely the total quality of each individual member.

Sports teams are the obvious analogy here - with football/soccer you sometimes get these "team of the season" things where the best player in each position is chosen. One striker scored 50 goals for his team, another striker scored 48 goals somewhere else - wow, if they played together the team would have 98 goals. Except obviously not since there's a finite number of chances and the team is structured to play a certain way (often around their star player). And that's not taking into account ego/personality clashes which is a non-trivial concern with high performing people.

I think ego/personality clash are not related to performance.

I once worked with a 'prima dona' in the team who couldn't stand when someone critised his (average at most) performance.

You only associates both because it's 'easy' to resolve problems with high ego/low- average performance devs, you fire them.. But when it's an high performance dev, it's more complicated..

It probably depends on the company and project. If it's a hugely ambitious one with tons of challenging tasks to work on, then everyone being '10x times better' would mean it'd speed along and get done in about a quarter of the time.

For most projects/companies? I suspect you probably couldn't get much more efficient if everyone was significantly more skilled, and quickly realise how little meaningful work there is to do there. Given 10 super expert programmers the task of creating another CRUD app or client website and I suspect at least 9 of them would probably quit by the end of the month out of boredom.

Same. In our team of 10 there was one guy that did about half the work. Making him literally the 10x (okay, 9x) programmer.
I find it interesting that this was early career. It lines up with my experience, too.

Perhaps it's the case that, the less you know about a field, the more you attribute success to mysterious personal characteristics. And the more you know about it, the more you understand the role of circumstance and situational dynamics in determining performance.

Good point. My ignorance back then certainly could have played a part in my perception, but I don't think I am wrong :) I could go into details why, but I doubt specifics would be interesting to anyone.

I do agree that personal ignorance can make competency look more amazing.

My experience is that you can find developers who are 10x as productive as their peers, but rarely at the same company. That is, the average engineer at company A is 10x as productive as the average at company B.

I don’t have data on it—it could be hiring or compensation—but I suspect it’s simply systems of work that spend more time focusing on the right problems, in the right way, without slowing down the work.

I've seen it at the same company. Different people have a vastly different likelihood of coming up with workable or even good solutions and execute them in a timely fashion.

I'ts not just about systems.

All you need for the myth to be true are a few programmers who will take 10 times longer than necessary to complete a task.

I'll happily sign up as a volunteer. Or in the words of Nelson ‘Big Head’ Bighetti: “Richard’s a 10x-er. I’m, like, barely an x-er. I kinda suck.”

Do we really need to rehash this every couple of months? I mostly tend to enjoy the back and forth on it but even I am finding it something of a pantomime now :-(
Automation is key.

Whoever could replace other's manual process by one time automation tool, it's 10x developer.

It's not about your "super design pattern".

If only it were that simple. You can't automate IQ, experience and vision. 10x developers are regarded as such because of the quality of their output, not just sheer volume.
It's your choice: Or you keep repetitive manual work to get "boring job" done, or you get creative by automate them.
Had a project where the tedium work was cranked to 11. I automated that because I sure was not going to do that for every time I wanted to deploy some code. I also automated the semi complex task that you only do every 2-3 years. Because I sure was not going to remember the steps and I am 100% sure it would just get lost in our sea of documentation. Spinning a new env is mostly just running some scripts instead of days of filling in fields. Computers do the same over and over exactly the way you told them to. Use them. On the other side of that it is dead easy to over complicate something. I am dealing with a project like that now. 5 layers of indirection, model view, the testing framework is solid, the whole thing. It is a single form app with 3 buttons and 4 edit controls.
What if you described linear algos as being 10x faster than quadratic ones?

The 10X meme is both too extreme, by implying that Fabrice Bellard could kick out simple crud tasks at 10X the speed I do, and not extreme enough, suggesting that I could build ffmpeg and qemu the same as Fabrice if I was just given more time.

And also, the 10x meme, and how it’s often used, implies that skills are interchangeable. Should a great database internals expert be able to build a great micro-services architecture?

Earlier post:

https://news.ycombinator.com/item?id=32600331

>The 10X meme is both too extreme, by implying that Fabrice Bellard could kick out simple crud tasks at 10X the speed I do, and not extreme enough,

I understand your point and I think it just reinforces the fact that the "10" in "10x" should not be literally parsed as a number. My previous comment about the common conversational usage of "10x" is just a synonym for "much smarter than average": https://news.ycombinator.com/item?id=13753178

Another example of a random comment where "10x" does not literally mean "mathematically multiplied 10 times": https://news.ycombinator.com/item?id=28784181

It was just another example of "10x" as a short way to type out "significantly better" and the "2x" as a synonym for "slightly better".

This is a good point. If people used 10x to just mean: 'this person has a different magnitude of skill in a game changing way' then the term makes sense.

It clarifies that it doesn't mean that its 10x faster at tasks, like the original 10x study was about, but more just a shorthand for being of a different class of skill level.

This makes it sort of trivially true, though. Our scale of what skill looks like is naturally normalized to typical human capabilities, and “much” is a a point on that continuum.

If we’re going to talk about talent on a scale that is normalized to typical human abilities, IMO it would be better to assume talent distributed on a Gaussian and talk about n-sigma talents. We’ll end up sounding like Jack Donaghy though I think.

If you were given unlimited research time, why couldn't you build those things?
I'd like to run this experiment :) but yeah, I get your point.
> ...suggesting that I could build ffmpeg and qemu the same as Fabrice if I was just given more time.

The way I see it, 10x programmers have something (or things) that most programmers lack. Usually some combination of raw intelligence, creativity and dedication, often combined with a much deeper understanding of theoretical fundamentals than other developers.

> And also, the 10x meme, and how it’s often used, implies that skills are interchangeable. Should a great database internals expert be able to build a great micro-services architecture?

As I indicated above, I think being a 10x programmer is not so much about learned practical skills as having innate talents, and then making use of them. Such talents can be surprisingly transferable between technical domains.

I know of cases where a developer unfamiliar with both a codebase and the language it was written in can, within an hour or two, identify bugs and vulnerabilities that the dev team spent months failing to find/fix.

I think one aspect of this is the ability to break ANYTHING down to first principles, when needed, without losing sight of the whole.

> I know of cases where a developer unfamiliar with both a codebase and the language it was written in can, within an hour or two, identify bugs and vulnerabilities that the dev team spent months failing to find/fix.

I've found that stuff like that was way easier once I touched few languages that promoted different paradigms (some low level, some high, object oriented, functional/lisp etc). It makes it much easier to see difference between "programming" and "programming language"

Agreed. Playing with other languages for fun, even just for a very short time, really helps make that divide clear. Especially languages that are very different in some significant way than what you’re used to.
For building things I find that that “skill” to be powering through uncertainty. Some people are constantly in analysis paralysis and it is a struggle to watch them code something that isn’t completely outlined.
Just read it as 10X better rather than 10X faster, and the implied linearity in results goes away.

A 10X better engineer can do things others can not do.

I've made the analogy before that there are tasks that are like walking, and tasks that are like weightlifting.

If you give someone a task of a marathon, someone could complete it in 2 hours and another person 6-12 hours, but they both finish. If you give someone the task of lifting 500 pounds, it will never get done by most people.

Accidental complexity leads to more accidental complexity. When small errors early on build exponentially, you need to find those that can do so with minimal mistakes.

By this logic, there's no 10x any profession. This is all just semantics at this point.
Engineering ability probably fits a normal distribution.
Yeah. And I think 10x coders are probably as rare as professional sportsmen or members of a concert orchestra. They exist, but does your business need them?

Of course it would be nice if coders that rare were paid like pro-athletes...

At first I thought no it must be lognormal since productivity must be at least marginally more than zero, but then I realized that's definitely not true: I know developers who definitely have negative net productivity on the team.

The -0.5x developer is not a myth.

As a 1/10th developer, I can confirm that net negative devs exist.
as a 1-2 (depending on proj). I try to bring them up and try to help them. But some people either do not gel into the group or they are hopeless. But I hold out the eternal flame I can help them be better!
[flagged]
The article even predates ChatGPT. Bad bot
I'd rather have no bots intruding at all, yeah. It can be annoying browsing Reddit with all the sludge from bots trying to be funny or corrective.
OK I'm a human and it looked like a good Idea to start this bot. Will remove the bot and these comments. Sorry for the trouble/the interruption
Of course 10X programmers exist. Nobody debates the existence of 10X athletes, writers, painters, etc.

What I think people react against is the idea that it’s some magical intrinsic thing. It’s not. Like anything else it’s got a component of aptitude but the rest is lots and lots of learning and practice and “getting into the craft.”

10x exist in most fields. In academia there are definitely people who are heads and shoulders above others, for example. Then it is also a matter of interpretation, what is meant by somebody who is 10x:

1. There are people who are 10x better at working in one codebase simply because they have so much experience with it.

2. There are people who end up leading a great lab. The sum total of their circumstances end up making them 10x more productive than their colleagues in their field of research.

3. There are people who can be dropped into an unknown research/development environment and be productive 10x faster than others.

I think people mostly mean 3. when they talk about the 10x programmer. Anyway, does any of this really matter? If you are a 10x programmer, then you should make sure you get compensated for it. And if you aren't, you really do not want to get confused for one as the pressure of expectations will make your life miserable.

I personally believe most people reach their optimum lifestyle subconsciously. A 10x programmer gets there because (he (or she) is naturally talented) and he has enough interest, desire and willingness to commit his time to become 10x better. If you aren't a 10x you probably also do not really want to be a 10x, because you probably value spending your time elsewhere or just do not truly enjoy the stress that comes with such a role.

Basically what I want to say with all of this is:

1. There are definitely some people who are heads and shoulders above others.

2. But in many cases a 10x is a 10x in their natural environment. If you remove them from their natural environment they won't replicate their success, even if their natural ability is also very much above average. We tend to attribute all the merit to the leader and forget all the people working under him.

3. You shouldn't concern yourself with how high you rank in this hierarchy. Do what you feel comfortable doing and enjoy life. You probably subconsciously chose the role that most accommodates your lifestyle, anyway.

I think I might have veered a bit off-topic.

Academia is not "most fields". Most field is Farmer, business, lawyer, plumber etc.
GP never said it was:

> In academia there are definitely people who are heads and shoulders above others, for example [my emphasis].

GP was providing support for their claim that 10xs exist in most fields. Academia was just one example of a field (or "field of fields"). The same could be said of farming and plumbing.

I do agree with your opinions and I’ve met 10x programmers who are also nice people. But I think there is resistence to the idea of 10x and a natural sympathy that 10x is a myth because of a few types of 10x

- The one who is 10x at the expense of their colleagues (they run fast and break things and leave to others clean what is broken, which is part of the reason that they are fast).

- The one who is, at most, 1.5x or 2x but think they are (and sell themselves to the leadership as) 10x and get a very disproportional part of the money, promotions, praise, notoriety.

- The one who really is 10x, knows it, everyone that worked with knows it, but they are just obnoxious about it. They consider themselves not just a better programmer but a superior human being. This one at least is productive and can be dealt with good management.

So when you have met those types, especially the first two types, it is natural to have sympathy to the idea that 10x is a myth. But, for me, it’s clear that they exist and some of them are nice people and great to work with, they are 10x in velocity and code quality, so they make your life easier as a programmer next to them.

Fully agree. Will say that although the third type may be great at delivering value, they may have a negative effect on the team and either drive away talent from the team, bring down morale, or cause the only people to stay with the team to be less ideal (since some great team members may see the toxicity, and understandably avoid that job)

That is to say, some at this type surely can be managed, but it may take a really good manager (and even that may not be enough), along with team mates who are not only good, but also able to deal with such a team member.

Which in the end may negate the 10x productivity, or at the very least reduce it.

I guess one alternative is having them in their own “team” basically reporting to a director but having no immediate team members

Severe ADHD, uncontrolled for 30 years until recently.

I’ve been the 10x programmer several times in my career. Interesting positions that kept me hyper focused. Built out entire product lines, saved or made companies millions.

I’ve been 1x or much lower on uninteresting projects, or ones where I couldn’t get management to deal with blockers.

Some of these have been at same company. Just depended on the project.

> The one who is 10x at the expense of their colleagues (they run fast and break things and leave to others clean what is broken, which is part of the reason that they are fast).

In that case they are not 10x. They are not producing 10x value if they are making it harder on their coworkers.

> The one who really is 10x, knows it, everyone that worked with knows it, but they are just obnoxious about it

In that case they are still not 10x because if they aren’t reined in, no one wants to work with them and work still gets done slower - again not producing 10x value.

You're hitting on the most frustrating aspect of this argument, the sometimes bizarre imaginary scenarios to try to make 10x a negative instead of a positive: "what if they're a 10x programmer but also a psychopathic serial killer who targets their colleagues!?!?!"
There is nothing “imaginary” about it. If you produce code that is harder to maintain, you’re producing negative long term value.

There are plenty of smart pricks in our industry.

Also if you produce code and don’t bother leveling up your coworkers, you’re a long term liability to your company.

The imaginary part of it is that you think that's what I mean by a 10x developer.

It's like insisting that surgeons are terrible people and pointing to Jeffrey Dahlmer because he also cut up people.

While what you are saying is true, sometimes 10x is 10x. They push that feature and it secures an investment round. They push that feature and it secures an important client. They push that feature, don't commit it to the main branch, write tests, commit tests to the main branch,and help the team kill that debt over the course of a few months.
I think the highly productive programmer who ships features like crazy but leaves a trail of garbage in their wake for others to clean up is actually the most common archetype I’ve seen in real life.

The core issue is the disconnect between leadership and other engineers: the leadership heaps praise on this person, gives them interesting work, and takes projects they think are “behind” away from others for their superstar to work on. The other engineers are left feeling resentful that they have to fix/maintain/extend/support this horrible tangled mess of code, while the “10xer” moves on and never has to deal with cleaning up their own mess. Sometimes management will actively protect the person’s time by asking others not to bother them with questions about their code while they focus on whatever’s next!

The features shipped have visible business value and are easily measured, but the impact on employee morale/retention/velocity is harder to measure, so it’s overlooked.

> I think the highly productive programmer who ships features like crazy but leaves a trail of garbage in their wake for others to clean up is actually the most common archetype I’ve seen in real life.

Yes. I've encountered more of these than I have 10x developers. In fact, I've FIRED more of these than I've encountered 10x developers.

That doesn't mean 10x developers don't exist.

Why do people take some idea and totally botch it?

Whole idea is taken out of context. There is nothing about "superhuman 10x dev" it was simple realization that IN ONE TEAM there are developers who are 10x faster to deliver tasks and there are slower devs.

Just like in university group assignment there are slackers and there is that one person who does the assignment.

Worst of all is that people start assigning "10x" to themselves or others or judge others as "0.1x" - which is meaningless out of very specific context.

My reading is that some hold a belief that the distribution of developer productivity/skill is not a Normal Distribution. Yes, in a normal distribution some on the right will be 10x those on the left. But as I read it, the “10x” advocates propose there is some sort of Guru Spike on the right hand side that’s specific enough to the realm of development to create a meme from it. I harbour skepticism that it’s anything but a normal distribution.
I think this nails it.

Programming, at least complex programming, is a gestalt of many skills ALL of which are probably a normal distribution (intelligence, focus, problem solving, political savvy, curiosity, experience, etc. etc.) How could it NOT have at least a 0.1x to 10x distribution?

To me the concept doesn't even have to mean that individual is outputting 10x amounts of code or closing 10x stories...

More so it means that there ideas, abstractions and frameworks result in substantially higher productivity for anyone working on the project than the average dev.

Beyond just the talent to do this successfully, you also have to give people the space and freedom to actually do 10x work... This tends to extend well beyond the narrow scoped requirements written in the current sprint of tickets.

Bingo. 10x is not about how fast someone codes. That is why there is confusion here. Of course someone cannot write code consistently 10x as fast or write 10x as much code. On a regular basis? That is nonsensical.

When talking about 10x devs (or 10x any type of employee), it is about Judgement. The decisions they make on what they work on, how they achieve it, and (probably most importantly) what they choose NOT to work on. Judgement is the deciding factor in whether someone has a 10x impact on the business over time. It absolutely is not how much code they write. As a matter of fact, removing code can be a 10x improvement as well.

I disagree that a regular 1x programmer is comparable to someone slacking off on a university group assignment. I prefer the sports analogy, where there are some stars with disproportional impact in the outcome of games, but who work with other also very hard-working, professional athletes. No one is slacking around, there is just some people that are better.

Also, I do think there are 10x programmers that are 10x in a myriad of contexts, not just one team.

I am not botching your idea, I just have a different perspective of what the term “10x” means.

You are not botching my idea but Fred Brooks idea:

*Programming managers have long recognized wide productivity variations between good programmers and poor ones. But the actual measured magnitudes have astounded all of us. In one of their studies, Sackman, Erikson, and Grant were measuring perfor- mances of a group of experienced programmers. Within just this group the ratios between best and worst performances averaged about 10:1 on productivity measurements and an amazing 5:1 on program speed and space measurements! In short the $20,000/year programmer may well be 10 times as productive as the $10,000/year one. The converse may be true, too. The data showed no correlation whatsoever between experience and per- formance. (I doubt if that is universally true.)*

Having five 3x programmers on a team is likely a more pleasant working situation than having one 10x and four 1x programmers - also, slightly more productive! I wonder which arrangment is harder to create?
(comment deleted)
(comment deleted)
But it takes two to tango. In my experience a lot of the negative impact of a 10x:er is actually that they make 1-3x:ers feel very insecure, and some of them can’t handle that / go off the rails…

Now, is that really the 10x:ers fault?

That has not been my experience at all with "10x" programmers. I have often run into the first type from the parent comment - "hyper-productive" people who churn out huge amounts of code without a lot of thought. They tend to leave side effects all over the codebase, and often have someone in management who sponsors them (hoping to ride to promotions as a pair) who forces other teams to carry the burden of cleanup. However, if you run a startup, this kind of person really is an amazing asset, because there isn't a lot of codebase to clean up.

People I have met in the the third type (true 10x-ers who know it) seem to have a lot more humility, in my experience, than suggested here. If you look solely at metrics like kLOC/year, they are often in the middle or bottom of the pack. They are not usually generalists, instead specializing in some area that is of high value.

I’ve seen it many times. I’ve even seen managers on teams try to sabotage a 10x:er because he made the manager (and team) look bad.

When a single individual outperforms a large group the large group typically doesn’t like it, or the person doing it. Sadly that’s just a part of human nature. Where I live (Sweden) it’s referred to as the law of Jante. In other parts of the world it’s referred to as tall poppy syndrome or crab mentality.

>The one who really is 10x, knows it,

I have a friend like this. I have never worked with them, but get to hear about how all their teammates are nearly useless on every team they work on throughout their career (mix of FAANGs and startups). Every time they join a company, they quickly become the team expert and biggest contributor, because they enjoy working long hours, spending their weekends coding, and are a very talented programmer.

I recognize they are extremely passionate for what they do, but I would never want to work with them personally. That kind of work relationship cannot be fun for anyone, except maybe the stake holders that are seeing rapid progress.

(comment deleted)

    The one who is 10x at the expense of their colleagues [...]

    The one who is, at most, 1.5x or 2x but think they are (and 
    sell themselves to the leadership as) 10x [...]
Yes.

The root issue, of course, is that management essentially never has the time or chops to discern the quality (maintainability, readability, performance, correctness, etc) of the engineering work being delivered.

Management only understands timely delivery. Which is crucial, obviously! But considering only quality or timeliness at the expense of the other is of course a dark dark pattern.

Even when management are software engineers themselves, they typically just don't have the time to be elbow-deep in the code their reports are delivering. This is particularly true in fast moving fields like front-end development where you have lunatics running the asylum and standards and practices change every three weeks. And even if your manager does get it, their manager probably doesn't, their manager's manager doesn't, the stockholders don't, etc.

I don't know the answer to this. It seems to me almost impossible to avoid this in a commercial setting unless you have a tiny team (less than 10 engineers?) and the CEO/CTO is a top-notch engineer.

Talk me down off of this ledge. Tell me it's possible.

> Management only understands timely delivery.

as they should, because it's the only thing that matters to 99% of humans for any non-critical stuff (and honestly, even critical... even stuff that can kill humans, we are very good at saying "one chance of death in XXX is an acceptable risk" ; I'd wager that anything that is below the average death rate of car driving in a particular time / area is in general ok).

I'd rather learn a software that has bugs today than a perfect software in a year - by that time I've already organized my workflow around the bugs and already spent 1/30th of the time of my projected remaining future career around this software. I'm not going to re-learn yours even if it works better.

(comment deleted)

    as they should, because [timely delivery] is the 
    only thing that matters to 99% of humans for any 
    non-critical stuff 
Right, but here's the thing. Tech debt is inseparable from timely delivery.

The tech debt you accrue today in the name of "shipping fast" hurts your ability to execute timely delivery in the future.

That's why management should care.

or is it ? some code is made to be long-lasting (and that's the one we "see" because of course it lasted long already) but the large majority is short-term projects which are only relevant for a few months / years and will never get reused afterwards.
Hah, yeah, I think we haven't a terminology difference here. I wouldn't even term "bad" code in short-lived projects to be "tech debt" in the first place.

I definitely agree you about the near irrelevance of tech debt in short lived projects.

     the large majority is short-term projects which 
Is this really true? Really depends on where you work, I guess. It hasn't generally been my experience.

But it really depends on if you're working at e.g. an agency vs. working on long lived in house projects.

> fast moving fields like front-end development where you have lunatics running the asylum and standards and practices change every three weeks.

Hate to break it to everyone but its really not like this, unless you're stuck in a loop of a bunch of resume driven engineers there's alot of stability in frontend development, especially since the advent of meta frameworks (Next.js, Nuxt, Modern Angular etc) and stability in tooling (rollup v2+, webpack 5+, and especially esbuild / vite)

If you want to be even more stable here, you can forgo a lot of headache with web components, which will always have some backward compatibility built in thanks to it being build on standards.

It isn't 2016 anymore. New frameworks aren't just popping up left right and center and expecting adoption. There's a lot of stability out there and there will be for the foreseeable future.

Much like any engineering endeavor there are, yes, people pushing the frontier, but all communities have this.

     unless you're stuck in a loop of a bunch of resume driven engineers
This has been my experience and the experience of many peers that I've heard from. Admittedly, there's an inherent selection bias there... people dealing with frustrating situations are certainly more apt to speak up about them.
- The one who is <INSERT ANY RATIO, EVEN NEGATIVE> at the expense of their colleagues

- The one who is, at most, <INSERT ANY RATIO, EVEN NEGATIVE> but think they are 10x and get a very disproportional part of the money, promotions, praise, notoriety.

Do you think 1.5x people get paid 50% more than a 1x typically? If a 1.5x got paid 50% more for doing 50% more work, do you consider that disproportionate?
I've known all 3 of the enumerated types. I'd suggest a 4th to add in.

- The humble one, who helps mentor their colleagues to be better at what they do. They do this by helping provide critical insight at important junctures. By not attempting to grab the spotlight, but instead shine praise upon their colleagues.

These are people who help everyone get better. They are out there. While the first 3 are the loudest and most annoying, this 4th type is rarely self-identifying, often self-deprecating as they don't crave attention.

The 10x jerk is a really common trope that's thrown around every time the 10x debate comes up anywhere in technical circles. Truth is while they exist, not all 10x are like that.

I've seen 10x that were excellent mentors. Perhaps not in a traditional sense, but through code reviews and answering questions. Everyone working with him seemed to improve really quickly.

I think the reason so many people have doubts on the existence of 10x is that they might have never encountered one.

I recall a story someone told me a while ago. Software business that did local CoL/prevailing wages. Hired an intern one summer that was just running around in circles around the other, more senior devs. Useless to say they loved him and the next summer they tried to get him back, even offering a signing bonus for an internship (something they considered unheard of) but he was already at a large search engine company down in the Bay. You can guess the comp was probably already 3x what his previous job was offering. Of course, he wouldn't return.

There's a whole class of engineers were completely invisible to most companies, even if they are in the same "local market" [0][1] (Some use the term "dark matter devs" but I know it has another meaning [2]). These guys tend to fly under the radar quite a bit. If you are in a tier 2 market or company, your chances of attracting one are close to nil. Because they are extremely valuable, they don't interview a lot and tend to hop between companies where they know people (or get fast tracked internally). When hiring is red hot, they might completely disappear from the hiring pool by junior year.

[0] https://blog.pragmaticengineer.com/software-engineering-sala...

[1] http://danluu.com/bimodal-compensation/

[2] https://www.hanselman.com/blog/dark-matter-developers-the-un...

> 10x exist in most fields. In academia there are definitely people who are heads and shoulders above others, for example.

I think this depends a bit on your viewpoint. When most people think of 10x developers, they think of ten times their theoretical maximum output, not their actual output.

The highly productive people I met were good developers, but not leagues beyond in skill. They just had their work setup to not be bogged down too much by meetings, knew the application and had the ability to actually do productive work to the scale of something like 8-10h per day. If you compare that to your average developer, who will be somewhat impeded by management overhead, 'only' be reasonably skilled and max out at something like 4 fully productive hours a day (2 on Friday), it really seems like those guys can put out 10x the work.

Well, it might simply be "push the project architecture in right direction so whole team overall is efficient".

It's also probably a lot of anecdotes, "this dev solved weird issue in a day where other dev was stuck for week and couldn't find it!".

They might be 2x developer on normal day but happened to be this or that, debugged some hard bugs everyone else got stuck at and the people in project remembered those few good performances and assumed they do everything that much better

Or maybe another way to look at productivity and effectiveness is that there are the ~1/10 performers and top performers at 1 x, of which in most fields there are very few, but there are lots of 1/3 … 1/10th performers.
> You shouldn't concern yourself with how high you rank in this hierarchy.

I find that many people commonly believe themselves to be a >1x programmer who is simply misunderstood, which is damaging. This leads to them thinking they deserve more, and therefore can make less effort to compensate this delta, or imagining that those above them who disagree with their own characterization must be idiots.

Every person believes oneself to be a >1x in everything (dancer, global policy thinker, lover, ...), that's normal and that's how our brains are wired.
In any field where there are multiple possible directions for optimization 10x can be in many different directions.

Compare GRRM with Stephen King. Both are very skilled authors but one is releasing books like clockwork and the other has propensity for getting authors block. Is one of them a 10x author and the other not? I think the answer depends on your reading taste.

I think that of all professions, even creative professions, best-selling fiction writers are the easiest to compare in terms of $$$. How does Saint-Exupery's Little Prince fare in total lifetime sales compared with Stephen King's entire output? (I don't know! But it's a question that can be asked).

In comparison, the comparison of best-seller musicians suffers from how many times the economics of popular music has radically changed over a century. And music is already the product of many people even for something like "Joe Pass plays solo guitar inside his closet as recorded by a handheld potato". (He plays music composed by others! Also not really an example of pop music.)

Is money really a good indication of someone's skill as a writer? That's its own question, and I guess it depends on what you consider good or not. There are plenty of authors who become millionaires/billionaires because they knew what the market liked and how to sell themselves/their work, but many people would not consider them the pinnacle of their craft. It's undeniable that something like Twilight or 50 Shades of Grey is extremely successful, but whether that makes Stephanie Meyer and EL James better authors than Stephen King or George RR Martin is debatable at least.

But I guess the question of successful/fast/highly compensated vs skilled is probably also true of progammers too. Is a 10x programmers also necessary a successful one career wise?

In my experience, there certainly exists a 10x gap between those who aren't very helpful and those who are extremely helpful. That is the crux of the research as I understand it anyway: You'll find a big distribution in talent, but a median producer is not 1/10 the best.

I've found those who produce significantly faster do so by creating well justified shortcuts that do not sacrifice the end goals (but may run around the requirements a little.)

That's exactly the story in TFA: Someone decided "I'm not going to satisfy this silly requirement of writing tests, I'm going to just auto-generate some tests, regardless of whether this has full coverage of all corner cases, because I bet everyone is just happier to move on."

This is why I believe a 10x-er can be trained, by building a deep toolbox of solutions to pull from, learning to read the room when it comes to designs, and learning to recognize and take well-justified shortcuts whenever possible.

We had one 10x developer in our team (it was a bigger project with about 70 developers). His output was 10x the average mainly because he had very (both) deep and broad domain knowledge, i.e. knowing largest part of our own code base. That will allows him to produce much more, since he doesn't need to investigate how something was done or how to integrate the new feature into the system. He was also quite hardworking, which also helps.

Of course, if he would be put into a completely new project, he probably wouldn't be 10x, at least not the first few years there.

> You'll find a big distribution in talent, but a median producer is not 1/10 the best.

That's also a misunderstanding: The original research that the "10x" label was based on was best-to-worst, not best-to-median.

Also (not so much to you but eh may as well just dump it here): it was "in a given group of experienced programmers". Basically could be thought of as "within a given team". It never meant a single person was themselves always 10x or whatever.

> That's also a misunderstanding

Well yeah, that's what I'm saying, but thank you for bringing it front and center in a clearer way.

An economics way to look at it would be to consider marginal output of the worker, ie how much value/profit/whatever_you_target the organization would have produced with the worker minus how much it would have produced without the worker.
ADHD hyperfocus can definitely be a factor also.
Yep. I have 10x weeks - sometimes months. Then I have weeks like this one where I do basically nothing.

I think the total output is still quite high compared to other people, but I’ve spent most of my professional life torturing myself for being “lazy” because my work patterns don’t look like other people.

Ah, the times where I worked for a large org and could get away with these variations. Startups and consulting clients can't afford or don't care that you're having a bad couple of weeks.
Ha yes, when I was in my twenties I was known as the guy who’d get a week’s worth of work done in the one day I turned up…
It matters if you're trying to do things.

I'm something of a 10x designer who can program, a bit. As a result I've produced a working library of products easily 10x the size and scope of most competitors, within some very obvious constraints because I am NOT a 10x programmer, per se. My effectiveness is in coming up with the things to do, and why, and implementing them in such a way as to maximize their reach and usefulness.

I'm currently working with a 10x programmer, whose capacity is astronomically beyond mine as far as programming is concerned, but who's simply a good designer, not a 10x designer. So his projects tend to be user-driven and expansive, and very useful and dependable, but rapidly feature-creeping because he's not really one to tell users 'no, you can't have that, it's not in line with the vision'. His 10x is in the ability to bring all such requests to fruition, for many parallel projects.

We're collaborating on a thing and my overview/observation is this: when you're able to get the people working cooperatively AND trusting each others' 10X domains, it multiplies. I figure me and this guy combine to be a 100X, if and only if we consciously work towards maximizing that.

The experiential thing about being that person in that situation is the EFFORTLESSNESS of it. It's really pretty mind-blowing. Requires good enough people skills to be able to observe, listen, and trust. But when you luck into that kind of combination, it feels totally Woz/Jobs. Stuff just unfolds, perhaps with a lot of enthusiastic work (I'll happily put in days, weeks, months of grind on things at my level that will facilitate the project) but it's important to understand that it's not 10X or 100X the effort or burden.

Being in that 10X situation is great, and you should be able to be there in such a way that everybody's delighted and facilitated by what you're doing. If it's a burden on others or giving them a hard time, it's not the 10X/100X thing I've experienced. It's not a struggle. It's about when things just go great, seem to burst forth effortlessly.

4. There are people who are so hyperfocused on delivering a feature that they produce 10x as much technical debt as a regular programmer.

The resistance against that type of developer is probably from the rest of the team who get to clean up after them but get none of the recognition.

I think your 3 examples of "10x programmers" definitely exist.

But, here's what's most typical in my experience:

4. A programmer who writes a bunch of code and delivers a bunch of features early in a project's history. Because management typically does not have the engineering chops to determine the actual quality/maintainability of the code being delivered, but does highly value rapid delivery, this process overwhelmingly selects for developers who are deliver sloppy but (mostly) working code at high velocity. Additionally, they are the only ones able to understand how the existing mess works, because they are the ones who created it. So everybody else works at a disadvantage. This further cements the belief that they are "10x" and they are rewarded with more and more greenfield work and they usually make a mess of that as well while management continues to think they're geniuses.

Well, to play devil's advocate, that's 10x in the context of finding product-market fit. And that really matters, whether "good" engineers want to believe it or not too. It's just that the kind of person who does that is also likely to be burned out, and have nothing else going for them in life, so they tend to become an asshole – leading to your assessment of things.

I've seen 10x folks in the other 3 categories be total assholes too.

I think the "debate" around 10x folks is a bit silly, and by hard-earned experience, I've learned to question the motivations of the folks who deny that such engineers exist. There is a whole other sort of politics going on, and, it doesn't address the core problem.

My experience of 10x folks is more like: can you live with them, will they be a boost to the team overall, or will they use their 10x to bring down folks around them (consciously or subconsciously) so that they can appear to be more like 20x, or something petty like that.

Some 10x folks use their 10x to put everyone else at a disadvantage, by forcing people to play their very specific sort of game (happens especially with strong specialists who are also decent generalists, i.e. T-shaped people).

There are others who use their 10x to resist any changes, typically out of some seen-it-all cynicism (happens with the crowd who are really good at some codebase, or who are leaders of their lab, etc.). The damage caused is difficult to dislodge because it's based on context as much as skill, and learning the business context can take years, which most talented people won't have patience for – if the 10x even allows them to exist.

Every sort of 10x has some dark pattern (alluding back to your experience), and for that reason, I think it's important for "good" people to not let whatever 10x they have get to their head, and to find other things in life that offers them non-attachment and perspective. It isn't necessarily a strong-people-be-assholes problem as much as a human nature problem. Left unchecked, 10x becomes self-defeating at a team or org level, and will make the 10x person miserable too (even if they don't know it).

    Well, to play devil's advocate, that's 10x in the 
    context of finding product-market fit. And that 
    really matters, whether "good" engineers want to 
    believe it or not too.
Well said. It definitely matters.

"Good" engineering is finding the optimum balance between various competing factors: time-to-market, cost, tech debt, etc.

(There are plenty of "good" engineers who try to perfect everything and never actually ship anything. We have all felt that temptation, I'm sure...)

But I think the core issue still remains. Management can't properly balance these competing factors because they can't be elbow-deep in the code.

    I think the "debate" around 10x folks is a bit silly, 
    and by hard-earned experience, I've learned to question 
    the motivations of the folks who deny that such engineers 
    exist
Haha. I usually question the motivation of those who say that such engineers do exist. However, that's because they usually fail to consider any of the nuances (team fit, luck, circumstance, etc). You definitely do not fall into that category; I think you really describe it well.

    My experience of 10x folks is more like: can you live 
    with them, will they be a boost to the team overall, 
    or will they use their 10x to bring down folks around 
    them (consciously or subconsciously)
Amen. I worked with one single programmer in my life who was perhaps a true 10x. However, he was a lot. He was very hyperactive and on the autism spectrum. Social grace and norms were totally alien to him. He really crapped on other programmers. However, he was actually an extremely sweet person at heart! Just lacking in the filters and restraints that neurotypicals have. We eventually reached a good working arrangement where he could be his eccentric 10x self and a mortal 1x peer engineer like me worked closely with him to gently rein him in in ways that would have been impossible for management. For a couple of years there I thought we were a really good team.

But he definitely wasn't the kind of guy you could just throw onto any old team without a care. His 10x did not come for free.

Yeah, never saw 10x programmers where the real hard work is done - in maintenance and support.
I have seen it. The person was a new hire, and while he's a solid developer, from a maintenance / debugging / support perspective I haven't encountered his equal -- he solved a complicated issue in about 4 hours (including the time taken to get the dev environment setup) and apologized for how long it took. Great attitude, and amazing ability to get at the root of maintenance problems.
10x just throws people off, when it's really just much better 5x-10x-100x. Also, it's often hard for people to accept that someone is demonstrably better at the same job.

I relate things to Jiu-Jitsu a lot, but here again it helps. I know where I stand in the gym at all times. It forces honesty with myself. There's nowhere for me to hide when another human lets me go from a position that if the circumstances were different they could kill or otherwise seriously harm me.

There are people I beat, people who I rarely beat, then there are a couple people who are so good it's almost like we are playing a different sport. Do I jump through mental gymnastics to make myself feel better about the different sport people existing? No, I look at what they do and try to learn from them where I can while understanding I will likely never be that good. And that's ok.

>>when it's really just much better 5x-10x-100x.

At seventeen Hussain went on forty-day self-imposed retreat known as a chilla, where a musician practices in isolation until a state is reached in which the music and musician become one. The removal of everyday distractions, combined with single-minded concentration on the practice allows the musician to attain a state of Samadhi or meditative absorption, where one enters into a deeper relationship with one’s own music, and comes in direct contact with the source of music itself. Visions and hallucinations are not uncommon, where one’s musical ancestors may appear and offer encouragement or criticism. What is certain is that the musician makes remarkable progress in his craft. Hussain recalls his first Chilla in Hart’s drumming “I saw things in the music that I had never seen before, new combinations, new patterns”. Six month’s later, against his father’s advice, Zakir was ready to do a second chilla. This time around, the visions were more intense, and Hussain had a premonition that he would soon go to America.

Peter Lavezzoli in Peter Lavezzoli (24 April 2006). The Dawn of Indian Music in the West. Continuum. pp. 108–. ISBN 978-0-8264-1815-9., and this vision came true a year later and Hussain went to America and made a huge successful career for himself.

From : https://en.wikiquote.org/wiki/Zakir_Hussain_(musician)

What most people don't get-- There are not only 100x professionals, it can also be very hard to understand just far ahead they are when it comes to putting in efforts at a scale normal people can't even imagine.

Infinite skill ceiling is a feature, not a bug.

However, many cannot handle the ego damage that results from truly assessing their skill level relative to the best.

One of my favorite guitarists is Matt Bellamy of Muse. His ability to perform is absolutely world-class. I can get better at guitar all I want and I know it barely moves the needle when compared with him. The thing is, the better I get the more I notice in his playing and skills which makes me better understand the full extent of his skill.

> ...at a scale normal people can't even imagine.

If you participate in a sport at a below world-class level where you get an opportunity to meet Olympians who teach clinics in that sport through learning by doing, take that chance because it is possibly the closest you will get to grasping just how wide the chasm is between you and "world class". In my case, the Olympians switched between roles on teams of amateurs they have never worked with before, then switched teams. All while teaching us the finer points of the sport, they would lead the team they were teaching to trounce the opposite team. It was seriously inspiring.

I think there are two categories of IT engineers (to include not only programmers). There are 2x engineers, and there are 10x engineers.

2x engineer is that guy to who you will go when you have exhausted all other simpler options (or go immediately, when you learn to optimize solutions), who will fix or guide you on a level others can't match. And he is probably 2 times more productive with his tasks than median level, or can be, depending on his time commitment. And I think there really can't be more productivity increases above these 2x times. Maybe you can find some unicorns, top of top, who are 3x times more productive, but that's about it.

10x engineer on the other hand is the one who is most vocal about any related or unrelated issues to him, who goes to every smoking break, to every party, to every seminar and tech talk and himself gives talks. He in known across the teams and even projects and the first to be promoted, usually along leadership track. He can also be 2x engineer in fact, but the rest of the "Exes" comes purely from self advertisement.

> I personally believe most people reach their optimum lifestyle subconsciously

I somewhat agree with this. I think as people are exposed to different roles and tasks over time, they will take to some more easily or enthusiastically than others, and the skills they build will result in them doing more of that kind of work in the future.

What I find fascinating, however, is that people arrive at things subconsciously in two very different ways. Either it's something they enjoyed at every step along the way, or it was painful at first, but they didn't feel like they had a choice, and eventually they reached a level of proficiency where they enjoyed it and pursued it willingly. These are both thoroughly haphazard ways of choosing what to pursue in life, passively following the path of least resistance like water flowing downhill through whatever terrain happens to be in front of it.

But you can intentionally pursue things that life doesn't put in front of you. One thing people do consciously rather than subconsciously is look at something they find cool and think, "Wow, that looks amazing. I want to learn how to do that." And they don't concern themselves with the fact that it isn't fun at first and nobody is forcing them to do it. They motivate themselves with the end goal. That takes active, conscious effort.

For example, the passive way some people get into web development is that they make a really simple web page with an h1 element containing their name and think, "Neat." Immediate gratification. They change the color. "Cool!" More immediate gratification. And they get passively swept into learning web development.

But there are other people who first get excited looking at a really beautifully designed site on the web. They think, "Wow, that is amazing. I want to be able to do that." So they make a simple web page with an h1 element containing their name, and they think, "This is shit. This feels bad to look at, and I feel bad that I made it." But they struggle through the learning process because they keep the end goal in mind. They keep thinking about how amazing it will be to make something great.

Beautifully put! I just realized I've been on both sides of that. Younger me tended to be the first case you described. Older me seems to tend towards the second case. Perhaps because I am highly conscious of my time now and don't give myself much time to play.
(comment deleted)
Companies: Don't be looking for 10x programmers, unless you're 10x-ing their salary as well.
Really, you'll have a much more positive effect on your bottom line by avoiding the 0.1x programmers, which are shockingly common
Nothing ruins things faster than the wrong people.
Why would you do that? That would introduce major risk for no benefit.
I mean maybe not 10x their salary, but don't be cheap. Pay them like your top salesman, not like an accountant.
I don’t understand what people mean by 10x programmer.

My first exposure to the term were meme type descriptions that seemed to describe 10x programmers as fast, but also implied a lot of negative qualities, anti social, no time for meetings / communication / documentation.

I thought it was a joke meme making fun of very fast but ultimately flawed programmers…. but then I realized some people were serious and sorta glorifying the negative aspects as well.

I think the term was, if not invented, then at least popularised by Joel Spolsky in one of his blog posts. Initially the term was purely positive and did not imply any negative traits.

The core argument of the blog post was that focusing on things like scrum vs agile and different testing methodologies and programming languages etc doesn't matter anywhere near as much as the actual programmers you hire. Hiring the right programmer will have 10x impact on your overall productivity compared to choosing the right project management or testing methodology.

I believe the term comes from a study done my Tom Demarco, and was about developer performance across companies, on an equal task, with a somewhat controlled level of experience.

It def wasn't about some guy on my team rocks, but about this company over here does better work. That meaning isn't really how its used now though.

The study was "Programmer Performance and the Effects of the Workplace"

> I don’t understand what people mean by 10x programmer.

So chances are you've never seen one. Now I wonder how are our experiences so different, because I've known a bunch and I've worked at that level sometimes.

> I thought it was a joke meme making fun of very fast but ultimately flawed programmers…. but then I realized some people were serious and sorta glorifying the negative aspects as well.

That makes sense because there's a lot of egos involved in this topic. When you are doing most of the job of the team, obviously you're tempted to make it a part of your identity.

But also it makes other people jealous and they look for a way to justify, blur, compensate and explain it away. In this matter, denial often comes from insecurities. Some of the incarnations:

- There aren't 10x programmers, it's just because sometimes 1x programmers are surrounded by 0.1x programmers.

- 10x programmers generates 100x maintenance when they leave.

- There are 10x programmers, but they're not you, only a handful of geniuses in the world.

- There are 10x programmers, but they're jerks and a company is better off without them.

etc. (Sometimes the criticisms are justified, but not always)

If you've never seen one, maybe it's because:

- You're working in a line of work that deals with solved problems, incremental solutions.

- You're working in a process-heavy team. Either 10x people flees from that or the process makes them invisible.

- Other perverse incentives.

> So chances are you've never seen one.

No I don’t know what people mean.

I’ve seen very productive developers, but it doesn’t fit the “10x” that I’ve seen described.

The specific number ten is tricky because in a healthy environment, the effect tends to dilute. The difference often appears when a team penetrates into the jungle of a new technology. Some people are much better trail blazers than others and in that situation 10x or even higher multipliers are not unusual.

But once the mechanics are known and the pitfalls are spotted, the difference should be much smaller, provided knowledge is properly transmitted through documentation, pairing or whatever.

Actually, a wise boss won't put the 10x programmer to work in parallel with the rest, but some weeks ahead, as a minesweeper.

Edit: another area in which some programmers are much better than others is bug hunting. But again, there's a moment when every evil schrödinger-ish bug is fixed.

If you haven’t seen a niffler you wouldn’t know what people mean either.
> I think 10x developers, like world-class athletes, musicians, and authors, absolutely do exist. You’re just not going to find them with a coding test.

I can confirm.

I have no idea, whether or not I'm a "10X" programmer, but I do tend to work quickly. So quickly, in fact, that I often piss off the people I'm working with, because the job is done, before they have had a chance to interfere with^h^h^h^h^h^h^h^h^h^h^h^h^h^h^h contribute to the project.

I consciously reduce my output to be at about the 70th percentile of whatever team I'm on, with short bursts of max productivity when I subjectively feel like it will help the team get out of a pinch. People like me a lot more this way.
Being seen to be labouring away also becomes important. Punching out 3x others, while working regular hours against visibly "harder working" people - leads to a reputation of being lazy.
Only accepting remote work positions has fixed this problem for me.
I concur. I've demonstrated that I'm a 10x+ full-stack programmer several times in my career, but I've met at least a few people who could bang out code better than me. I can design complicated systems with many moving parts to solve difficult business problems, and hand them off to someone else to manage with minimal maintenance. I've done it many times. However, I worked with one young guy who understood Ruby better at age 25 than I ever will. But then it came time to log into the server and do something, and he didn't even know how to open a terminal and SSH into the box! So, no, I don't believe a simple coding test will find people who are "10x" in software development. There's a lot more to it than just writing lines of code.
> he didn't even know how to open a terminal and SSH into the box!

You just described something which is trivial to learn in less than one minute. This lack of experience does not directly speak to their skills or abilities.

Extending your example to illustrate its irrelevance, were I to have spent 60 seconds with this engineer alone just before your little ssh test, he would still appear to be a 10x engineer to you.

Focus more on ability and less on what one has or hasn't seen just yet in their careers. I could easily find the limits to your knowledge in seconds and I'm quite sure you could return the favor. I'd gladly hire someone who demonstrates the ability to become a wizard in X and not care in the slightest if they've seen Y and Z yet. I can teach Y and Z to someone like that very easily.

Yes, but: a programmer who has made it to age 25 without learning how to ssh into a server where their code will end up running is to me demonstrating that they are remarkably incurious about the larger ecosystem within which they’re working. One sign of a better developer is that their horizons are broader.
Seeing that I write code everyday now that will end up running on Linux Firecracker MicroVMs that I will never have SSH access to…

The “ecosystem” of development is very large. I’m sure there are parts of the ecosystem that others would know that you wouldn’t.

Or they’ve only worked at BigCo with defined production pipelines and connecting to individual EC2 instances isn’t possible without jumping through incredible month-long hoops, and not available for production at all.

I am not able to ssh into any production instance I’ve deployed. I know how I would but it’s just not organizationally allowed.

When you see someone who doesn't know how to open a terminal, and log into a server at the command, you can assume they also don't know much about networking, DNS, firewalls, shell scripting commands, or how to configure the services upon which the application's stack runs, like web servers, application servers, caching services, or even databases. You're right; it's trivial to teach that one thing, but that particular one thing implies a learning gap about a lot of other things.
> When you see someone who doesn't know how to open a terminal, and log into a server at the command

Maybe this person doesn't quite get how to properly not use a comma between dependent clauses. How could one trust this person to communicate well?

> networking, DNS, firewalls, shell scripting commands, or how to configure the services upon which the application's stack runs, like web servers, application servers, caching services, or even databases...

I have known plenty of gainfully employed, 25-year-old software engineers who didn't have experience with each item on this list. That's perfectly fine; it's easy to teach in one brown-bag lunch session. I'll still take the wizard because those innate abilities can't be taught.

Just reading along, but man, your comment annoyed me at how unconstructive it was. Jeez.
> it's easy to teach in one brown-bag lunch session

You can teach "networking, DNS, firewalls, shell scripting commands, or how to configure the services upon which the application's stack runs" in a day? This is "Teach yourself C++ in 21 days"-type of stuff.

At any rate, I didn't read that it's not "fine" in TheRealDunkirk's comment. They were just saying that people can have wildly varying skill-sets.

because the job is done, before they have had a chance to interfere

I would say I've been a .1x (uninteresting drudgery, poorly defined goals, toxic workplace) to 5x developer.

The single biggest factor in the 5x instances was a lack of interference. In one particular case, I completely ignored my manager, much to his dismay, and built the system I wanted to. He stopped complaining when integration of new hardware went from weeks to less than an hour.

I don't understand why people demand experience and skills during interviews and then seem to do everything they can to ignore said experience and undermine their workers.

God damn dude. Maybe you piss them off because you call their contributions “interference”. Honestly this is one of the most dickish things I could imagine saying about a colleague’s work.
Wow. That was pretty nasty. I thought we didn't make comments like that, here. I can see that we probably won't be working together, so I don't see why you felt the need to make that comment. In fact, I'm a pretty easy person to get along with, but you'll never know, now, will you? You've already decided how our relationship will go.

I didn't call you any names. I've also worked in high-functioning teams since before a lot of folks on this site were born. In most cases, I was not the top dog, and there's a good chance that someone else was annoyed by my "contributions." There's also a tiny, tiny chance that I may have had some positive experiences, along the way.

And isn't there a saying, somewhere, about "walking a mile in someone's shoes," or something?

So you can't handle someone suggesting that what you said is (honestly and objectively) dickish and maybe the real source of your problem, but you can outright call others' hard work "interference" and it's all gravy and not at all unprofessional or rude?

You've got a skewed idea of "nasty". Have a good rest of your day.

But I didn't call someone else's "hard work" "interference." That was your interpretation. I have just had the very common experience of having my work destroyed by people that really had no qualifications, but did have the right, to mess it up.

I have been working on a project with a bunch of folks, for the last couple of years, that has had its ups and downs, but hasn't had any of that nastiness that was so depressing, in my work life. I now know that it can be better. It's no longer just "wishful thinking." I now have proof. I had to go through a pretty rough patch, to get here, and I don't recommend the process to anyone.

I was sharing that. For me, it's a good thing.

And your post definitely was "nasty," and I was supposed to understand it as a personal attack. It was delivered as such, and was received as such.

Have a great day.

There's confusion about different kinds of value.

There are people who can kick out an impressive volume of relatively routine work. And there are people who have exceptional structural insight and can use them to make projects simpler, cleaner, faster, and more reliable.

There are also really smart people who complicate projects unnecessarily. And people who are 10X politicians who appear to be doing a lot of work but are actually doing very little.

Any of these could be labelled a 10X developer. But only two are genuinely valuable.

(comment deleted)
Carmac or Torvalds are 10x.

But they won't work for your company.

So, stop talking about it in your interviews.

There seems to be a convergence of largely orthogonal skill sets here, which may create confusion about what the most useful components of a 10x are.

For example - I see optimization abstraction as a core skill, searching for the best performance given the least amount of resources (whether developmental or computational) and what seems to be a familiar pattern.

Tooling agility may be another, i.e., how quickly can one re-create a cookiecutter build environment with observability, tests and release signing given a blank slate.

Package creation might also be a thing, though it is an example of optimization abstraction.

Troubleshooting skill sets follow from experience and understanding, and, frankly, some creatures are better than others in this regard.

Lines of code (LoC) used to be a measure, two decades ago; these days, compactness, certitude and conciseness may be the golden ticket.

I wonder if the study this cites is powerful enough to find a 10x developer. Generally you find the biggest jumps in ability on the far right of the distribution graph, so I would expect a genuine 10x programmer to be much rarer than the 99th percentile, which seems about the limit the study is able to reasonably talk about with ~400 participants.

I'd be betting more like 99.9th or even 99.99th percentile would be more like it.

I'm only a slightly above average programmer, but I'm probably 5x when it comes to finding better, faster, more efficient ways of doing things.

I'm more of a gordian knot cutter than a programmer.

We need to talk about infinity X developers.

I don’t care if someone is 10x faster than average at building a CRUD app, but there are developers who come up with solutions that an average dev would never come up with, even given a lifetime. I’m talking about innovations like Lisp, Deep Learning, React framework, the first 3D engines, CRDTs, Git version control, Bitcoin, etc…

If we are starting to talk about infinity X developers then we need to talk about savants.
(comment deleted)
Not to mention the devs who can look at a problem and say, "Software isn't the right solution for this. Let me give so-and-so a call and we'll have this ironed out in 5 minutes."
This is a much more meaningful litmus test for extreme capability.

Building something like a 3D engine requires incredible mastery across multiple domains. The hardest part of these innovations isn't the software. It's developing an abstract mental model for the problem - repeatedly until it fits into an actual computer.

When I work on my most extreme projects, I find the hardest stuff happens while I'm sitting around the house or scribbling on the whiteboard. Anyone who uses lines or hours of code as some statistic for capability can be instantly flagged as charlatan in my book.

React is another good example. Absolutely nothing about it is a super deep pool of incredible innovation. The reason it's a thing is because someone had a very coherent vision in their mind for what the developer experience would be like. Then, they whacked at the workpiece until it approximated that idea.

10x is more about idea management than raw output.

i think the difference is that most of us actually have a shot at working with or hiring a 10x engineeer, so it's a useful thing to consider.

the infinitely-better engineer is probably not going to be working at your company building CRUD apps.

The whole concept of software engineers putting a “name” to the phenomenon of gifted individuals is cringe, in my opinion.

Mathematicians don’t go around talking about professors in quantum physics with PHDs like they 10x high school teachers, etc.

I don’t understand why this is a topic that keeps coming up.

We can keep discussing this forever and get nowhere if nobody defines what is meant with 10x. Ten times what compared to what under what circumstances?

Is the baseline the average developer worldwide or the average developer in any particular team?

Are we measuring jira tickets fixed or net profit produced for the business, or the impossible-to-measure “productivity”? Are we measuring a single task or consistent performance over years?

The anecdote in the OP is about a developer solving a task in a tenth of the estimated time. Great, but this seem more like an issue with the estimation process which presumably didn’t involve the devloper. Would an unrealistically low estimate mean they were a 0.1x developer?

For simple work, sometimes you can only optimize a little, let alone - 10x.

For advanced stuff, the difference is not 10x. It is infinite. Some people would do it well, some poorly, and order(s) of magnitude longer, most - not at all, even if they put decades into that.

Think: how long would a regular software developer take to do John Carmack's work on Wolfenstein and Doom?

0.2x developers and 2x developers