News for hackers. Stuff that matters.
Re:I was a 10x engineer and I’m sorry by akavi on Thursday July 18, 2019 @11:03AM (#20470537)
I'm not sure I understand why people are so eager to conflate the term "10x engineer" with "an arrogant engineer who is only seemingly productive because of either obfuscation or generation of technical debt".

It seems blindingly obvious that there are people out there who are just... dramatically more effective programmers, in a holistic net-value-to-organization/world sense. Fabrice Bellard and John Carmack, to name two that jump to mind.

And while I've definitely never worked with programmers of their caliber, I have worked with people who truly were an order of magnitude more productive than me, either in sheer quantity of quality output or by dint of their efficacy at creating tooling/abstractions/apis that made other programmers more effective.

Re:I was a 10x engineer and I’m sorry by freehunter on Thursday July 18, 2019 @11:23AM (#20470770)
There is also a very thin difference between “technical debt” and “genius programmer”. If I invented half the programming concepts Carmack did and wrote it at the company I work for, it would be considered technical debt immediately. No one else would be able to understand it and no one would be able to fix it when it broke. But for various reasons (mostly since Carmack is actually a programming genius), people stopped what they were doing to learn from him and adopt some of his techniques. Fast inverse square root is genius but it would just be way-too-clever technical debt if Carmack hadn’t written it and others didn’t learn from him.

No one would take the time to learn from my way-too-clever code. They’d throw it away for more obvious code in a heartbeat. Because I’m not famous, I don’t work with other geniuses, and of course I’m not a genius so my way-too-clever code would just be annoying and uncharacteristic.

Re:I was a 10x engineer and I’m sorry by jerf on Thursday July 18, 2019 @12:20PM (#20471367)
"Fast inverse square root is genius but it would just be way-too-clever technical debt if Carmack hadn’t written it and others didn’t learn from him."

I think the difference here is that Carmack was working in a space where fast inverse square root was the difference between the program working and it not working. At that point, it doesn't really how matter "clever" in any bad sense of the term the code is.

Carmack works in 3D engines, which even today is a space where people are trying to wring every last cycle out of them. It's perfectly appropriate when programming in a space where every last cycle counts to program as if you're in a space where every last cycle counts.

I don't work in such a space, so I don't program that way. But while I haven't got anything as "clever" as FISR, I have got some things like non-obvious database schemas for certain performance reasons that if my successors don't find and read the comments I've left about why the schemas are that way, they could well get themselves into some trouble if they try to "fix" it.

Re:I was a 10x engineer and I’m sorry by Const-me on Thursday July 18, 2019 @04:19PM (#20473564)
> was working in a space where fast inverse square root was the difference between the program working and it not working

Pentium 3 released in January 1999. That CPU, along with all newer ones, support SSE which has RSQRTPS instruction, faster, also much more precise approximation.

AMD had it before, PFRSQIT1 / PFRCPIT2 in 3DNow from 1998.

Quake 3 Arena released in December 1999. The point of using that approximation is running on older hardware, like Pentium and Pentium 2.

Re:I was a 10x engineer and I’m sorry by seba_dos1 on Friday July 19, 2019 @06:49PM (#20483093)
So, basically a difference between the program working and not working for most users.
Re:I was a 10x engineer and I’m sorry by zild3d on Thursday July 18, 2019 @03:08PM (#20472990)
agreed, you still see clever c hacks today in the embedded world, because resources are still constrained for many devices
Re:I was a 10x engineer and I’m sorry by gioele on Thursday July 18, 2019 @12:59PM (#20471754)
> Fast inverse square root is genius but it would just be way-too-clever technical debt if Carmack hadn’t written it and others didn’t learn from him.

FISR is a beautiful hack, but it hardly technical debt. This is the original code. Note how the trick has been hidden behind a normal API such as `Q_rsqrt`:

   float Q_rsqrt( float number ) {
        long i;
        float x2, y;
        const float threehalfs = 1.5F;

        x2 = number * 0.5F;
        y  = number;
        i  = * ( long * ) &y;                       // evil floating point bit level hacking
        i  = 0x5f3759df - ( i >> 1 );               // what the fuck? 
        y  = * ( float * ) &i;
        y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration


        return y;
  }
This is how you walk the fine line between technical debt and useful hack.
Re:I was a 10x engineer and I’m sorry by dragontamer on Thursday July 18, 2019 @01:29PM (#20472070)
Not really.

If the comment "what the fuck" were instead "estimate floating-point exponent with bit-wise arithmetic" and "SingleStep forward with Newton's Method", then the code would be better documented

The comment "what the fuck" and "evil floating point bit level hacking" don't help anybody. And "1st iteration" is only helpful if you knew it was an iteration of Newton's method.

Re:I was a 10x engineer and I’m sorry by remram on Thursday July 18, 2019 @06:56PM (#20474757)
Agreed, this is really far from technical debt. It's self-contained, the purpose of the function is clear. Add a comment or two, a unit test, and this is perfect.

What I would call technical debt is if he had inlined those tricks all over his code, making it very hard to debug a wrong result or move away from this technique.

Re:I was a 10x engineer and I’m sorry by lorenzhs on Thursday July 18, 2019 @11:28AM (#20470829)
"Fast inverse square root is genius but it would just be way-too-clever technical debt if Carmack hadn’t written it and others didn’t learn from him."

Carmack didn't come up with that: https://en.wikipedia.org/wiki/Fast_inverse_square_root#Histo...

Re:I was a 10x engineer and I’m sorry by klipt on Thursday July 18, 2019 @12:17PM (#20471341)
Maybe the real secret to being a 10x programmer is being so charismatic that people attribute the work of 10 other programmers to you!
Re:I was a 10x engineer and I’m sorry by tomlagier on Thursday July 18, 2019 @02:05PM (#20472415)
I think there's a real truth there - the most lauded 10x programmers are typically the "face" of a group of talented and productive people. As their legend grows, more and more work of the group gets attributed to them.

I think Elon Musk is another good example of this phenomenon.

Certainly, there are programmers vastly more productive than the average, but I think when you think of any legendary programmer (Linus, Carmack, Knuth), you're also likely impressed by their significant supporting cast.

Re:I was a 10x engineer and I’m sorry by beat on Thursday July 18, 2019 @02:36PM (#20472733)
I'd exempt Knuth from that, as he's practically a monk in his loner ways, but I also think of him as "genius", rather than "10x".
Re:I was a 10x engineer and I’m sorry by dragontamer on Thursday July 18, 2019 @05:19PM (#20474017)
Knuth is famously a slow worker, but he "gets to the bottom" of any problem. He's basically a turtle (from the Tortoise vs Hare story). A giant "juggernaut" turtle. You can't stop his analysis, but it takes a long time to get anywhere.

Its been over 40 years and he's still writing "Art of Computer Programming" books, and fixing errors in the text. Its an exceptionally well-crafted piece of writing. His solutions to various programming problems are excellent too, great analysis and deep thought applied to them.

Definitely not the "10x programmer" of today's lore. Knuth is an older, gentler kind of genius that I have a huge amount of respect for.

---------

For those who haven't read Knuth's works yet, I suggest starting with Knuth's analysis into Alpha Beta pruning: https://pdfs.semanticscholar.org/dce2/6118156e5bc287bca2465a...

Knuth's writing style is just so much deeper and thorough than pretty much everything else. You have to give the guy mad respect.

Of course, I also recommend reading "The Art of Computer Programming", but that's far more material to read through. The ~34 pages on Alpha-Beta pruning are a quicker introduction to Knuth's writing style. Even if you think you know how Alpha-Beta pruning works, Knuth goes far deeper into the subject than you might imagine.

EDIT: In particular, the F -> F1 -> F2 algorithm (F being Minimax, F2 being Alpha-Beta, and F1 being an in-between algorithm to help describe F2) is brilliant writing. Only Knuth would spend so much effort describing F1. But all that effort into F1 helps both his analysis, as well as better describes what is going on in Alpha-Beta pruning (aka F2).

Re:I was a 10x engineer and I’m sorry by whatshisface on Thursday July 18, 2019 @11:29AM (#20470844)
Fast inverse square root delivered business value that couldn't be obtained any other way, which means that it wasn't technical debt. It was a technical price. What's bad is when programmers make the system complicated purely to entertain themselves.
Re:I was a 10x engineer and I’m sorry by Bartweiss on Thursday July 18, 2019 @12:40PM (#20471552)
I'll bet that sort of 10x programming has gotten rarer simply because hardware constraints have relaxed so much. Tricks that once would have made a program possible now just make it a headache to read.

An awful lot of game-development history was spent actively looking for 'clever' hacks that would verge on fireable offenses today. Pokemon Red was made barely-possible via the sorts of magic-number tricks most of us don't even like to think about, but at this point that sort hand-optimization is basically just code golf for its own sake.

Re:I was a 10x engineer and I’m sorry by nostrademons on Thursday July 18, 2019 @01:03PM (#20471791)
It moves generationally, as new platforms are invented and people seek to capitalize on the platform before the performance is really all there. When you're doing anything at the bleeding edge, you really need to know the details of the platform and squeeze every ounce of performance out of it, because there's probably not enough performance to go around. When the edge moves to the center, stops bleeding, and the platform gets optimized, those sorts of hacks become silly anachronisms.

I remember doing Javascript games in 2007 (before V8 introduced a JIT to JS) and very carefully optimizing loops, avoiding DOM calls, eschewing JQuery, etc. to get acceptable performance. As late as 2009 we were counting bytes on the Google search results page (like literally; we'd do things like "for(var i=0,e; e=c[i++];)" to save a byte in a foreach loop). Solidity programmers on the Ethereum VM today use tricks like switching out opcodes and moving functionality into library contracts, sometimes at the expense of locking tens of millions of dollars worth of ETH forever.

Nobody counts bytes or manually moves common subexpressions out of loops in JS today; you just use Babel. But as computing matures, the bottleneck moves, and people seek out new domains that are just becoming possible, and then have to develop a new bag of tricks.

Re:I was a 10x engineer and I’m sorry by nazka on Thursday July 18, 2019 @11:32AM (#20470867)
Agree, I will also add that technical debt != complexity.

As an example everybody uses an OS to code. An OS is incredibly complex. Maybe one of the most complex piece of software. But it doesn't mean that you should care about it. With the proper and clean interface it will have an abstraction of this complexity to its user (in your company or not) and they will be able to continue to code and never have to care about it.

So of course an OS - or like OP said anything creating value - doesn't mean that it creates technical debt only because it's complex.

Re:I was a 10x engineer and I’m sorry by magduf on Thursday July 18, 2019 @12:23PM (#20471400)
Exactly: you may not be able to fully understand the OS you're working with, but you can abstract it away and use it anyway. This isn't "technical debt", it's something you need to actually get your job done: without the OS, you simply would not be able to actually create the thing you're making.

Similarly, whatever you're building likely uses a microprocessor somewhere. You probably don't really understand how that works, and would not be able to build one from scratch. But without that CPU, you wouldn't be doing your job at all.

The phrase "standing on the shoulders of giants" comes to mind here.

Re:I was a 10x engineer and I’m sorry by dsego on Thursday July 18, 2019 @12:58PM (#20471737)
"The Thirty Million Line Problem" by Casey Muratori might change your mind.
Re:I was a 10x engineer and I’m sorry by raiflip on Thursday July 18, 2019 @11:43AM (#20471002)
Thank you! Most people I've worked with end up so afraid of complexity that they create tech debt through crazy simplifications that require constant work arounds.
Re:I was a 10x engineer and I’m sorry by dnautics on Thursday July 18, 2019 @11:41AM (#20470965)
It's not even that complex. Arguably it is simpler than the way that you would otherwise do inverse square root, you could write a 5-line comment that anyone who's understood high school calculus could decipher, it's drop-in/drop-out, and doesn't need to be maintained.
Re:I was a 10x engineer and I’m sorry by icxa on Thursday July 18, 2019 @11:40AM (#20470952)
Highlight this and pin it to the top of this comment thread.
Re:I was a 10x engineer and I’m sorry by petermcneeley on Thursday July 18, 2019 @11:28AM (#20470834)
"The algorithm was originally attributed to John Carmack, but an investigation showed that the code had deeper roots in both the hardware and software side of computer graphics.". I would suggest this mis attribution help us further understand the 10x programmer conundrum.
Re:I was a 10x engineer and I’m sorry by nostrademons on Thursday July 18, 2019 @11:33AM (#20470870)
The difference is largely money. Doom was revolutionary when it came out; id software made a whole lot of money from it. The rest of the industry took note, and, wanting to make a lot of money too, decided to emulate what they saw.

If you want people to accept and learn from your clever programming techniques, try to find ways to turn them into products that only you can make that lots of people will pay money for. Even if you don't succeed in convincing the rest of the industry, at least you'll have lots of money.

Re:I was a 10x engineer and I’m sorry by pmoriarty on Thursday July 18, 2019 @11:43AM (#20470992)
It's not about the money.

Doom would have been revolutionary even if it and all of the other games it inspired were free.

Re:I was a 10x engineer and I’m sorry by gaogao on Thursday July 18, 2019 @12:07PM (#20471221)
The first part of Doom was shareware and free btw
Re:I was a 10x engineer and I’m sorry by cushychicken on Thursday July 18, 2019 @11:34AM (#20470890)
There was a point in Carmack's career where he was not famous, and he (and his work output) wasn't given the benefit of the doubt of being a genius.
Re:I was a 10x engineer and I’m sorry by bdamm on Thursday July 18, 2019 @11:47AM (#20471043)
There was no point in Carmack's career where he wasn't the focus of the company.
Re:I was a 10x engineer and I’m sorry by cushychicken on Thursday July 18, 2019 @12:14PM (#20471304)
Similarly, there was no point in Carmack's career where his work and his views were accepted totally uncritically.
Re:I was a 10x engineer and I’m sorry by selimthegrim on Thursday July 18, 2019 @03:04PM (#20472953)
When he wrote Keen for those guys in Shreveport I doubt he was the straw that stirred the drink
Re:I was a 10x engineer and I’m sorry by untog on Thursday July 18, 2019 @11:34AM (#20470886)
I think that has a lot more to do with Carmack being at a small company where there was no-one to say no to him. If you were the CTO of a three-person startup you most definitely could do whatever weird, esoteric programming you liked.
Re:I was a 10x engineer and I’m sorry by wtetzner on Thursday July 18, 2019 @11:34AM (#20470891)
Coming up with good abstractions can be very difficult, but those abstractions aren't necessarily difficult to understand.

Similar to idea that it's hard to write simple, clear code, but easy to understand it.

Re:I was a 10x engineer and I’m sorry by GGfpc on Thursday July 18, 2019 @11:29AM (#20470838)
But it was that genius coding ability that made him famous in the first place. You could do it if you worked at a company that needed those types of "hacks" like he did.
Re:I was a 10x engineer and I’m sorry by rasz on Thursday July 18, 2019 @08:48PM (#20475361)
>Fast inverse square root is genius but it would just be way-too-clever technical debt if Carmack hadn’t written it and others didn’t learn from him.

Carmack didnt write it, 0x5f3759df constant landed at iD from 3Dfx/Silicon Graphics

https://medium.com/hard-mode/the-legendary-fast-inverse-squa...

Re:I was a 10x engineer and I’m sorry by frequentnapper on Friday July 19, 2019 @07:39AM (#20477748)
"The algorithm was originally attributed to John Carmack, but an investigation showed that the code had deeper roots in both the hardware and software side of computer graphics."
Re:I was a 10x engineer and I’m sorry by Bartweiss on Thursday July 18, 2019 @11:58AM (#20471144)
I think the problem is largely that "10x programmer" is ambiguous between "10x more valuable" and "consistently produces code 10x faster". I think people accept the idea because of the first meaning, but efforts to hire 10x engineers frequently look for the second.

There are certainly lots of programmers who produce 10x more value than others, and some who produce 10x more than average. They create good project plans that don't need reworking midstream, build tooling pipelines that save work for their whole team, catch obscure-but-expensive bugs in advance, and make sound design/infrastructure choices which save huge amounts of renovation down the line. And yeah, for sufficiently-hard problems they sometimes come up with clever technical solutions other people wouldn't.

I suspect there are engineers who can frequently output quality code 10x faster than most of us would, but that's reserved for incredibly specific tasks. Most code-writing genuinely can't (or shouldn't) be accelerated like that, so it's limited to arcane problems like rendering or codec work where brilliant optimization can trump general diligence. John Carmack might be an example, or Dennis Richie, or Gary Tarolli (who apparently first authored Fast InvSqrt). The Microsoft gurus who hand-edited the EQNEDT32 binary for a bug-fix, too. But there are maybe a few thousand programmers in the world doing that sort of work, in a very specific set of fields.

Meanwhile there are a lot of companies trying to hire "10x engineers", often for "make our website and backend" tasks that can't possibly be solved with a brilliant coding trick. And a lot of those companies aren't looking for someone who will do the architecture and task-analysis and tool-building that makes 10x-value engineering possible, they're looking for someone who will solve simple problems inhumanly fast. In practice, that mostly means cutting corners, hard-coding values, and skipping on documentation.

Re:I was a 10x engineer and I’m sorry by onefuncman on Thursday July 18, 2019 @12:22PM (#20471387)
We used to all hand-edit binaries in the 90s when we were cracking copy protection by passing around text files indicating which hex codes to swap between JE/JZ and JNE/JNZ...
Re:I was a 10x engineer and I’m sorry by Bartweiss on Thursday July 18, 2019 @12:32PM (#20471479)
So the specific story I was referring to was an obscure security fix to their equation editor in binary, rather than source. The impressive bit wasn't just editing a binary but patching a bunch of security holes without altering any other instructions: https://blog.0patch.com/2017/11/did-microsoft-just-manually-...

That said, I'll bet this kind of 10x programming is genuinely rarer these days. Not because programmers have gotten worse, but because new tools and relaxing hardware constraints make this sort of near-metal optimization less necessary and less valuable. The sort of data-reuse hacks that made e.g. Pokemon Red/Blue possible would just be a pointless headache today, so those same skills are getting spent on code golf instead.

Re:I was a 10x engineer and I’m sorry by ghaff on Thursday July 18, 2019 @11:40AM (#20470948)
The context is this thread https://twitter.com/skirani/status/1149302828420067328?s=21

in which a VC once again proves that what passes for "wisdom" in Silicon Valley is often indistinguishable from what others would assume was satire.

Re:I was a 10x engineer and I’m sorry by mikeash on Thursday July 18, 2019 @01:44PM (#20472208)
This seems to be really common thinking, too.

It seems to go like this. A lot of programmers are weird. They don’t get along well with people. They keep weird hours. They dislike social norms. This part is true, although far from universal. The problem is the next step: since programmerness is associated with all this weird behavior, the most extreme and therefore best programmers will be the ones who behave the weirdest.

This is reinforced by a simple selective process: mediocre programmers who behave badly tend to get fired, while genius ones are often kept around because their abilities outweigh their flaws (or at least management thins they do). Thus, when you see a really weird programmer on the job, chances are that they’re also really good.

It’s all bullshit as far as I can tell. Plenty of great programmers have fine social skills, work 9-5, enjoy teaching new people, etc. Plenty of crappy programmers are also weirdos. But the perception is definitely there.

This discussion of 10x programmers and sometimes denial that they exist is really people pushing back against the notion that weird or bad behavior is a signal of greatness, or that productivity means you can treat people like shit.

Re:I was a 10x engineer and I’m sorry by ghaff on Thursday July 18, 2019 @02:17PM (#20472527)
>is really people pushing back against the notion that weird or bad behavior is a signal of greatness, or that productivity means you can treat people like shit.

Exactly. No one sensible disputes that, given the right circumstances, some engineers (or business leaders, etc.) can bring more value to an organization or culture broadly than ten or more people who are just OK.

But pretty much everyone I know who I consider exceptionally valuable is also good at working with others and enabling teams to be successful.

Re:I was a 10x engineer and I’m sorry by grepgeek on Thursday July 18, 2019 @01:00PM (#20471759)
I am honestly unable to decide whether the original tweets by @skirani were said in seriousness or as sarcasm!
Re:I was a 10x engineer and I’m sorry by ghaff on Thursday July 18, 2019 @02:02PM (#20472382)
I was unsure as well. Given this later tweet, all indications are that he was serious:

https://twitter.com/skirani/status/1150019060467240960?s=20

"I am surprised by extreme views on 10x engineers. They are great individual contributors. They may not be good with teamwork. So what? They can be phenomenal in the early stage of the product cycle.

Find the best in each & get the best out of them. That's what good managers do."

Re:I was a 10x engineer and I’m sorry by cgiles on Thursday July 18, 2019 @03:14PM (#20473034)
What is wrong with what he said? I admit some parts were kind of silly, like the "worn out keys", but the overall theme was that he was basically just describing a somewhat romanticized version of a "Commando" from Atwood's "Commandos, Infantry, and Police". This is reinforced by his reply saying "They can be phenomenal in the early stage of the product cycle."

The overall picture is of someone who is technically competent but "moves fast and breaks things". The person who coined that phrase perfectly embodies the upsides and downsides of this type of person: Zuckerberg quickly threw together a PHP app, is a gigantic jerk, and he is a billionaire because his product was phenomenally successful. Then other, kinder, gentler and more team-oriented people came later to make the product performant and legible. If the team-oriented people had been involved from the beginning you would have gotten Google Plus.

It stands to reason that such a person would be more likely, on balance, to be abrasive and dislike meetings. I guess the only problem I see with his formulation is that a "10x" engineer is implied to be better than other engineers. Atwood's "you need all kinds" formulation is better.

Re:I was a 10x engineer and I’m sorry by mikeash on Thursday July 18, 2019 @06:22PM (#20474510)
I completely disagree with this notion that there is this tension between being good at getting a project off the ground and being kind, gentle, and good at teamwork.

That’s what all this pushback over “10x engineers” is about. It’s not pushback against the notion that some people are really good at what they do. It’s against the notion that those people are necessarily asshole loners.

It’s a common broken syllogism that goes like, Zuck built Facebook into an empire with his bare hands, Zuck is an asshole, therefore Zuck was successful because he’s an asshole, therefore if we want to succeed we need to hire an asshole.

Alternately: our guy is an asshole but that’s ok because that’s what you get with a 10x engineer. We need that 10x so we need an asshole and therefore if you want them to stop being an asshole then you want this company to fail.

Alternately: there’s no excuse for being a jerk and people are tired of it being justified on the basis that it’s a necessary component of being great.

In my experience there is little correlation between programmer productivity as an individual and things like kindness and ability to work in a team. Plenty of geniuses are friendly people who work great with others. If you hire one of those for your early stage startup, you’ll not only do fine, but you’ll be in a much better position once you reach a point where you need a team.

Re:I was a 10x engineer and I’m sorry by cgiles on Thursday July 18, 2019 @08:18PM (#20475214)
If the premise is that being a nice, team-oriented person and being a good programmer are not mutually exclusive, then of course I agree. And "Zuck was successful because he's an asshole" is something that seems like an obvious fallacy but the more I thought about it, the more I realized it isn't really. "Zuck was successful solely because he's an asshole" would be.

A distinction should be drawn between a "good programmer" and "person good at startups and greenfield projects". I would maintain that the latter requires a certain amount of assholery.

Really good products are not made by committee, at least not in the beginning stages. Committees and large groups of people also tend to slow things down, a lot. You have to be willing to be opinionated and self-assured to maintain a cohesive vision of where you want to go, and that necessarily means pissing people off. Steve Jobs, Linus Torvalds, and possibly Elon Musk are other examples.

So while 10xers in terms of pure programming skill will not be enriched in assholes, the famous ones will generally be, because they got in on the ground floor. The ground floor is where it helps to be an asshole. Most of us here are not dealing with such situations though, so I would agree to the extent that for 99% of employers in 99% of situations, considering assholery to be a positive trait is very unwise.

Re:I was a 10x engineer and I’m sorry by mikeash on Friday July 19, 2019 @10:40AM (#20479021)
You can be confident and self assured without being an asshole.

You mention Steve Jobs. What about Woz? Without Woz, Apple never would have gotten off the ground. I suspect most of us would agree that Woz is not only a 10x engineer, but probably a 100x. At least, he was in the early days of Apple, before the plane crash. And he’s a super nice fellow.

One thing being an asshole helps with is becoming famous. Everybody knows who Steve Jobs was. Approximately nobody outside the tech community knows about Woz. So naturally, if you go looking for examples, you’ll find lots of assholes. That doesn’t mean assholery correlates with (let alone causes) success.

Re:I was a 10x engineer and I’m sorry by skue on Thursday July 18, 2019 @12:57PM (#20471726)
You don’t even need to go to the level of a Bellard or Carmack to recognize the existence of 10x engineers. This pushback seems to derive from the egocentric assumption that 10x means “Ten times better than me.”

If we flip this around, does anyone doubt the existence of 1/10x engineers? I’m not referring to low end outliers who clearly can’t code. But I f you think through all the engineers you have known who have actually been employed and worked in the field, is there a 10x spread between the best and the mediocre-at-best?

Lots of folks are familiar with the Dunning-Krueger effect for what it says about the perspective of those with less experience/skill. However, it also postulates that people with more experience/skill also see the world incorrectly — from the other direction. They are prone to assume that most people are at least as skilled as they are.

This pushback against the notion of a 10x engineer seems like the perfect union of Impostor Syndrome meets Dunning-Krueger. We worry that we’re near the bottom of the curve due to our own insecurities while being partly blinded to the deltas in skill both above us and below us.

Edit: Clarified that I was interpreting 10x as highest to low-average, not highest to lowest outlier.

Re:I was a 10x engineer and I’m sorry by mattkrause on Thursday July 18, 2019 @01:26PM (#20472032)
On the other hand, Olympians are not even close to "10x runners".

Ten percent of Usain Bolt's top speed (27 mph) is a leisurely walking pace that almost any healthy adult can maintain for 100 meters. Ten percent of a world record marathon is a bit harder, but high school students still routinely under 10 minutes for 2 miles.

Re:I was a 10x engineer and I’m sorry by boyobo on Thursday July 18, 2019 @02:23PM (#20472589)
The problem is that we haven’t defined what we’re measuring.

E.g. Usain bolt makes far more than 10x money from running than the average healthy adult.

Re:I was a 10x engineer and I’m sorry by jdougan on Thursday July 18, 2019 @05:11PM (#20473961)
I would argue there are a (thankfully small) number of engineers that could be characterized as -2x. At least the 1/10x ones are making forward progress.
Re:I was a 10x engineer and I’m sorry by johngalt on Thursday July 18, 2019 @01:43PM (#20472202)
> why people are so eager to conflate...

Because identifying, hiring, and keeping 10x programmers is difficult and expensive. Companies fail at it and assume the problem is the concept of a 10x programmer, rather than own inability to handle this difficult objective.

There a lot of hiring managers, who think the process has one step: post a job 'looking for 10x engineer' and then judge the results. Rather than consider that their approach might be flawed, they attack the concept of a 10x engineer.

There absolutely are 10x people out there in many fields, and many of them are humble about their methods/approach. Software engineering might even have 100x people.

Re:I was a 10x engineer and I’m sorry by EGreg on Thursday July 18, 2019 @01:58PM (#20472340)
As someone who has reasonable experience founding a company, hiring, training, motivating and managing developers and teams, I feel I can tell you what I really believe:

Forget 10x developers. Forget berating developers for checking in code that doesn’t compile.

If you are planning to build a real growing company, You need to progressively put more stress on your SYSTEM. That is your job.

Have a kickass onboarding set of tutorials and documentation for everyone. Have a culture that anyone can assign an issue to anyone, instead of interrupting them. They can get feedback via updates on issues.

Use pre-commit and post-commit hooks to catch as many mistakes as possible, and clean up team formatting standards for your code.

Hire developers who are super familiar with whatever technology (language, platform, techniques) that you need them to work on. But NO ONE SHOULD BE A HERO, everyone’s code should be easily understandable, use only the simplest language features to get the job done (but no simpler), and be documented. Accrue no code code debt.

Each developer’s work should be documented and tested, preferably by someone other than themselves.

Each developer should be replaceable. That extra 30% cost spent on fully documenting and testing their code means months saved onboarding someone to take over.

Working remotely is actually GOOD. Working asynchronously 90% of the time is even BETTER. Everything in your system should assume people don’t share time or space.

People live lives. Companies build products. That is our motto. It means exactly this... ask yourself whether you are building a product, and if so, do not give responsibility to PEOPLE, but to the system. If they take a day off to spend with their kids, or work 3 hours a day, it shouldn’t have a major effect on the product.

And our compensation model reflects this, too. Instead of full-time employees, feel free to take anything from this:

https://qbix.com/blog/2016/11/17/properly-valuing-contributi...

Re:I was a 10x engineer and I’m sorry by cgiles on Thursday July 18, 2019 @02:33PM (#20472694)
> Each developer should be replaceable.

This attitude makes perfect sense from a managerial perspective. If workers are easily replaceable, they don't have negotiating leverage and you can pay them less, and you don't have to worry about risk to your company if one of them gets hit by a bus.

Conversely, it is in an employee's interest to be hard to replace if they can be. It gives job security and negotiating leverage. A "good" 10x engineer, the ideal stereotype, would be hard to replace because by definition, you'd have to hire 10 people to replace them, and even then, the 10 might not be able to accomplish certain hard tasks.

The bad stereotype of a 10x engineer is that they wrote a business-critical monstrosity only they can understand.

What they both have in common is that they are hard to replace. That is why, I think, that when big companies hire well-known 10x engineers, they put them on non-business-critical research type roles. And smaller companies would presumably be wise to avoid them altogether.

Re:I was a 10x engineer and I’m sorry by johngalt on Thursday July 18, 2019 @02:32PM (#20472685)
Agree. Entirely too much misplaced focus on finding better/more technical talent when commonly the bottleneck for a companies growth is not limited by engineering brilliance. It's much more common for the limiting factors to be logistical than technical. Or the 'system' as you describe it.

However the compensation model you describe seems a little wild. I'm not sure it's that easy to tie projects to specific performance numbers.

Re:I was a 10x engineer and I’m sorry by rthomas6 on Thursday July 18, 2019 @03:05PM (#20472963)
> Fabrice Bellard

I googled him just now knowing nothing about him. Holy cow. How can this person even be real? Are we sure he's not a superintelligent alien?

>In 2005, he designed a system that could act as an Analog or DVB-T Digital TV transmitter by directly generating a VHF signal from a standard PC and VGA card.

WTF! How??

> On 31 December 2009 he claimed the world record for calculations of pi, having calculated it to nearly 2.7 trillion places in 90 days. Slashdot wrote: "While the improvement may seem small, it is an outstanding achievement because only a single desktop PC, costing less than US$3,000, was used—instead of a multi-million dollar supercomputer as in the previous records."

This guy is more like 1000x than 10x.

Re:I was a 10x engineer and I’m sorry by scruple on Thursday July 18, 2019 @03:32PM (#20473175)
I was working in embedded, on an LTE base station and remote radio head, mind you, on a set of teams that comprised about 30-40 engineers in total, when Fabrice released details about his software LTE/NR base station [0]. It was absolutely mind blowing to me. It is still absolutely mind blowing to me. The level of specialized knowledge that we had in-house to accomplish this work... We're talking about dozens of people who held advanced degrees, had decades of experience in the industry individually, let alone what we had combined, all of our knowledge of the standards, the various pieces of project/product management behind the work, all of these very talented software and hardware engineers... It's just truly something else to behold when you realize this one person exists who can do the highly specialized work of so many.

IMHO, he stands alone where he exists in terms of his productivity and his immense knowledge. I hold a small smattering of engineers in high regard but he is leaps and bounds ahead of that pack.

[0]: https://bellard.org/lte/

Re:I was a 10x engineer and I’m sorry by pgcj_poster on Thursday July 18, 2019 @01:47PM (#20472234)
> I'm not sure I understand why people are so eager to conflate the term "10x engineer" with "an arrogant engineer who is only seemingly productive because of either obfuscation or generation of technical debt".

I think it's pretty clearly because those are almost always the people who will call themselves "10x engineers," and obsess about the idea of being better than everyone else. Good programmers don't do that for the same reason that "any man who must say 'I am king' is no true king."

Re:I was a 10x engineer and I’m sorry by rickthomas1980 on Thursday July 18, 2019 @01:54PM (#20472310)
But why let the definition of the term "10x" be hijacked by the kind of people you describe? We still need a way to succinctly describe engineers who are an order of magnitude more effective than average. Can't we let "10x" continue to mean what it's always meant, and agree on a new term for toxic team members?
Re:I was a 10x engineer and I’m sorry by pgcj_poster on Thursday July 18, 2019 @02:39PM (#20472760)
I'm not sure that we do need such a term. Ability is a continuous function, and there's nothing magic that happens once you reach 10 times the average[1] that justifies such fixation. I never hear anyone talk about recruiting 5x engineers, even though it would be more viable as a business strategy. Besides, we can't even measure engineering ability to the precision at which specifying "10x" even makes much sense. When would "10x" actually be a more useful descriptor than "very good"? Also, where are all the "10x artists" or "10x mechanics"?

[1] Although I read here just a few days ago that a 10x engineer is only ten times as good as a bad engineer, not 10 times the average. So maybe it hasn't always meant the same thing?

Re:I was a 10x engineer and I’m sorry by langitbiru on Thursday July 18, 2019 @11:48AM (#20471052)
Yup, some even created a website dedicated for denying 10x engineers: http://10x.engineer/

But there are people like Linus Torvalds, Satoshi Nakamoto (if they were one person), and those two programmers you mentioned. I doubt I could beat any one of them even if I replicated myself 20x.

I think, part of it caused by the wrong stereotypes of 10x engineers (for example, perpetuated by a VC in a recent Twitter storm) and it became a myth that people accepted. Another part is some people are new to programming and have not "encountered" these god-level programmers yet.

Re:I was a 10x engineer and I’m sorry by mLuby on Thursday July 18, 2019 @12:11PM (#20471269)
I question the inclusion of Nakamoto in that list. Is there anything to suggest that they have 10X engineering abilities? Nobody says Einstein was a 10Xer even if his Annus Mirabilis had orders of magnitude more positive effect on humanity. We can respect different forms of ability and achievement without conflating them.
Re:I was a 10x engineer and I’m sorry by langitbiru on Thursday July 18, 2019 @12:19PM (#20471352)
You brought an interesting point. Maybe we should differentiate 10x engineers (if we should keep this term alive) into two camps:

1. Super hardcore engineers like Fabrice Bellard, John Carmack or Linus Torvalds, 2. Engineers who bring insane amount of value to society, like Satoshi Nakamoto (if they were one person), and Markus Persson (founder of Minecraft).

Re:I was a 10x engineer and I’m sorry by Vinnl on Thursday July 18, 2019 @12:08PM (#20471239)
> there are people out there who are just... dramatically more effective programmers

So... At the start of this week I was trying to solve a bug that only occurred when someone had multiple browser windows open. I usually have just one browser window open.

The person who reported the bug did not mention that they had multiple windows open (and why would they). I got lucky when trying to reproduce it: my testing routine included giving it a try in Private Browsing, which meant opening another window.

If I had not done that, I would not have been able to reproduce the bug. How would such a dramatically more effective programmer have been able to reproduce that bug more quickly?

(Also note that the symptoms did not indicate anything relating to multiple windows. The report was simply: nothing happens when I try to run it.)

Re:I was a 10x engineer and I’m sorry by Verdex on Thursday July 18, 2019 @12:24PM (#20471417)
Aren't you answering your own question here?

| my testing routine included giving it a try in Private Browsing

The 10X programmer (or in this case the 10X bug fixer) has a testing routine that sufficiently covers enough logical scenarios such that they're able to converge on the truth at a 10X speed.

It's basically the same reason why Guess Who is a game. Some people ask better questions that allow them to eliminate irrelevant details at a faster rate.

Re:I was a 10x engineer and I’m sorry by Vinnl on Thursday July 18, 2019 @03:28PM (#20473146)
Well, yeah - in this case, trying Private Browsing helped to find the issue, but only because it opened another Window. That was good enough for me to find it - and I'm probably not a 10x engineer.

Had that not been the case, though, there would have been no indication to try using it with multiple windows open, as the error was a general "nothing loads", which is the result of an error condition anywhere in the code.

Re:I was a 10x engineer and I’m sorry by salixrosa on Thursday July 18, 2019 @08:25PM (#20475250)
I don't think any amazing programmer is immune to every bug. Just imagine a programmer who, when confronted with a bug, is always like "oh, that must be X or Y, we can test that real quick!" (And is right.) What a crazy world that would be.

What I do know is that my programming style is to really dig into every new project I have to work with. Maybe not every part of an application, but everything relevant to the feature I care about. I'm an incredibly judgemental reader (this is sad for personal reasons) and as such, I come up with long lists of "I don't think this would handle that scenario." I don't have time to dig into them, but that list stays there in the back of my mind -- a vague sense that a loop wasn't accounting for a particular kind of array value, etc, etc.

Inevitably, months down the line, some of those bugs surface as actual things. I keep an eye out on tickets, or listen during stand-ups, and I only have to remember just enough of that problem to cut out the investigative time. Eventually I become the person everyone goes to to get them up to speed on any problems within any of the features I've worked in, over people with much more seniority on the team, or often even the people who are responsible for that project. This is also how people seem to always think I've been around twice as long as I have.

I'm not a 10x engineer -- I find it incredibly difficult to stay "on task" and that massively kills my productivity. But the way I approach codebases, outlined above, is just one of many tactics that can, in the right environment, make a programmer far more productive/useful than they would otherwise be.

Re:I was a 10x engineer and I’m sorry by Vinnl on Friday July 19, 2019 @02:50AM (#20476653)
That's a good point: keeping potential problems in the back of my mind for months is definitely an area in which I have potential for improvement.

I guess that's also an additional argument for not being the only person working on a codebase - it's far harder to read it judgmentally if you wrote it.

Re:I was a 10x engineer and I’m sorry by parliament32 on Thursday July 18, 2019 @03:06PM (#20472968)
A 10x programmer would read the description of the bug, and from their knowledge of the codebase think "hmm, that should only happen when you have X loaded multiple times at once making Y happen..." then go on to immediately test and repro with two windows open.

UI dev/QA is a bit different but this is how things typically go in sysadmin-land. A good engineer can hear a description of an issue and immediately pinpoint one or a few seemingly unrelated potential underlying issues to test. This is just a combination of experience and a deep knowledge of the underlying systems and processes that make things happen. The tough part is that this isn't something that's "teachable" -- some guys just "get it", others, while having superficial knowledge of the infrastructure, just can't seem to be able to mentally walk though a system or process and identify where the trouble might be originating from.

Re:I was a 10x engineer and I’m sorry by Vinnl on Thursday July 18, 2019 @03:29PM (#20473155)
> A 10x programmer would read the description of the bug, and from their knowledge of the codebase think "hmm, that should only happen when you have X loaded multiple times at once making Y happen..." then go on to immediately test and repro with two windows open.

I don't think that would be possible, because there are literally hundreds of potential errors that could have the described behaviour as a result.

Re:I was a 10x engineer and I’m sorry by Izkata on Thursday July 18, 2019 @04:51PM (#20473812)
You do it by ruling out classes of errors, rather than one at a time, and drilling down from the ones you can't rule out. For example:

* Application code error should result in an error message somewhere.

* Application server configuration issue should occur for multiple users.

* Something happening to only one user should be caused by either their configuration or what exactly they were doing.

(And I'm sure there's more cases, but this is what's coming to mind offhand)

From another comment, it sounds like this landed in the third bucket - and better, nothing loading meant it wasn't something they were actively doing.

So it's some configuration specific to that user: Something user-specific from the database on page load, browser choice, add-ons, or - as you found - unusual (to the devs) browser usage, like zoom or multiple windows.

Obviously this isn't thorough and could be wrong depending on the situation (note I said "should" in the bullet points, not "will"), but it should help a bit. Even knowing possibilities like zoom or multiple windows is something you get from experience - now that you know it can be a problem and one of the ways it manifests, you'll know to check it next time you see something similar.

Re:I was a 10x engineer and I’m sorry by Vinnl on Friday July 19, 2019 @02:47AM (#20476647)
You're right, it was the third bucket. I guess you're right that experience teaches you about the potential sources of problems; it's just that I can already think of many, many such potential problem sources, and the only strategy I have is trying them out in order of likeliness.

But 10x engineer or not, there's always he risk of running into the least likely problem - or, more likely, running into one of the problems in the long tail of individually very unlikely problems. It'd be nice if one could learn to lessen the impact of those worst cases, but I guess the primary thing one can grow in is making them less frequent.

Re:I was a 10x engineer and I’m sorry by maccard on Thursday July 18, 2019 @12:12PM (#20471278)
A single anecdote doesn't disprove his hypothesis - in this case a more effective engineer might have sent it back saying "can't repro, needs more info".

They also might have looked at the code and said "oh hey, that won't work with multiple windows, I'll just change that".

Re:I was a 10x engineer and I’m sorry by Vinnl on Thursday July 18, 2019 @03:32PM (#20473171)
I wasn't aiming to disprove the hypothesis, merely looking for strategies better than my own.

In this case, I was also the person dealing with the person reporting it. Having had to close it with "cannot reproduce, won't fix" would have been a pretty disappointing outcome, and would make it really hard to discern between a 10x engineer and someone who's just bad at debugging...

Re:I was a 10x engineer and I’m sorry by wysifnwyg on Thursday July 18, 2019 @01:50PM (#20472259)
When I'm addressing bugs in the project I'm working on, especially when the bugs are described vaguely by outsiders, I start by confirming what I know to work. Take the most likely path I can conceptualize them reaching some sort of issue that's similar to their reported issue. While confirming what I know to work, if I'm not encountering anything that indicates that I'm on the right path, I switch over instead to what potential edge cases could be the issue. Focusing on the expectations, assumptions, and behavior I expect to see given what the options are provided (do they have the option to switch between two screens over and over).
Re:I was a 10x engineer and I’m sorry by Vinnl on Thursday July 18, 2019 @03:34PM (#20473190)
Yeah that's mostly what I do, and it generally works well. Sometimes there are cases like this, however, where the observed effect has hundreds of possible edge cases causing it, and I just lucked into observing the right one on my own machine.
Re:I was a 10x engineer and I’m sorry by tuvan on Thursday July 18, 2019 @12:16PM (#20471324)
Are you saying there are no dramatically more effective programmers because you encountered a bug that would be difficult for everyone to reproduce? Even if task X takes the same time for 2 people, one is more effective in the end than the other if they can do task Y in less time/more efficiently/some other performance metric.
Re:I was a 10x engineer and I’m sorry by Vinnl on Thursday July 18, 2019 @03:38PM (#20473223)
No, I was wondering whether this task was of category X, or if it was of category Y and there's some strategy better engineers than me employ that I can learn from.
Re:I was a 10x engineer and I’m sorry by ziddoap on Thursday July 18, 2019 @12:14PM (#20471310)
>How would such a dramatically more effective programmer have been able to reproduce that bug more quickly?

I'm not quite sure I understand your point.

"Dramatically more effective" does not mean "dramatically more effective in every single scenario you can think of."

Re:I was a 10x engineer and I’m sorry by Vinnl on Thursday July 18, 2019 @03:40PM (#20473241)
I'm not really making a point, more wondering whether this is a scenario that has room for a more effective approach. Like most programmers, I'm sure, I approach most errors I encounter relatively confidently, and they usually don't have me struggling for hours.

This one had me baffled for a bit, though, and I was fearing having to spend a couple of days on tracking it down - or having to give up. Sometimes those happen, and it'd be great if there are ways to have that happen less often.

Re:I was a 10x engineer and I’m sorry by username90 on Thursday July 18, 2019 @02:17PM (#20472529)
A 10x programmer would learn from this bug, think through why their current architecture could produce such bugs, write a test suite to ensure that they wont happen again and alter their testing procedures for finding reported bugs in the future.
Re:I was a 10x engineer and I’m sorry by Vinnl on Thursday July 18, 2019 @03:37PM (#20473215)
Alright, so in this case, the bug was produced by querying open tabs for a tab with the property `active: true` (not our API). Apparently, that produces not only the currently focused tab, but the tab that's in focus in every open window - another search param was required to narrow it down to the focused window as well.

What lessons about our architecture could we draw from this? What kind of test suite should we write?

Re:I was a 10x engineer and I’m sorry by travisjungroth on Thursday July 18, 2019 @12:12PM (#20471283)
Uh, they don’t. They also don’t turn on their computer faster than you. But a 10x programmer, while fixing that bug, might eliminate 3x as many bugs in 1/3 the time (so maybe they’re a 9x programmer).
Re:I was a 10x engineer and I’m sorry by JetezLeLogin on Thursday July 18, 2019 @03:03PM (#20472952)
I'll bet part of why they're conflated is because every company that tries to hire 10X engineers, does it wrong and ends up hiring arrogant engineers.

Not to mention, to the much more numerous ranks of "1X" engineers, a 10X engineer, even a real one, is kind of a pain in the ass and hard to distinguish from an arrogant engineer.

Re:I was a 10x engineer and I’m sorry by ahallock on Thursday July 18, 2019 @01:12PM (#20471891)
It's like that in every industry, every sphere of human activity, really. I'm not sure where this weird obsession with "10x" came from and how programming is different in terms of talent and productivity from any other industry.
Re:I was a 10x engineer and I’m sorry by saint-loup on Thursday July 18, 2019 @06:05PM (#20474387)
For me the question is not "do not-assholes 10x engineers exist", but "are 10x engineers the role model and the narrative this community need to highlight if it wants to move forward?"
Re:I was a 10x engineer and I’m sorry by duxup on Thursday July 18, 2019 @11:44AM (#20471010)
I feel like the term has quickly / maybe always lost meaning.
Re:I was a 10x engineer and I’m sorry by jdlshore on Thursday July 18, 2019 @12:44PM (#20471587)
It never had meaning other than as a feel-good expression of "some programmers are much better than others."

The original "scientific" basis was a paper in the 60s (ish?) that found a 10x difference between the time taken by the best and worst programmers to complete a task. It excluded people who didn't finish the task at all.

The actual focus of the study was to study productivity differences between off-line (punch-card) programming and on-line (at a terminal) programming. Remember, this was the 60s.

The 10x finding was a side effect of a small study that has no applicability today. I'm not aware of any serious attempt to replicate the findings, probably because they're not very meaningful:

1) The 10x difference was between best and worst. This is a lousy metric. A better metric might be difference between best and median.

2) Productivity was defined as time for an individual to complete a small program to run on a single timeshare computing system. This doesn't tell us anything about modern real-world productivity, which involves working in teams, on distributed systems, with vastly larger development ecosystems.

In order for "10x" to be scientifically meaningful—to be anything more than another one of the stupid tribal wars programmers like to engage in—we would need to: Determine how to measure real-world productivity [1]. Use a better metric than best-to-worst. Pay for and conduct a non-trivial study.

Ain't nobody got time for that.

[1] https://www.martinfowler.com/bliki/CannotMeasureProductivity...

Re:I was a 10x engineer and I’m sorry by cgiles on Thursday July 18, 2019 @01:12PM (#20471890)
> we would need to: Determine how to measure real-world productivity [1]

I submit to you that we would be having the same arguments no matter what study was done, because it could always be argued that whatever small-scale thing would be measured, and whatever metric was used, doesn't reflect the full complexity of reality.

We all know that some programmers are better than others. But actually quantifying that would not be in anyone's interests. For programmers, it would mean hard metrics to rate our performance, and people would be paid differently based on these metrics. "Bad" programmers, as defined by this hypothetical metric, would lose money and career opportunities. "Good" programmers would earn the wrath and envy of their colleagues. From a manager's perspective, hard metrics would encourage gaming the system and would generally not encourage team play.

So it is better off where it is. People who write code slowly can argue that they are really more productive because they take time for testing and collaboration and making documentation and making things legible, and that people who write code quickly are making unmaintainable messes. And people who write quickly have a prima facie case.

Re:I was a 10x engineer and I’m sorry by duxup on Thursday July 18, 2019 @07:06PM (#20474844)
Humans are resourceful. Any metric can / will be gamed.
Re:I was a 10x engineer and I’m sorry by sametmax on Thursday July 18, 2019 @12:46PM (#20471607)
> It seems blindingly obvious that there are people out there who are just... dramatically more effective programmers, in a holistic net-value-to-organization/world sense. Fabrice Bellard and John Carmack, to name two that jump to mind.

Or Salvatore Sanfilippo (antirez)

Or Guido Van Rossum

All also known to be very nice people. And that would deny they are 10x :)

Re:I was a 10x engineer and I’m sorry by austincheney on Thursday July 18, 2019 @11:39AM (#20470935)
> I'm not sure I understand why people are so eager to conflate the term "10x engineer" with "an arrogant engineer who is only seemingly productive because of either obfuscation or generation of technical debt".

Part of it is defensive posturing. I have encountered corporate developers who are hardly, or not, literate in their primary programming language yet see their capabilities as average or the norm. A productive person popping their delusional dunning-Kruger bubble may very well seem arrogant to them.

Re:I was a 10x engineer and I’m sorry by bluedino on Thursday July 18, 2019 @12:49PM (#20471633)
Is John Carmack a '10x programmer'?

Carmack didn't exactly create Commander Keen all by himself. John Romero did some programming, and the level editors and other tools like the installer. Adrian Carmack did the art, Tom Hall came up withe gameplay ideas and level designs. Besides, Keen wasn't anything amazing in terms of a game, other than the fact that it was one fo the first popular side-scrollers on the PC.

In the end, Keen was a basic side-scroller. Of which plenty existed over the years. Shareware, hobbyist, and professional game developers were not in short supply.

Wolfenstein 3D and Doom. Again, Carmack wasn't the only programmer. Again, Romero wrote the level tools. Dave Taylor also had programming duties. Heck, id even farmed out the sound code! Wouldn't a true 10x developer bang out a sound library in his sleep?

Quake rolls around. This time Carmack has brought in re-inforcements. Mike Abrash for his vast knowledge of graphics coding and optimization, and John Cash for the networking side. Dave Taylor wrote the sound engine and some other things. Zoid ended up taking QuakeWorld.

Around the Quake 2/3 time, Carmack started to come into his own. They brought Brian Hook in help do 3D graphics, but Carmack created a level editor as his 'first win32 program', even though he eventually passed it on to Robert Duffy. Carmack was really doing a lot of things with 3D graphics and hardware at the time.

Let's not forget his side projects like graphics drivers and porting id games to things like the iPhone and SNES.

I'll end this by saying at the very least he had a huge hand in getting PC gaming going in the right direction. I also love his willingness to release the source code to their products. But was he a '10x programmer'? Maybe he was just really good.

Re:I was a 10x engineer and I’m sorry by wsc981 on Thursday July 18, 2019 @01:17PM (#20471934)
I often wonder if Jason Jones [0] (of Mac 3D shooters "Pathways Into Darkness" [1] & "Marathon" [2]) was at the time at about an equal level as John Carmack. I believe the release dates of PiD and Marathon weren't much different from Wolfenstein and Doom, so they've must have been developed at more or less the same time.

Personally I feel PiD was a much better game than Wolfenstein, partly because of the adventure/RPG elements, partly because of the horror atmosphere. The UI was less immersive however. But the game certainly had very interesting elements. For example there was a level that was randomly generated every time. Some monsters could only be killed when frozen (using a special "blue crystal") otherwise they'd be invisible and be impossible to kill. It was possible to talk with dead human corpses using a "yellow crystal", etc… There was a special room that would drain the oxygen and only by speeding up the time somehow (perhaps using another crystal?) one could survive the room.

And some things Marathon certainly did better than Doom. For example it was possible to look up and down, the lightning effects were more impressive, there were some physics, etc ...

Of course the guy that wrote the Build engine (of Duke Nukem 3D fame) was probably at a more-or-less equal skill level as well.

---

[0]: https://en.wikipedia.org/wiki/Jason_Jones_(programmer)

[1]: https://en.wikipedia.org/wiki/Pathways_into_Darkness

[2]: https://en.wikipedia.org/wiki/Marathon_(video_game)

Re:I was a 10x engineer and I’m sorry by bluedino on Thursday July 18, 2019 @01:30PM (#20472086)
I'd love to hear an opinion on someone like Ken Silverman or Tim Sweeney, as they were Carmacks contemporaries.

There's probably legendary but unknown programmers at place like EA or Sony.

Re:I was a 10x engineer and I’m sorry by robmaister on Thursday July 18, 2019 @02:15PM (#20472502)
I personally have a huge amount of respect for all 3 as engineers.

There are plenty of legendary gamedev engineers who are somewhat known, most of them hang out on Twitter (Carmack has a great Twitter account IMO)

I've only worked in the industry for a little over a year now, but I've heard some great stories from the senior engineers.

Re:I was a 10x engineer and I’m sorry by 83457 on Thursday July 18, 2019 @01:00PM (#20471757)
What you are saying is that he wasn't a solo developer? I don't think that is really a requirement for the term. From everything I've read about his work habits, what he created, etc, him being a 10x programmer would be an understatement for the common usage of the term.
Re:I was a 10x engineer and I’m sorry by enraged_camel on Thursday July 18, 2019 @01:24PM (#20472018)
> Is John Carmack a '10x programmer'?

Yes. In fact, he is probably a 100x programmer.