4 ms·
The "10x engineer" I worked for quit and left me with an extremely over-complicated piece of software to manage. He's a sweet guy and a good friend, but really
by YngwieMalware 11y ago
The "10x engineer" I worked for quit and left me with an extremely over-complicated piece of software to manage. He's a sweet guy and a good friend, but really left me holding the bag because he was not happy.
- Balgair 11y agoAn often overlooked point is made here. If you hire a 10x gal, then to replace her you have to hire 10 people. The question then is: long term, can you afford to hire 10x people?
- StavrosK 11y agoDid they build it? Because I dispute that someone is a 10x engineer if they build overcomplicated pieces of software. A good engineer builds according to the business' needs, maintainability, scalability, and a whole bunch of other considerations. Just building the cleverest thing you can build is poor engineering.
- joesmo 11y agoYup totally agree. That was not a 10x engineer, that was a 1x at best and probably < 1x. Building overcomplicated systems is a sign of a bad or inexperienced engineer and nothing else.
- mrighele 11y agoWhat looks overcomplicated to a 1x engineer may be quite simple to the 10x. This in fact the most painful point to overcome with them: that not everybody is as skilled as them so the software should be designed and written accordingly. In my (limited) experience, those that don't learn this tend to do all by themselves "because the others can't do shit", get overworked and are unpleasant to work with. Those who do are able instead to focus on the most important (and interesting) parts while letting the others taking their boring share.
- StavrosK 11y agoI disagree. The entire practice of development is making simple parts and linking them together in a simple manner to create more complex parts that are still simple to understand at their level. Your computer is extremely complicated, but it can be broken down to parts that are simple to understand in each level. That's pretty much the entire benefit of a good engineer. They know how to make self-contained things whose purpose and interface with the rest of the system is easily understandable.
- emcq 11y agoThis is not strictly true, and happens when complexity is needed for some of the simple lower level parts or due to the libraries and tools available changing over time. For example, lets say the 10x engineer wrote fast inverse square root [0]. Most people would look at the code and not understand what's going on. It requires a lot of domain knowledge but provided nice speeedups at the time. Is it more complicated than necessary for some problems? Absolutely. However when used frequently as originally intended that speedup allows for more compute to be spent on higher level components useful to the rest of the team. It would also be a pain to maintain for those unfamiliar with some of the details but can be well encapsulated into a simple function call in a math library. Thw other case this illustrates is that code evolves and a solution available now to make a system simpler may not have been available in the past. Today the same code for fast inverse square root is outdated in favor of hardware calls, so if observing the code now it is certainly over complicated for the solutions available at hand. [0] https://en.m.wikipedia.org/wiki/Fast_inverse_square_root https://en.m.wikipedia.org/wiki/Fast_inverse_square_root
- tamana 11y agoNo 10x engineer is a True Scotsman. That's why this whole topic is stupid.
- StavrosK 11y agoI am inclined to agree.
- YngwieMalware 11y agoTo be fair, it functions how it is supposed to, it WORKS on the platforms it is supposed to work on (not without bugs, of course), and is not likely to completely fail at any point. However, it is still a crazy, relatively unique mess for me to figure out alone. My life sucks until I can figure it out.
- Grishnakh 11y agoIt sounds like you're measuring the "nx engineer" factor by lines of code. That's not what makes someone a top contributor.