I was once considered a 10X. I would work all night. Rewrite code simply because I found it objectionable - lots of things I'd never do now. Mostly after working those long hours I return after a long rest and spend most of my time fixing all the new and ridiculous problems I created while working tired. Things may have gotten done a little faster. Never once did it even matter - there was no material benefit to the company. Projects still got canceled - team deadlines still missed - products still had bugs - company focus changed blah blah blah.
Focus is a supper power. Not getting diverted with trivial shit. Don't get distracted , avoid creating more work for yourself and others. Todays me would find yesterdays me a -10X annoyance.
Tbh this seems to be implementing a demo of something he had complete understanding of prior.
Yeah, he was at Google at the time (https://norvig.com/resume.html) so he was probably involved in the original development of the thing he was making a demo of.
He's definitely smarter than me with that CV but this particular project doesn't seem like some insane productivity achievement.
Yes - Dr Norvig is exactly the type of expert I would often engage to figure out difficult problems. Ask him how to configure a Nomad cluster and he would likely say "What is a Nomad cluster do?"
Writing and debugging production code is a different skill set. Finding the optimal algorithm is useful but not the same as releasing it into the wild which may require maintaining backwards compatibility, work arounds for bugs in other code or hardware bugs that can no longer be fixed at the foundry - the list goes on.
The vast majority of work programmers do 10X or otherwise is not greenfield where you get to pick the programming language you have 10K hours of experience using, the best hardware or an unlimited budget of money and time.
Now I would consider Dr Norvig a 10X educator. That program demonstrates how a decent knowledge of algorithms and math can take a relatively complex problem and make it tractable.
Just because he's brilliant at writing green field code to solve problems like this one, doesn't imply he's incapable of producing production code when required.
Never meant to imply that he could not. He is a far more accomplished programmer than myself. Simply pointing out that he is an expert and his skill set is unique and in someways quite specialized. He may be considered 10X in his domain - maybe not so much outside of it. Programmer/Software Engineer are broad terms.
I use his sudoku solver design to learn new languages and as an example of intrinsic versus accidental complexity.
Uncle Bob tried and failed to use his own strategy of many small functions to solve sudoku. There’s been a lot of Trough of Disillusionment talk about him lately. My impression of him is that he’s got the right code organization idea but for the wrong reasons, and so his ends often don’t justify his means. It’s a common pattern in software to guess the wrong reasons why something works, and then overfitting to the wrong reasons.
this is crucial. from my own productivity I know that I can function at 1X or 10X depending on my focus.
being a great engineer requires practice most of all, and the consistency of focus during that practice will impact its value.
in my experience, engineering is all about efficiency, and as i have developed over time the scope of factors i take into account when calculating the efficiency of something has increased. in the beginning i only looked at the technical details of the implementation, and then over time that expanded to considering maintainability, team co-ordination, business objectives, etc.
the potential scope here is unlimited. when you start, just making something compile takes all of your focus, but over time as programming becomes reflexive you are able to expand the factors you take into account far beyond the immediate code, and it seems trivial by comparison.
Engineering is all about effectiveness. Not efficiency.
Focus is great for slamming out a bunch of code that everybody else hates and has to tiptoe around you about because focus also made you so goddamned proud of your monster. Slow down and check the signposts before following your good intentions all the way to the end.
effectiveness, professionally, is creating value for your clients and employers. the ratio of value to cost is how efficient you are as an engineer. it is all efficiency.
I think you need to pay more attention to the contexts in which your coworkers and bosses use the word efficiency. You’ve got a good definition there but you’re not often in good company.
To management the two directions look the same. They probably held a ceremonially ritual where they fired the person who was dragging things back 1x in the right direction.
My experience is that people tend to fill the time they give themselves to do things. Give yourself 12 you take 12 hours. But humans have a limit to the focused productive work they can do. Lets say it is 4 hours. So of that 12 hr - 4 was really productive and 8 not so much. When I was at my tiredest I often spent hours trying to debug issues that literally took me minutes when I was rested.
One time I worked so many hours I lost vision (temporarily) in my eye - called cotton wool spots. I was a generally healthy younger guy. Working this way has health effects. If in fact there is such a thing as 10x engineer - how long do you think you will stay 10X once your health deteriorates. Just my 2 cents.
3. There's always that one person whose only ability to contribute is to cheerlead the others... and some nerdy types take a long time to figure out you don't need to listen to them or tie your fate to them.
If you work twice as long as most, make code which is dubious/broken, take initiative out of sheer personal opinions and have to spend time the next day fixing your mess, that would be the definition of a 0.25X programmer.
It took you 4 times as long to bring value to the company, you had lot of enthusiasm but were not using it right.
Being a kX (k > 1) means that you need to work fewer hours to accomplish the same amount as an average developer. If you then got to spend more time to fix your stuff, that counts against your time budget.
10x is mostly theater. I’ve worked with 3x engineers that made everyone else better, and 3x engineers that make everyone else much worse. 4 times out of 5 a manager will point to the latter as 10x because he is getting so much more done than the people he has crippled and been loud about it the entire time. The former does well when their boss is that 1 in 5 person, but they are often fucked if the boss leaves.
This sounds like a management failure more than your failure. You should have had someone who would have steered you in the right direction, getting you to focus your energy on things that mattered.
I like to think of my ideal mythological 10x as someone that does less.
What would a 10x engineer do at any of these companies pushing bloat in their products? How do you keep the software clean even as it becomes successful, millions of dollars and jobs change the ethos of your organization, but you are tasked with preser ving.
A 10x engineer at msft would have avoided notepad being modified.
A 10x engineer knows how to stop the forces that be, from adding an "ai" feature, where it clearly doesn't belong.
I’ve had too many experiences of starting a project at noon on one day and getting fixated on finishing it and failing, then after some sleep and reflection ripped half of it out and finishing the new idea before lunch, which isn’t even my most productive time of day.
If I’d had this perspective the day before I would have been finished before 5. But I got wrapped up in thinking I was close and I should have stopped for air.
>I was once considered a 10X. I would work all night.
You are part of the toxic culture until you realized that was that it is overall counterproductive. Collectively we software developers are to blame and no one else.
Focus is a supper power. Not getting diverted with trivial shit. Don't get distracted , avoid creating more work for yourself and others. Todays me would find yesterdays me a -10X annoyance.