How To Be a 10x Engineer
2024/03/24
John
![](https://coyote.tech/img/10x-engineer.jpg)
A 10x engineer is defined as someone with the effectiveness of 10 average engineers.
While the idea is a bit of a meme, and debatable if it practically exists. There are some actionable concepts you can apply to your own career to 10x yourself.
My background is in electrical and hardware engineering, and I later transitioned into software, so I have had the privilege of working with a broad spectrum of teams and organizations.
Some of this may seem trite or cliché, but that’s because it is good advice!
The most effective people I have worked with have had the following behaviors and qualities in common:
1. Become a master of your tools
Whether it’s your EDA suite, your code editor, or your shell. Make it a priority to master the tools you use on a daily basis. The more efficient you are, the less internal resistance you will have towards turning your ideas into reality. If you use Neovim, master vim motions and find plugins to make you more efficient. If you use VSCode, learn the keybindings and extensions that are available to make you faster. In software development, as a general rule, the less you touch your mouse, the better. Always ask yourself if I can do xyz more efficiently, and you will quickly find the best path forward.
2. Get Organized
This follows along with mastering your tools, but being organized pays dividends daily. Manage your schedule, take diligent notes, and off-load the cognitive burden of trying to remember everything to something like a Zettlekasten (emacs org-mode, obsidian, neorg, etc.). Developing your own Zettlekasten is a great coding project! You have a limited amount of brain-power to use daily and the more you can save for your actual work the better.
3. Communicate
“No man is an island” - this is especially true in engineering. Products are built by teams, not individuals. The best engineers know how to communicate effectively, and collaborate with others. If people skills are not your strong suit, make this an area of focus. It will pay off in job interviews, and ultimately career-advancement. Gone are the days of the “rockstar programmer”. Managers and teams expect team members to fall inline and work with the group. “A rising tide lifts all boats”, if you see members of your team struggling with technical problems, reaching out and offering guidance will boost team morale and make everyone more effective.
Seek Mentorship
A subcategory of communication, seeking mentorship is important for your growth as an engineer. You can learn something from anyone, and you should be seeking to do so at every opportunity. Become a sponge for information. Good mentors may not always be available in your organization, but you can find them indirectly, online, or in open-source projects around the world. There are thousands of brilliant people working hard daily to keep FOSS projects running. Find someone you admire, or someone that is where you want to be in 5+ years, and follow in their footsteps. A personal hero of mine is George Hotz.
Ask for Feedback
Also within communication, you should be soliciting feedback on your performance from your manager and peers regularly. In a corporate environment this generally happens in annual or quarterly reviews. But you can do this any time. Negative feedback, while painful, can help you improve faster. So don’t take it personally, use it as fuel to improve!
4. Challenge Yourself
Take on projects outside of your wheelhouse, pushing the boundaries of your comfort zone is where you will see the most improvement. This is true in life in general. Volunteer for hard projects at your workplace, immerse yourself in the problem you are trying to solve and develop a path forward. Communication helps here, you can lean on the senior members (mentors) of your team for guidance.
5. Seek Failure
Do not be afraid to fail, take ownership of your failures and learn from them. Fail your way to victory/success. It is through failure that we learn the most. In a corporate environment, be transparent about what you are trying to do upfront, potential pitfalls, etc. And more often than not, your team and leadership will be supportive if things don’t work out as planned. This ties into communication.
6. Do it Badly (Do Not Be a Perfectionist!)
Perfectionists rarely get things done. Do not let perfect be the enemy of good. In all likelihood, you aren’t developing a medical device or a computer for an airplane. Getting something done is far more important than getting something exactly right. Do it badly is a affirmation I like to use to prevent paralysis by analysis. Your first iteration of any project is likely going to suck. Accepting that and moving forward anyway is how productive people operate. Preemptively trying to optimize every single thing will ensure you never finish. Instead do it badly, get it done, and iterate. The second, third, and even fourth iterations are where the real magic happens!
7. Operate from First Principles (Learning Fundamentals)
Engineering, by definition, is building useful systems from underlying scientific principles. These principles lay the foundation for what we are trying to do. We must know (and master) the fundamental concepts that define the domain in which we operate. In software or IT this could mean understanding the OSI model and the protocols that operate at each layer. As a web-developer you should ideally understand how the HTTP protocol works, or a TLS handshake, to the point where you could reimplement either of them yourself. This level of understanding will set you apart from your peers and allow you to truly innovate. It’s difficult to produce real innovation when you are just gluing frameworks together.
8. Don’t Reinvent the Wheel
As a counterpoint to operating from first principles do not needlessly reinvent the wheel. Often, in the business world, all that matters is shipping the product. Salespeople and project managers are largely indifferent to the technical soundness of a project beyond “does it work?”. Do not waste your time (or the company’s) redoing work that has already been completed to a satisfactory level. If you want to rebuild HTTP from scratch, do so for your own education.
9. Remove Distractions
Applying a level of discipline to your working hours and workspace can pay dividends when it comes to your long-term success. In the current world we live in, distractions are everywhere, your attention is a limited commodity, and millions of people and services are vying for it. Create a distraction-free workplace for yourself, put your phone on airplane mode/do not disturb, and get to work. Techniques like using a Pomodoro timer can be helpful here. Your brain needs a break every so often, and your net productivity can increase if you are disciplined about it.
10. Be Passionate
The engineering disciplines can often pay well, and this attracts people that may have only chosen this career path for the money. If that is you, don’t worry. You can still be successful, but you need to find something within your domain to be passionate about. Otherwise you will never be as dedicated as someone who would do this for free. Personally, I love what I do, and the money is a side-effect. The most elite engineers I have known all had this quality in common. That passion is what fuels you on the deathmarch to release a product, or the late nights troubleshooting an issue. It inoculates you against the inherent stress of these jobs. Find or develop your passion and it will take you far!
If you got this far, thanks for reading! If you found this useful, send it to your friends or repost it. If you’d like to work together contact me here.