This is why the 10x is a unicorn. HN likes to shift the definition every time it's found to have some quality we don't like. In the real world there is a broad spectrum of devs and their capabilities. Each one has strengths, weaknesses, areas of expertise, and character flaws. You'll basically never find one that just blindly produces 10x the code of the rest of your team without some downside.
They are Unicorns but you know them when you see them. Cranking out code at high velocity that looks and feels right. When they don't know how to do something they actually research and look at the field. If no prior art exists at all (they frequently find themselves in this situation) they're already on their third iteration before anyone else has a prototype - even they can't get it perfect the very first time.
E.g. If they previously wrote compilers and you tasked them with graphics you'd see a book explaining affine transforms on their desk. Or parsing theory for the reverse transition.
A key part however is the ability to switch between fields. I've seen people I thought were 10x completely fail when tasked with something new.
I reckon that if there's such a thing as a 10x dev, they'd act as a force multiplier rather than a faster assembly line worker. Fixing architectural problems early raises the productivity of everyone who ever has to touch the code, as does setting up practises like code review and automated testing, and as does culling bad features early on.
Imo, the whole concept is idiotic and serves nothing.
Of course it is possible for one developer to be better then other, but it is not necessary fixed. It changes during lifetime of same person, depends on technology, experience, type of project and other factors.
Meanwhile the typical use is to look at some stereotype you have in head that has nothing to do with the project or position at question and then wonder why it did not worked out.
I've met someone who I'd call 10×. I've worked with him. He once wrote a usable spreadsheet, with a fine set of formulae and an entirely plausible UI, in an evening and a night.
His code had major issues, but that's not to say that he couldn't write software. He could, in a manner completely different from me. Amazingly well, yet frustrating.
Above a certain level, one developer isn't universally better than another. It's not linear any more.
This is so interesting. I have met many people that others considered "geniuses" because they solved hard problems and got things done fast. And then 3 years later, people still complain about having to deal with "[Name of Developer] Code". I guess if you move fast and write code that others can't read, it's easy to get labeled a genius.
Yeah, I kind of moved of definition of good code from cool-smart-novel approach to something as simple as possible, that almost anybody can pick up, maintain and improve. This has various aspects - cleanness of the code, comments of algorithms/edge cases, overall structure, modularity etc.
Syntactic sugar can't impress me anymore, unless it comes with significant performance gains or compress the code significantly without sacrificing readability to average Joe coder (this is important part). Actually I prefer 1 page of simple clean code to 1/2-liners that do it all, until they don't. I guess I am getting old.
The best way to get a 10x developer is to have a productive senior closely mentor 10 juniors - pair programming, code reviews, testing strategies, deep dives into architecture, bi-directional knowledge sharing.
It's a case where the whetstone sharpening the knives also gets sharper by virtue of what they learn from the juniors they mentor.