Stop saying 10x developer
earthly.dev
earthly.dev
Actually a really humble person, would probably hate this label. Intensely focused, avid reader of tech source materials, and somewhat intuitively gravitated towards sound/simplistic solutions to problems other people had a hard time even understanding.
It's a thing.
Didn't like the person and they were anti-social to a great degree. The company treated him like a diva and he was I guess. But he could go into his office, shut the door, and the next day we'd have some working component to the larger system largely coded.
So you can't argue he wasn't a 10x coder. But a 0.1x communicator.
"Expert" doesn't really communicate much. There's a meme that's probably older than I am that goes something like:
"An expert is no different from the rest of us, he just has a binder and slides."
Today it would probably be a PowerPoint presentation, but the point stands: Expert has been an overused and overloaded term for far longer than 10x, and other than specifying a focus ("video encoding expert" or similar) it is insufficient to actually communicate to non-technical people the distinction.
Saying specialist is also descriptive of your focus, but similarly doesn't get to the underlying difference between and average and a 10x developer.
A video compression specialist is going to be really good at video compression, and maybe that's because they're really familiar with the math and the domain. And that means they could create compression algorithms much faster than I could; I don't know the technical details of any compression algorithms to the degree that I'd even consider taking such a job. Some tasks are best handled by experts or specialists; that's fine and appropriate.
But a generalist "10x" developer can typically handle many domains. In fact, jumping between domains is not uncommon. Their "expertise" is in being able to grok complex systems and multiple levels of indirection and interaction; what the systems are doing is less important. Maybe the video compression specialist is also a 10x developer, but just prefers to stay in the video compression space; that's fine. But I've seen code written by specialists were really good at their specialty, and their code worked...but it was not good code. And one hallmark of a 10x developer is that the code is good.
So both expert and specialist are really orthogonal to 10x.
But we don't have another term that both has traction and isn't ridiculed.
"Rock star" and "ninja" are in the latter camp; both those terms and "miracle worker" seem like you're bragging.
But you're absolutely right. I know that there are some solutions I've come up with--quickly--that the rest of the team wouldn't have achieved given years. Your overall descriptions hits me too--non-traditional background, ADHD-level boredom sensitivity, always pushing for the right solution even if it's not politically wise, and demanding of high compensation.
But instead of changing the world I keep taking relatively brainless tasks just because they pay well. The boredom part makes it hard sometimes, but I usually get around that by changing the environment I'm working in so that any repetitive work gets eliminated.
This blend of highly dismissive comments on expertise and the volume of work it takes to achieve it is starting to become a cliche in software development circles, similar in tone to the denigrating comments regarding roles such as system architects.
Expertise is domain knowledge supported with real world experience. It's not fancy slideshows.
The video compression specialist outperforms you in every way because he's been studying the problem domain, researching the problem, implementing solutions, and analysing the results. And meanwhile you barely know what's a ffmpeg.
Some developers think too highly of themselves to the point they feel they can parachute into a problem and talk down anyone around them, including experts and specialists. And this shows in the code, and unfortunately in team dynamics.
I am not making a dismissive comment here. I'm saying that expert is only useful for saying things like "video encoding expert".
And that a "video encoding expert" may be great in a very narrow way only involving the math surrounding video encoding, or may be a 10x developer in addition, but the "expert" label is orthogonal.
I'm certainly not going to pretend to be a video encoding expert in the sense of working on the encoding code at least. I've actually worked on projects that have used video encoding multiple times, and in that sense, yes, I did just "drop in and become an expert," in some cases learning ffmpeg on the fly and in other cases integrating C libraries and dealing with frame buffers.
And that is what a 10x developer can do. I don't feel the need to "talk down" to anyone, though, but if an expert makes a claim I will expect them to be able to talk intelligently about it and defend it if it seems wrong.
1x developer might look at the problem and think "this is an interesting and challenging problem to solve, I'll solve it in a week". He solves it in 2 weeks, and despite failing his own deadline feels really good about himself. After all he solved a problem.
10x developer might look at the same problem and think "this is an interesting and challenging problem to solve. I'm not going to solve it today because the impact is too low and cost of the solution is higher than cost of the problem".
1x developer might ship 500 lines of code per day.
10x developer deletes 50 lines of code per day, and ships a 100.
1x developer is good at solving problems.
10x developer is good at not creating problems in the first place.
Meanwhile many competent and useful people will never achieve such output in their entire lifetime. So what magnitude do we assign to this difference? Is that 10x? 100x? Infinity? Whatever the case, it's "a lot" more and the exact measure of these metaphorical numbers are beside the point.
Nearly all the rot and poison comes from one source: the fact that we answer to capitalists, people who hold private wealth and will do absolutely anything to retain it, even if it means covering the world in lahars of shit.
If we don’t fix that problem and overthrow the corporate system, there is literally no point in anything we do.
> Nearly all the rot and poison comes from one source
It's tempting to think that all the world problems are coming from a single source and therefore have a simple solution, but usually that's not the case.
Leftists will always blame capitalism. Feminists will blame toxic masculinity (most developers are men, right?). Nazis will blame Jews. Every ideology claims it solves every possible problem, but it never does.
I don’t think you can fairly compare feminism and leftism (well-intended movements) with antisemitism, which has a historical record of resulting in mass murder. And toxic masculinity certainly exists, though not all forms of masculinity are toxic, and I don’t think men ourselves are in any way “toxic”. In fact, toxic masculinity and corporate capitalism are closely intertwined, each being an expression of the other.
The problem with these radical solutions is that they are ultimately unscientific. There's nothing you can say to a feminist that will convince them that wars aren't caused by toxic masculinity. Nothing you can say to a leftist that will convince them that horrors of capitalism don't outweigh the benefits.
At the end it comes to this: you can practice socialism in a capitalistic society. But you can't practice capitalism in a socialistic one.
I also spent a lot of time optimising my workflow, which leverages build/test on change and large volumes of automations. Unit tests are also key.
Those people are not 10x engineers, despite them sometimes thinking they are.
(Not saying that's you, I don't know you).
There are places where there’s a need for k8s and similar, but largely that’s when you’re at google level scale. For the rest of us plebs, maybe leveraging simpler paas solutions or traditional mechanisms are more effective.
Except CRM. If you’re building in CRM you’re just making a mess, no matter what the rationale is.
Of course you'll royally screw over the rest of the company/team that has to productionalize, maintain your code + spaghetti of services after you leave.
Further, if programming skill follows a normal distribution, the 10x programmer bucket is under 1% of the population. You, dear reader, are probably not a 10x programmer.
The true 10x programmers will not have 10x productivity in most giant tech companies. Google and friends have put in place mountains of progress in pursuit of downside protection (eg extensive testing, release barriers, and so on). Google invented Golang partly to address issues with mid level programmers being unable to code well.
These downside protections also blunt any benefit a 10x programmer could have, which is why so many people claim to have never seen them.
There are 4X runners I guess.
It's like comparing developers by how fast they can type.
How does that follow? If someone on the 50th percentile takes X to do a job, someone on the 99th percentile might well take 49 hours. Someone who takes 5 hours to do the same job might be in the 0.0000001%, or not exist at all, or be in the 51st percentile.
Huh? Why would that be?
In their own ways, they are similar to people who speak 10 different languages and who can also take to a new language like a fish gliding in water.
Productivity is a complex function with many variables. I've also seen some super motivated and creative individuals barely tie their shoes and take a full minute to respond to basic questions on some days.
The "10x dev" is mostly a meme indeed. It absolutely does happen but it's not something you can just have more of.
The employers are free to keep dreaming of human robots though, if that helps them sleep better at night.
¯\_(ツ)_/¯
There was one situation that took me out of the usual roles and obligations (meetings etc.) and made me just a developer. Who would have known, I managed to get done 10x the amount of work that time. Maybe even 100x.
How much potential is wasted on distracting your employees from the one task they should actually be doing at that point?
> [4] Fabrice has created so many amazing pieces of software
The sheer diversity of different fields in which Fabrice has written top notch software undermines the author’s point that 10x developers only exist as specialists. And yes, I think Fabrice would be 10x as productive at boring CRUD work, by finding some clever way to automate it.
It seems weird to deny they exist and to not seek them out for your organization.
But, we are watching all this play out live, so who's to say. FWIW I am not betting that the old status-quo is meaningfully better.
But it's also saying that what they're calling 10x could be a developer with a skill set that might not be possible for another developer to compete with, even if given infinite time.
There are lots of companies that need data structures and I/o.
However, the idea that you can have more of the 10x devs is an illusion and wishful thinking. Mostly because it doesn't take into account the undeniable fact that the high performers aren't at their 100% all the time. It's also kind of physically impossible, too.
I think the 10x metric is productivity over a time period rather than peak performance. If I remember the original McKinsey report the idea is that one 10x will produce the same as 10 regular devs in a year.
I consider myself a 1x (or maybe .75x) and have periods of contemplation followed by periods of productivity within an hour or even a day. A 10x, I suppose, could operate in the same manner and so it’s certainly physically possible.
I’ve read interviews with John Carmack and he describes spending a few hours a day programming and almost a flow state.
In my company, some people merge 600 PRs a year, and some only merge 50 PRs.
When you look at the performance, there is an obvious correlation between good performance and PRs.
They fix a lot of random stuffs in adjacent areas and finish their main projects.
Of course, this correlation is not true 100% of the time.
Also w.r.t. the points made about meetings, having gone from a large organization with many meetings to another large organization with few folks are definitely wasting time in meetings in some contexts and the best engineers at the first org would bias towards avoiding meetings.
10x developer, 10x developer, 10x developer…
10x engineers is inaccurate to be sure.
It's simple formula.
Your productivity / your average team member's productivity.
If your average team member accomplishes nothing or in some cases causes problems and doesnt solve any problems. You are dividing by 0 or a very very small decimal number.
In my experience because of social media and such. Most people dont pay attention while at work. I couldn't tell you how many times I've seen coworkers sleeping in their cube. How many people doomscroll reddit or facebook while at work?Basically everyone.
So who are the 10x engineers? The people who aren't wasting time. The people who are engaged and paying attention. The people who are actually working unlike most.
1) Define a metric meaningful for whatever you're interested in, e.g. developer productivty
2) Find a way of accurately measuring that metric (surely not LOC)
3) Do some R&Rs (repeatability and reproducability) and other gage studies
4) Use this metric to your advantage
In that narrow sense I'm sure some 10x, 20x, ... developers exist but you can't plug and play them.
Being a .5x developer, but giving everyone on your team a small multiplier on impactful work is far more valuable than prolific output. In fact we call these people “Director of Engineering” or maybe “Principal Software Engineer” etc.
> 10x engineers hate meetings. They think it is a waste of time, and obvious things are being discussed.
Engineers understand the value of meetings. This is the sign of a 0x engineer. It's the sign of a 10x code monkey. No legitimate business needs code monkeys.
[1] https://www.ribbonfarm.com/2009/10/07/the-gervais-principle-...
Apparently we needed to wait a decade to rename "Losers" as "Quiet Quitters."
Sociopaths -> Opportunists
Clueless -> Idealists
Losers -> Pragmatists
Losers: subordinate and strategic, not dedicated.
Clueless: subordinate and dedicated, not strategic.
Sociopaths: dedicated and strategic, not subordinate.
The unicorn of all three doesn’t exist because it’s never strategic to be both dedicated and subordinate: you always get better results if you pick one or the other and stay in that lane.
1. nobody likes their job
2. nobody thinks their work has any value besides what they are paid
In swe plenty of people like their job, everybody's paid like 200k now, and unless you're working on crud internal tools you get to work on something relatively important.
But yeah if you have a shit job then you can browse HN at work and philosophize about sociopaths and losers.
And, sure, SWE is full of Clueless (you don’t have to be a manager to be clueless) who think they’re going to be millionaire CEOs inside five years because they were promised “meritocracy”.
I do agree that those models are specific (and therefore limited) to the private-sector corporation, and don’t really hold in mission-focused organizations where there is an actual reason for it to exist. Thing is, most of the highest-paid tech jobs are in pointless work done solely for rich people, with zero or negative net social value, so that’s where most HN posters are going to end up.
Sorry what companies/jobs are you talking about specifically?
I don’t tie my self worth to my corporate career at all. I tie it to my ability to produce excellent software, but I’m just lucky I ended up born on a world in a time that values such a thing, because it’s what I love to do.
If I was concerned with my career, there’s probably much better things I could be doing with my time than becoming a better software developer. :P
These internet pop sociological schemas are fun thought exercises but over-reductive.
You can be a great rocket engineer without giving up everything else, practically living at the office, not seeing your newborn kid because "parental leave isn't something Elon would believe in" etc. Be a rocket engineer that takes 6 months of paternity! Be a rocket engineer that works sane hours and comes home at the end of a work day. That cooks a great BBQ on the weekend with friends and family, not with other rocket engineers on the lawn at the office because you realized that you all went in to do some work.
I'm with the parent on this and like you I would probably code if I had a different job. I made my hobby my job but that means now I have other hobbies that are not coding. I give everything at work but I take my time very seriously. You're paying me for 40 nominal hours (yes we're not paid hourly, we're 'paid to do a job' but that definition is so wishy washy and ripe for abuse that I very literally apply the nominal hours) so I do my very best inside of 40 hours and will feel bad if I even think about doing something else within those hours. I.e. I won't "do the very minimum not to get fired". On the flip side of me giving my best during those hours and being present, I take this very seriously the other way around as well. Outside of actual emergencies, you better not expect me to answer, be online, do overtime or take abuse of the "this just came in, we need this by Monday" message on a Friday afternoon sort.
EDIT: for the down voters, I get it, I mentioned Elon, which on HN is bad. FWIW I know one of those guys and the newborn thing is real, not generic 'Elon hate'.
I've worked in teams that, as a whole, were significantly less productive than I am working alone, even though I was very much part of the team.
Not that any of the developers on the team was bad or anything. It's just we spent 20% of the time in meetings, 30% of the time debugging broken jenkins pipelines and kubernetes jobs, 10% of the time rolling back changes because stakeholders changed their mind, 25% of the time fixing the bugs introduced by rolling back the changes, 5% of the time having coffee and playing pingpong, 10% of the time agreeing on the design, 7% of the time in standups and other agile rigmarole, and the remaining 3% of the time developing the system.
I work at a Big Tech company so my $/hour ratio is pretty nuts.
Sorry for the useless comment :)
They're "10x" because they have mastered a set a tools end-to-end that they use over and over again to achieve their goals. Examples:
* Does it need a client-side website? Bootstrap + jQuery
* Does it need a server-side application? Python + Django
* Does it need data persistence? PostgreSQL + Redis
* Does it need asynchronous tasks? Python + Celery
* Does it need a web server? nginx
* Does it need infrastructure? AWS + Terraform
* Does it need to scale? Yes.
* Does it need ? (you name it)
Add that all up and the people that can deliver those apps/features are extremely rare. Those are the 10x developers.
And I'm not even talking about just using those components. I'm talking about using them expertly. Highly optimized.
Not a dig I'm just trying to understand the use case. I thought Redis was only used for high speed queues?