Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think folks’ general understanding of the 10x engineer is that “some people have it and some don’t”.

I think it’s more like “I’m working on a bunch of stuff I already know, I have all the designs and business logic clearly identified, and my colleagues and I are all on the same page about how to work together so I’m really productive” vs “this codebase I just adopted is completely unreadable, the designs change every 3 days and the other teams I’m interacting with are adversarial”.

People aren’t 10x engineers, situations are.



I disagree. I'm not saying saying that I'm a 10x engineer, but I've sometimes found myself working with folks who feel like they're a 0.1x engineer, so compared to them the 10x difference still applies.

It's not that they were worse engineers or less intelligent or anything like that, it's just that they would opt for the unnecessarily complex decision at every step of the way, and seemingly in other aspects of their life as well. The kind of folks where you find yourself saying "Why don't you just ..." constantly.

I imagine a 10x engineer as someone who can consistently identify the fastest, cleanest and least complex way to get from A to B, reliably, in different situations professionally and personally. That includes making quick decisions and tradeoffs. These people do exist, they get stuff done, and some folks don't want to acknowledge it because they don't want to be seen as the 1x in comparison.


> I imagine a 10x engineer as someone who can consistently identify the fastest, cleanest and least complex way to get from A to B, reliably

Yes but... in today's software culture, the fastest cleanest and least complex solution is very rarely appreciated or even tolerated.

If you can solve all the requirements with a couple $5/mo VMs, you'll still be run over by the buzzword-compliant solution that requires 30 instances in a kubernetes cluster.


I’ll always appreciate the simple solutions, and that comes from being a solo, overstretched developer for much of my early career. What I observed is when more people get involved the solutions always take on extra complexity. This could be due to the need to make work for everyone on the team. To delegate responsibility. One person who has to set up a VM and push code and talk to customers does not need to complicate their life. But when you have a manager and a new hire and an IT department and have meetings then all of a sudden you divide and conquer and there needs to be enough churn to justify everyone’s role in the project. The one person who speaks up and says something like “yo we don’t need this CI and buzzword tech stack and containerizations, microservices and cloud functions, I have a LAMP VM already coded up that meets the requirements” they will certainly be shut down by the rest of the team.


> Yes but... in today's software culture, the fastest cleanest and least complex solution is very rarely appreciated or even tolerated.

Funny how this sentiment is as old as "kids these days".

There are reasons why complex solutions are needed. These reasons are so much valid, that certain areas legally mandate the complexity. While majority of those reasons are safety related, one of the aspects behind safety is reliability and maintainability.

Usually (!), there is a balance. What is the least amount of training you have to supply the person doing maintenance that they could grasp all the assumptions, constraints and links with other components to successfully work on a component? The more complex the system, the less complex an individual component, in a way it interacts with the rest of the system.

For example electrical power supply units. Some fields require PSUs to have galvanic isolation, which makes them much more complex than $2 aliexpress part. However, galvanic isolation means that there are e.g. no weird, parasitic interactions over grounding - it just provides power like a battery would. Swapping a battery with a medical grade PSU would not introduce hidden interactions with the rest of the world.

Likewise, in a software system, a single component becomes (or at least can become. Complexity does not necessarily yield that, but complexity is required to provide this) more isolated, easier to work on alone without introducing breaking changes in different subsystems.

Do you need complexity? Not necessarily. Maybe the project is small and relatively short lived. Maybe you are thrown into a decade old project with requirements and teams having been changed several times in that timeframe. Component isolation backed by complexity would probably be highly appreciated.


> legally mandate the complexity

That's often the rewards of lobbying by entrenched interest taking advantage of a captured congress.


> If you can solve all the requirements with a couple $5/mo VMs, you'll still be run over by the buzzword-compliant solution that requires 30 instances in a kubernetes cluster.

Officially triggered. Cuz lord knows that's how all my meetings go.

Why use a simple VM setup and some Ansible to keep it up, when we can put 4 more layers of abstraction in there and pay AWS / Azure / GCP extra money?

Who is gonna get that money? Depends on which provider "wined-and-dined" (cough cough) recently.


I’ve worked with a dev (extreme example) that said why “don’t you just…” and delivered at 10x from A to B only to find the going from B to C is now a daunting task, because of how we got to B. It is a lot like the sysadmin that gets praised for saving the day every time his servers crashes. Sometimes the extra complexity in getting to B is the preparation to keep on going. It is a trade off, and the optimal answer may not always be predictable.


I know exactly the type you you mean. Looping back to OP, this can create a lot of viscosity in the project.

Your 10x engineer in one situation will grind to a halt if they work with a few of these 0.1x engineers, if they have to interface with each other.

The person that increases the compile times of the project to near infinity to save a runtime instruction with the C++ type system has an effect on the whole system.

10x IME is only possible if you have very fast feedback loops, that means fast unit tests, fast incremental compilation times. You can only be fast if you can iterate fast. And if you're working with enough people that slow down your feedback you'll get slower.

I've seen it happen plenty of times. The situation aspect still holds.

I think it's a combination of both. There are potential 10xers, but the environment needs to be right for them to flourish.


True, I can’t stand over-engineered solutions, I don’t think those people are ever going to get a high velocity. Maybe it’s safer to say the situation is a necessary but not sufficient.


> it's just that they would opt for the unnecessarily complex decision at every step of the way

But this does not invalidate the previous point about the environment. If the environment is loose and with low accountability, those unnecessarily complex decisions receive a big pass; if the environment has strict principles about simplicity and made that as an incentive, those practices faces much hard time to spread in that particular environment.

I think this is a case of “Show me the incentives and I will show you the outcome.”


There are 10x people in every field. It’s not “everyone is average and there are 3 Einsteins”.

It’s a bell curve and eventually you’ll meet someone on the farther ends of both sides.

Chances are there’s always someone much better or much worse than you.


> There are 10x people in every field.

I very, very strongly doubt that. That's just not how human performance works. There is a lot of variation for sure, but not by arbitrarily high amounts.

Instead, there is a maximum humanly achievable performance, and the performance of individuals varies between zero and that value.

As a trivial example, the world champion in weightlifting doesn't lift 10x as much as the average person – and they certainly don't lift 10x as much as other professional weightlifters. In most fields, the world's top performers are a few percentage points better than the average professional.

I consider any software engineer who performs just twice as well as the average engineer to be part of the elite. And I consider claims of "10x" performance to be complete and utter bullshit concocted by people who have no idea what they are talking about.


Well, Usain Bolt has infinitely more current world records in the 100M than anybody else. He probably also makes more than 10x more money in sponsorship deals than the second fastest or whoever is the fastest currently active sprinter.

I know plenty of software developers who can solve bugs or design systems that the average developer would never be able to do. Those people are infinitely better at those tasks than the average.

10x performance is easy as long as you do not constrain it to something inane. Impact and the ability to solve problems that others can not are functional and practical examples of that.


>Usain Bolt has infinitely more current world records in the 100M than anybody else

And he isn't even 10X faster!


Oddly enough the world champion deadlift is exactly 10x the amount I feel comfortable deadlifting right now (I haven’t been doing it for long) https://en.m.wikipedia.org/wiki/The_World_Deadlift_Champions...


Those guys weigh 150+ kg though, since deadlifting is a rather informal competition without weight classes. Unless you weigh the same, comparing yourself to them doesn't make sense.

I am not physically active at all, and the world record for weightlifters in my weight class is around 3 times what I am able to lift with zero training.


> Unless you weigh the same, comparing yourself to them doesn't make sense.

Of course it does. The “10x developer” claim is that some people have 150+ kg equivalent brains when it comes to programming. In the right environment they’re lifting 10x more code. Just like with weightlifting, it might not be healthy or useful to compare your productivity to theirs because it hurts and it doesn’t really matter anyway. But just like with weightlifting, the comparison can still be made.

Most of us work with other people in our “intellectual weight class” - so you might not meet many developers that much smarter than you. But they’re out there. The Jeff Deans of this world aren’t spending their time closing jira tickets for simple web apps.


> The “10x developer” claim is that some people have 150+ kg equivalent brains when it comes to programming.

Software development on a team is more than bashing code; a 10× developer is probably most often a 3× coder who helps makes seven 1× teammates into 2× coders.


I think both types exist. There are certainly 10x managers, who write no code but make their entire team multiple times more effective than they would be otherwise.


I've never understood 10x to be an exact quantitative attribute. Treating it like that is missing the point in my opinion. Extreme outliers can exist in any field.


But it's an analogy. For software engineers. About software engineers.

It's going to be abused and stretched and misread and taken overly literally until it breaks.

Even a 0.1x engineer can do that, though it may take a little longer.


I don’t think the point is to get hung up on the actual number “10x.” There’s not even a metric so how can there can be a number?

10x just refers to those top performers for sake of discussion. The point is not the semantics.


But it really only happens when you compare the top to the bottom and the comparison particularly useful.

When you get the top, differences are more perception and other factors over skill/knowledge/intelligence. See: The Olympics, do you often see an Olympic competitor 10x a competitor?


> See: The Olympics, do you often see an Olympic competitor 10x a competitor?

Yes, the Olympics mostly consists of 10X athletes. It’s pretty much a competition made for them.


Olympic athletes don't outperform average athletes by 10x. I'm sorry, but that's just complete bullshit.

The world record for 100 meters sprint is 9.58 seconds. High school athletes routinely break 11 seconds. There are one-legged people, 90-year-olds, and other highly handicapped individuals who have come within a factor of 2 of the world record set by elite professional athletes. 10x my ass.


A concept can still be generally true even if there are exceptions. It's useless anticommunication to pretend to be unaware of that. Almost no statement ever made can be said to be true without exceptions, and it would be impossible to communicate at all if you actually tried to enumarete every possible qualification to every statement. Pedantry is if anything a worse crime than hyperbole.


The 10x concept isn't "generally true", it's generally false, and reeks of ignorance and hero worship. "10x" is a quantitative claim. If you really meant 1.15x, why not say so? Is it because that sounds rather unimpressive by comparison, and therefore is not conducive to your elitist rhetoric?

The truth is that the gap between average and peak human performance is actually rather modest, and this is reflected by hard numbers wherever they are available. There is no need to invoke 10x ubermensch nonsense.


If by "competitor" we mean "everyone who competes in the sport" and not just "everyone who competes well enough to qualify for the Olympics" then yes, Olympic athletes frequently perform 10x better than some of their competitors.


Please name a single sport where the world record is 10x of what average hobby athletes perform at.

To show how ridiculous that idea is, that would make "average" 100 meters sprint times more than 1.5 minutes, and "average" long jump distances less than 1 meter.


Fencing. I’m a “hobby athlete” at fencing (Sabre) and I’d play with about a 10x point multiplier if I wanted to compete with an Olympic level athlete. We had a couple people like that at our club.


That's comparative performance vs. absolute performance. Yes, there are people who can beat others 10x more often than those others can beat them. That doesn't mean they perform 10x as well. In fact, it can be enough for them to be just slightly better in order to achieve such comparative results.

Where absolute performance is concerned (that is, performance measured against an external, objective standard), no elite athlete in any sport is anywhere close to 10x'ing their hobbyist peers. Even beating them by a factor of 2 is unthinkable in most sports.


No.

Some people (almost no one) can stand up a new app from scratch and some people (almost everyone) can't.

No idea why there is such pushback against this. It really is true.

Not everyone is a superstar.


I disagree... I think Nx scale is actually more of a personal characteristic. The easiest way to detect it, even for small Ns, is to notice the situations like when you are addressing all the questions you have for a sibling team to one person in that team. Instinctively from past interactions, you know they have a good mental model of their service and can give useful informed answers, or good pointers when they don't know. I've worked with teams where somehow the entire rest of the team is either useless, or will BS you with "I think it probably..." "It should...", so you have to read their code yourself anyway to verify. Ditto for e.g. scrums, there are people who, even though they are earnestly trying to e.g. fix something, have trouble explaining what they are doing and what problems they are facing, there's just some mental clarity that is 0.Nx (or Nx or 1x for normal, I guess), and that translates into the work being slow (or fast).

I think something similar applies for most development tasks... some people just do everything better, and it's often not even a trade-off - they produce cleaner code that is also faster and do it in less time...


And the wild thing is, we have more control to change the situations we pursue than the quality of talent at our disposal.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: