# Become a 10x Software Engineer: Avoid These Common Pitfalls
Written on
Chapter 1: The Reality of 10x Engineers
10x engineers are a reality, unlike mythical creatures. Exceptional engineers can produce ten times more value than the average coder. They operate like a one-person army, achieving greater results independently than a group of less experienced engineers combined. But how is this possible? Isn’t quantity always superior?
During my tenure as an engineering leader at Netflix and Amazon, I've interacted with everyone from fresh graduates to principal engineers (L7 and above at Amazon). I've witnessed firsthand that 10x engineers exist, and they don't achieve their status by simply:
- Typing ten times faster
- Working ten times longer
- Writing ten times more code
Surprisingly, 10x engineers might type slower, put in fewer hours, and often focus on eliminating unnecessary code rather than just writing more.
While it's true that 10x engineers often excel at coding challenges, their real distinction lies in their mindset. They utilize the right tools, ask pertinent questions, and know how to prioritize effectively—skills that even non-technical individuals can cultivate.
In this section, I will outline three frequent mistakes junior engineers make and demonstrate how a seasoned engineer would approach the same challenges, yielding significantly different outcomes.
Section 1.1: Mistake #1 - Inadequate Tool Exploration
Abraham Lincoln famously stated, "If I had eight hours to chop down a tree, I would spend seven sharpening my axe."
In contrast, a junior engineer might spend eight hours struggling with a dull axe. A senior engineer, however, invests one hour selecting the appropriate chainsaw and only five minutes chopping the tree.
Many junior engineers tend to dive into coding without sufficient research. They rely solely on familiar tools and try to adapt them for every scenario. For example, if an average engineer only knows how to use a hammer, they might use it to dig a hole.
They often spend minimal time exploring alternatives—sometimes even overlooking the possibility of accomplishing a task without writing any code! Using the right tool can drastically reduce the time needed to complete a task, creating that coveted 10x difference.
Example Task: Building a Website
Recently, I bet a junior engineer on who could create a personal website more quickly. The newcomer took two weeks and produced over 1,000 lines of code, yet still didn’t finish!
In contrast, I completed the task in just one day without writing a single line of code. The result can be seen on my homepage.
When I inquired about the junior engineer's process, it became evident why they struggled. They mentioned, “I learned how to create a React app in school, so I built a website from scratch. However, getting images and CSS right was a challenge, and I was uncertain about deployment. I thought I had to write a custom script on AWS but got confused by the console.”
Their approach lacked critical discussions about:
- Requirements (e.g., SEO, commenting, using pre-built templates)
- Alternative tools (they only knew React and AWS)
Envision trying to create commenting features from scratch or ensuring SEO functionality—each of these tasks can require a team’s effort to implement correctly.
Section 1.2: Mistake #2 - Hesitation to Ask for Assistance
This issue is straightforward to address yet leads to a significant waste of time. Some junior engineers harbor the misconception that senior engineers are solitary geniuses who can solve problems independently through sheer determination.
This perspective is simplistic. Often, the difference lies in context—information that cannot be deduced without asking. Instead of seeking help, they may fixate on the same lines of code repeatedly, while a quick five-minute question to a colleague could resolve the issue instantly.
A less experienced engineer who knows how to ask for assistance will outshine a more talented engineer who does not. Recognizing when additional context is necessary is crucial. For example, understanding:
- The rationale behind the code structure
- Which API to call from another team
- How deployments function
These scenarios illustrate situations where asking for help is more efficient than delving deeper into the codebase.
Chapter 2: Mistake #3 - Failing to Deliver Business Value
10x engineers are primarily investors. They recognize that their work is an investment, and the benefits must significantly outweigh the time spent. They comprehend opportunity costs: time spent developing one feature is time not spent on another.
Engineers must consider opportunity costs—"Among all the features you could create, is this the most effective use of your time?"
They understand that coding is merely a means to an end—a business goal. If they can achieve their objectives without writing any code, even better! It saves time and reduces the amount of code that needs to be maintained, creating a win-win scenario.
I often observe new engineers lose sight of these business objectives. Here are a few examples:
- "There's a new technology that looks exciting. Let's spend five days integrating it into our website." (No alignment with product goals)
- "I don’t like the code structure. Let’s dedicate the next sprint to refactoring." (Opportunity cost—should this time be spent on revenue-generating features?)
- "This platform is outdated. Let’s migrate to a new one." (Does this migration significantly enhance speed or is it merely incremental?)
It’s this analytical approach that fosters the emergence of a 10x engineer. If a junior engineer invests two hours in a complex feature that doesn’t boost revenue, while a senior engineer spends one hour on a simple change that increases revenue fivefold, we see a tenfold improvement in productivity.
Final Thoughts
Non-technical skills (the so-called "soft skills") are what set the strongest engineers apart from the rest. Even if an engineer avoids all the previously mentioned mistakes, being difficult to collaborate with can nullify their 10x potential.
You’ve worked hard to become an engineer. Remember, being an engineer is significantly more challenging than simply avoiding unpleasant behavior. Don’t let your efforts go to waste due to ego. Always keep in mind that engineers must prioritize delivering value above all else.
Want more career insights?
Join over 2600 subscribers on my newsletter to receive my articles for free.
I share articles bi-monthly. Connect with me on LinkedIn and Twitter to stay updated. Explore my other social channels here. Cheers!
This video discusses the qualities that make a software engineer a "10x engineer," highlighting key strategies and mindsets.
Learn how to correctly embody the traits of a 10x engineer, focusing on practical approaches and mindset shifts.