167 comments

[ 2.9 ms ] story [ 214 ms ] thread
(comment deleted)
It was only after I deleted the CSS file in the dev tools I noticed the "switch to simple style" button top right.

Hope that helps others struggling with reading the retro style font.

What an infuriatingly unreadable typeface.
there is a button at the top of the website to switch the font
Which is a good sign that the font shouldn't have been used in the first place.
Infuriating is a bit of a stretch. A mild annoyance at most.
I think it can be actually infuriating for some people. I recently discovered that when some friends say that something disgusts them, they are actually feeling nauseous and could possibly throw up. On the other hand, I've never felt nauseaous from being disgusted by something. Same thing about second hand embarrassment, it's annoying for me but I can keep watching something, while they have to pause to "recover". People feel things in various ways, sometimes totally different from how you feel something.
I find I've vacillated between a 1x and maybe a 2x engineer throughout my career. Sometimes down to a .75x engineer at times. I've had short (weeks to a month long) stints of being a 10x engineer maybe twice in the 20+ years I've been coding. I'm quite happy being a 1x engineer TBH.
I'd guess "Has productive and unproductive days." kinda covers this, definitely feeling the same - especially with wfh, I feel like there's days where I get as much done as I would in 3 normal days, but some days, I sit there all day not knowing what to do with myself.
Can't read the font, sorry. Here is the list:

* Searches Google, Duckduckgo, Bing, or wherever they like when they're not sure what's up.

* Copy/pastes code snippets from Stack Overflow, Glitch, Codepen, or wherever they find answers.

* Gives credit where credit is due.

* Creates community and shares knowledge.

* Spends time on things outside of engineering, like hobbies, friends, and family.

* Has a schedule that allows them to maintain a healthy work-life balance, and respects others' time-boundaries, too.

* Isn't measured by arbitrary contribution scores on any website, and doesn't judge others for theirs either.

* Writes code that &emdash; gasp &emdash; has bugs.

* Writes code that others can read.

* Reads the Docs.

* Updates the Docs.

* Doesn't need to be passionate about the code they write or the problems they solve, but may be.

* Doesn't act surprised when someone doesn’t know something.

* Is willing and able to collaborate with others.

* Willing to spend time and energy to help teammates get unstuck, when appropriate.

* Publicly celebrates others for their wins.

* Ask questions before providing critical feedback.

* Gives tough feedback privately.

* Treats others how they would like to be treated.

* Provides code reviews and feedback to their peers that are constructive, helpful, and presented tactfully, helping their peers to grow personally and professionally.

* Expresses appreciation for code reviews and feedback from their peers that are constructive and helpful.

* Sometimes feels hurt by critical feedback, but doesn't react destructively.

* Sometimes takes short breaks to clear their head.

* Makes mistakes from time to time, and finds growth in those mistakes.

* Willing to admit when they're wrong, and aren't afraid to say "I don't know."

* May or may not like writing documentation, but does it anyway for future maintainers.

* May or may not like writing tests, but tries to learn to do so if the team or project needs it.

* Thanks others for their time, effort, and energy.

* Can have colorful desktop backgrounds.

* Supports code in production, even if they did not write it.

* Can feel like an imposter at times, and understands others may, too.

* Believes that everyone in the room is equally as smart and capable as they are.

* Will help level-up others, and asks for help when they need it.

* Never stops learning, but can feel totally overwhelmed by the amount of learning there is to do.

* Tries to keep discussions productive and lets others have their say before the team makes a decision.

* Is willing to leave their comfort zone.

* Contributes to the community in their own way when possible, and appreciates the ways that others contribute when they can.

* Can be a slow coder.

* Has productive and unproductive days.

* Doesn't take themselves too seriously.

* Says, "I've never heard of that," in lieu of nodding and pretending.

* Is trustworthy.

* Works to live, rather than living to work.

* Sometimes loses their work.

* Doesn't have to have the entire codebase memorized.

* Respects and upholds community Codes of Conduct.

* May work from home, the office, a coffee shop, or where ever else best works for them.

* Doesn't hate on tools, processes, or languages that they'd rather not use, or that others are using.

* Is not defined by the computer they're using.

* May decorate their laptop and workspace in any way they like, and is respectful of others' decor (or lack thereof), too.

* Isn't defined by myopic Tweetstorms by clueless VCs.

* May have a lot of unfinished personal projects, or no personal projects at all.

* Doesn't riddicule entire professions within engineering, especially not when in a position of leadershi p.

Click "simple style" at the top
Can a 1x engineer design a simple web page?
I hate the font too, but I guess that's kind of part of the joke
Click the "Simple Style" button at the top right ...
Yeah, that's what I said.
/mea culpa/

I used to pay a lot of attention to who said what, but realised I was pre-judging comments based on what I'd seen people say earlier, and dismissing people's comments prematurely. So now I usually don't read the usernames because I find that tends to prevent me from judging a comment on its merits.

I didn't realise it was you that made that comment earlier ... sorry.

No stress at all! I wasn't offended but thank you!
nice list but i would simplify it. a lot of those are just good character traits.

for me "1x" or average is just someone who does the minimum but tries to do it well and professionally.

not proactive or overly opinionated. basically the 9-5 man (or woman).

> Writes code that &emdash; gasp &emdash; has bugs.

Bug intended? :)

(comment deleted)
What point is this trying to make, exactly?
My interpretation: that many of these qualities are admirable and useful, but are sometimes sacrificed in a quest to become (or be seen as) a 10x engineer.
That there's no shame in being a 1x engineer. Some people have different priorities in life and that should be ok.
Seems like I'm a 0.01x Engineer lol; I lack so many characteristics from the list to call myself "1x Engineer".
The list is depressingly "ableistic".
What are some things from the list that you or others might struggle to with?

I am interested in making development easier for my colleagues, just as I am interested in accessibility for the web.

A lot of this is just good advice about how to be a good teammate, regardless as to your talent or productivity level. A 2x or a 10x or a 100x engineer would do well to adhere to most of these points as well.
Yes, I think that's entirely the point. A lot of the dialog around the whole "10x" engineer thing is toxic arrogant bullshit by people with big egos who may or may not actually be able to back it up with code, but definitely look down on you for not being like them and probably aren't good teammates because of it.
Love the manifesto!

I get that the font is part of the joke, but it's unreadable to the point of being an accessibility issue. I have 20/20 eyesight with glasses, and had a mild headache by the time I got to the end. I like the idea, but feel that dialing it back sightly would be a worthwhile tradeoff :)

There is a button at top right ...
So?
The button in the top right solves the font problem that was brought up. This is not a sarcastic joke about being able to close the browser. There is literally a button in the upper right of that website that switches to a much more readable font.
There is, but this is a novety website meant to be shared around with the goal of making an immediate impression. And I didn't even notice the button because everything else is so in-your-face
* Can’t talk about their profession without the subtext that high performers are necessarily problematic.
It's an unfortunately common sentiment: some of us like programming in their free-time : ^ )
Hear hear. I really don't care about the source of the feature I'm looking to implement, when I'm programming, per se. As long as I get to use the most modern tools and have a motivating reason _at_all_, I tend to program every day within my free time.
What is the goal of this page? To make someone struggling with feeling that they aren't "10x" feel better? To define the good attributes of a standard engineer? To mock the idea of the "10x" engineer? All of the above?

I don't find it particularly effective at any of these. And let me join the chorus of folks saying; don't use Commodore 64 font. It's very inaccessible. Putting a button on the page to "fix" the problem you deliberately caused is a good indication you should't have done the thing the button fixes.

Based on the cursor, and my own experience with it, he's actually probably using https://github.com/nostalgic-css/NES.css/ so technically "NES font". But I do agree that it makes this less readable AND less respectable in the end. It's like writing a manifesto in Comic Sans. Serious topics deserve more serious fonts.
The tone is very weird: not quite passive-aggressive (yet oddly specific in a way that evokes the suspicion of that), and not very helpful, either.
It reads to me like a combination of "don't feel bad for doing <x>" and "don't ever do <x>", which leads to tonal whiplash. The potshots look to me more like common sins of the nerding class than passive-aggressive indictments of a particular subset of it. I think there's something good here, but it would benefit from separation into "dos" and "don'ts" lists.
It's interesting, it looks like some people feel insulted by this page, whereas I found it awesome!
Yeah, I found this weirdly useless in the same way. I think it's simply trying to say "we should do our jobs, not stress about being rock stars, and not be assholes or gatekeepers". It's a mix of some solid traits, some pissing on gatekeepers, and some self-deprecation that doesn't add up to a coherent story.
I mean, can a x10 engineer read and update the docs too or is that only for the 1xs? I too am not too sure about many points in this list ... and also the point this page is trying to make.

We are all average engineers in the end, there's always someone more productive, with more experience, with more dedication, with more energy ... somewhere in your organisation. As long as the organisation can keep a learning and collaborative environment and the assholes at the door, I welcome as many 10x engineers as they will fit the room. But then if all your peers are 10x engineers ... they become 1xs ?

This reminds me of a former coworker. He would occasionally make mistakes, and was an okay programmer (in terms of writing code that'll scale). That said, he was an invaluable _team_ member who more than made up for his technical shortcomings by fostering camaraderie. I learned a lot from him in terms of how social environments can influence efficiency.

By contrast, we've all encountered good engineers who have brought down the efficiency of entire teams with their repulsiveness. This is particularly problematic if their technical ability doesn't exceed their costs to group efficiency.

P.S. I didn't find much issue with the font, and liked the ability to switch to a simpler style.

> we've all encountered good engineers who have brought down the efficiency of entire teams with their repulsiveness

I think the only people who would call such an individual a "10x" are themselves....

While I get the thrust of the manifesto, anyone who could with a straight face check off every last one of those is well on their way to at least a "3x", in value for the company if not pure engineering talent. It would be nice to live in a world where that is just baseline professional behavior, but it really isn't. And in the defense of the people who may trouble maintaining that level of behavior, that's really a pretty high bar to meet for a human being.

Trim that thing down to maybe 4 or 5 things and we could perhaps call that a 1x baseline.

> on their way to at least a 3x

I'd say this is getting pretty close to a 4.5x /s

I don't like how this document buys into the "asshole genius vs kind regular worker" false dichotomy. I'm basing that on the reference to this tweet [1] in the repo, and especially the follow up [2]. Some engineers produce 10 times more value than others. Some engineers are kind. Some engineers produce the same value as others. Some engineers are assholes. I very much doubt there is a correlation between "asshole" and "producing more value", as I doubt there is a correlation between "producing average value" and "kind".

[1]: https://twitter.com/devblackops/status/1149883098567331840

[2]: https://twitter.com/devblackops/status/1150115483380621313

“10x” is something you do, not who you are.

If you’re interacting with someone who is self-described as “10x”, you’re almost certainly talking to an asshole, and a lot of their time will be all about gorilla chest-thumping and establishing their 10x-ness.

> Is not defined by the computer they're using.

Couldn't hold my laugh on this one.

Honestly, a 10x engineer can do most of the list, but better. It's common misconception that if a person excels at something (s)he must lack in some other capacity. This is not true - there are extraordinary people that are insanely good across the board. They solve problems with unnatural speed and cunning, can explain complex things to 6 year old, really nice and social and love all programming languages (the last one maybe not actually).
I dont think the post mentions anything about what 10x engineers do or don't do. It's just a list of things normal people do.
I feel like these labels don't really help anyone. Everything on the list is stuff anybody should strive to do, except copy-pasting from Stack Overflow ;)
I think that's the idea? You don't have to be a "10x engineer" to be useful and productive.
I feel like this misses the point. And then a lot.
The "there's no such thing as a 10x engineer" crowd forgets or dismisses that there's a distribution of engineering talent and capability.

You can even find examples. Fabrice Bellard immediately comes to mind.

John Carmack. Donald Knuth. Casey Muratori? Linus Torvalds.

"There's no such thing as a 10x engineer" people probably haven't seen a normal distribution before.

(comment deleted)
>people probably haven't seen a normal distribution before

And yet there aren't 17 meters tall people (avg adult male height back home is 1.7m)

Mind you, I consider the whole discussion stupid since it's an intellectual/creative job

Every. Single. Instance. Of trying to measure such things has failed at producing consistent results or results with predictive capability.

Talking about X times engineer makes no sense when you don't even know what a 1x engineer is.

Knowledge work is much closer to a power law distribution than a normal one. That is, there are indeed a handful of 10x engineers, but it's not a ton of 1x and some 0.1x. It's overwhelmingly 0.1x. This paper does a good job of showing just how dominant the 10x are in areas with unambiguous and legible outcomes (tenure of politicians, number of Emmy wins, etc.)

http://www.hermanaguinis.com/PPsych2012.pdf

I'm convinced the 10x engineer doesn't exist.

It's not that the 10x engineer is a myth - it's a fallacy. You'll find that people in the same profession (any profession) will have variance in their abilities and their return to a project, but it's a big leap to assume that someone that appears to perform much better than their peers is actually doing so in any objective sense.

The 10x engineer is more likely than not the person most familiar with the project and the codebase, knows the real reason why Mark didn't just put everything on Kubernetes or why Tanya didn't want to switch from React to Vue before leaving the team.

Or.. it's an engineer that has the ear and the faith of higher-ups in the organisation to deliver results because they're good at convincingly taking credit for them.

Generally I find that 10x engineer on here means "knows more than most about [tech stack X]" and can work quickly. That's cool if all other things are equal, but I've had to clean up more than a couple of catastrophic messes left in the wake of people that worked quickly.

Just to pre-empt someone telling me I must never have met a real 10x engineer or some other such dismissive response - I'm an average fish in an average pond. I've had people tell me how good I am in the past, both reports and managers, and have in both cases corrected them politely that I've just had more time with the problem/project/codebase than others have.

Anytime I hear someone talk about 10X engineers, let alone describing themselves as that, all it makes me think is that there's a failure of humility.

None of this belittles Fabrice Bellard. Or John Carmack. Or Chris Lattner. Or [known and respected programmer]. Their achievements speak for themselves.

You could give names of people in the field all day. There's a lot of us around. How many of the self-described or colleague-described "10X engineers" floating around are Linus Torvalds?

I've managed many "10x" engineers. They do exist. These engineers I'm thinking about not only are amazingly productive but solve problems average engineers can't solve no matter how much time you give them.

Their solutions are elegant, performant and survive design changes. Their code is easier to maintain. Paying 2x the average to these people is a steal,as they are a LOT better than that. Not sure how much, but I'd rather have one of them on my team than 3 average engineers (probably more).

I'm not saying average engineers aren't useful workers. They are, they get things done if they aren't incompetent. But they are nowhere near a 10x engineer.

10x engineers aren't perfect. But they are amazing nonetheless.

If you have never worked with one, maybe it's because you had bad luck, haven't been around long enough or haven't worked in great teams. Whatever the reason,once you meet a 10x, you will know it.

> Just to pre-empt someone telling me I must never have met a real 10x engineer

That should save us some time.

> Whatever the reason,once you meet a 10x, you will know it.

Guess not.

So let's see if I have this right.

* You've never met a 10x engineer, and you can reason clearly and cogently as to why they don't exist, so you conclude that they don't exist;

* Someone ... indeed, several someones ... tell you they they have met, worked with, and/or managed people who really are 10x engineers;

* You say that these people must be wrong.

This feels a lot like the biologists who wrote - convincingly - that kangaroos can't exist. They'd never seen one, and gave completely water-tight arguments that the method of locomotion was inherently impossible.

I think it might be more apt to say that there are "10x employees" because it doesn't just apply to engineers. A small minority of people are just freakishly good at what they do (whatever that might be).
Why a mythical guy like that would choose to be managed by a "lowly" 1X?
Why does it have to be ‘mythical’ and ‘lowly’ and why should that matter? Managing is a different role than engineering, even though there can be overlap.
(comment deleted)
I always thought the 10x came not just from superior skill, but from the particular instinct and ability to write small programs that help you write big programs.

This computer-aided leap in output actually does separate software engineering from every other discipline except things like pure math.

This I can actually get on board with - but wouldn’t you agree that this would really just fall under “good engineering?”

The use of specialist tools to increase output happens in hundreds of other careers and I’m sure it just falls under learned knowledge of the craft.

good engineering... sure.

But I'm not sure there are any other disciplines where a single person does it regularly.

I think the difference is we're not dealing with anything physical. A structural engineer never has the leeway to invent new ways to build bridges while under deadline. Maybe some ingenuity and process improvement along the way, but nothing like 10x on any single project.

I agree, is a complete fallacy, 10x engineers spend 10x the time solving whatever problem they have. People often confused domain knowledge(gotten through spending time on it, while other were having kids, dinners, you know, ... a life) with genius or exceptionalism.
Nope. Not at all. It sounds as if you have never worked with a 10x developer. I have. More than once. They simply are better than all the rest. If that makes you angry then ask yourself why that is? There are 10x performers in any field. Think sports, business, politics etc. So why not software?
> The 10x engineer is more likely than not the person most familiar with the project and the codebase,

Nope.

To whatever extent they actually exist, the 10x engineer is the one who starts without a codebase, and creates one that is elegant, flexible, extensible and performant, avoiding mistakes and working faster than most of their peers would. They build a platform for their successors to work with that enables more than it impedes.

If you've never seen this, then fine, but that's most likely because you've not been around during the prehistory phase of a given codebase.

I’ve absolutely worked on projects like this, but I would suggest that how clean or well designed the codebase is really isn’t put to the test until the creator leaves and others need to maintain, which is usually when the groans and eyerolls start if they are going to happen.
>there's a distribution of engineering talent and capability

I think the debate is over the properties of that distribution, and whether it needs to be plotted on a logarithmic scale

What I never understood about this debate is that surely these people realize that LeBron is 10x better than some other NBA players. Why can't the same apply to engineers?

Personal anecdote: I've worked with 10x, 1x, 0x, -1x and -10x engineers, and everything in between.

Agreed. Reflecting on the list, many aspects have to do with teamwork and cooperation. I’d go so far as to say the real 10x folks should strive for is 10xing their coworkers. If a 10x engineers is as good as 10 engineers, a 10x team of 5 may be 50!
From The Tao of Programming - Book 3 - Design - Section 3.4

> A manager went to the Master Programmer and showed him the requirements document for a new application. The manager asked the Master: "How long will it take to design this system if I assign five programmers to it?"

> "It will take one year," said the Master promptly.

> "But we need this system immediately or even sooner! How long will it take if I assign ten programmers to it?"

> The Master Programmer frowned. "In that case, it will take two years."

> "And what if I assign a hundred programmers to it?"

> The Master Programmer shrugged. "Then the design will never be completed," he said.

---

10x programmers are just as susceptible to Brooks’ Law as the regular programmer is.

I believe part of the 10x factor is the ability to hold a larger part of the problem space in one's mind. Having developers that overlap in that without a single vision (thus the importance of the surgical team approach), brings out the worst case of Brooks' law with more interaction needed to keep things in their scope.

That have not been my experience so far, every time I see a "10X engineer" (worked at several big tech companies) either they have been working in the problem for years or they put 12+ hours of works every day.I don't believe in geniuses myself, never seen one. There are for sure incredible people who have done great things, but you can clearly see, they lack in many other aspects of life. Also, note, that most of those people are not really interested in the "other aspects" of life, but as a complete human being, they have an unbalanced life, obviously, because you need time to develop skills.
I have worked with 10x developers that were lazy and only really worked a few hours a day. And they still dramatically outperformed everybody else. Their code was simple and 99.999% bug free. So they spend all their time moving forward, delivering feature after feature, while the rest spent 90% of their time fixing bugs and other self-created problems.
Maybe the bar in the team was very low, and that person is just normal, and only have to work that little to do better. When you get to a place where every team member is very good, the 10x engineer cease to exist. I'm sure there are very good engineers, but I doubt 10x is really a thing. I'm yet two find someone that will 10x another person with the same age, educational background, and communication skills.
That might be your experience but not mine. I have been luckily enough to work with really good people most of my career. For example, people I worked with who were good but not 10x went on to work for Google. So are you going to claim that 10x athletes, 10x business people, 10x chess players etc. doesn’t exist as well? And if not why would software development be the one exception from all the rest? Also, perhaps ask yourself why you desperately want it not to be true? What does that tell you about your own self-confidence/ambitions?
I think the 10x thing is about perception, I worked with Principal Engineers at AWS who designed products used by millions, and now similarly at Google, and they just have a ton of experience in a niche area and can leverage that well, with excellent communication skills and vision, but they are not 10x , i would say 1.5x at best. Now, if you think the senior guy on your team is a 10x-er because he knows all the little tricks of Ruby on Rails, or is parroting Martin Fowler non stop, or is the type of person who leave 20 comments in a PR about spacing , code style, etc... then yeah sure, each person can believe whatever. If you want to make the case the true best of the best don't come to FAANG, then I really dunno what to tell you. And regarding your analogy about other areas of life, software is different, software is not a single player game. And lastly, I don't care really, I worked with brilliant people on products used by millions, I feel lucky to work with them, and they too think the 10x engineer thing is a myth.
(comment deleted)
Look you and your team clearly wants to believe that nobody in the world are better than you. That’s fine. A bit arrogant perhaps? But if it makes you feel good about yourself then why not? No harm done as far as I can see.
Yeah, this article seems to be bashing the concept of the 10x engineer. I know engineers who I'd define as 10x who are equally excellent at all of these items as well.

If anything, this is just a general definition of an engineer.

Now, someone needs to make a similar website for the 0.1x engineer.
1. browses hacker news all day 2. still believes Tesla FSD is just around the corner 3. Uses tabs for indentation
0. Writes a numbered list all on the same line.
I like this list! I try to live up to many of them but fall short :-)

One thing I don't understand the point of juxtaposing it against a high-performer. No human is going to be good at all of these things at once regardless of their efficiency or ability. Even if you could churn out bug-free code at an unbelievable rate it would not matter if your soft skills suck.

Personally, I'd call this the "shepherd coder" (vs. the "cowboy coder").

Is willing to leave their comfort zone.

JavaScript single page apps are my comfort zone, and I will not sleep until every single dev is here with me. I am not leaving. It's very comfy.