DEV Community

Cover image for How to Become a 10x Dev

How to Become a 10x Dev

abdessamad idboussadel on November 25, 2023

Nowadays, everyone wants to be what we call a "10x developer." However, this term is often misunderstood and overvalued. In essence, a productive ...
Collapse
 
explorer14 profile image
Aman Agrawal

So just use more tools to become a 10x dev? πŸ˜€

Don't get me wrong using the best tools for the job is important, but if you want to be 10x effective then the following are crucial as well:

  1. Ability to communicate complex ideas to tech as well as business audience to build alignment and get important plans executed
  2. Spending time understanding the ins and outs of the business domain you are solving problems for so you can solve them better instead of being a "feature factory"
  3. Coaching and mentoring engineers to up level everyone around you so that team doesn't have a single point of failure on the one "10x rockstar engineer" (remember Dennis Nedri from the first Jurassic Park movie, the plump computer nerd that brought down the park as he bailed out? πŸ™‚)
  4. Ability to see the problem in the abstract and being able to lead the design of a concrete robust solution that fits the context and the constraints the best (also known as architecting)
  5. Relentless pursuit of continuous improvement and learning. Reflection is a big part of this and comes in various forms (ADRs, design reviews, technical debt addressal, team retrospectives etc)
  6. Ability to research complex topics, analyse data and synthesise ideas and insights, and make deliberate pragmatic design decisions as a team.
  7. Ability to see the link between organisation design and software design and pushing for better org design (very much related to understanding the business)
Collapse
 
miketalbot profile image
Mike Talbot ⭐

I see a lot of under-engineering in code, over simplification without a view for the future and an understanding of the final goal. YAGNI - you ARE going to need it.... Most good choices are about understanding what is needed in architecture and what is not. 10x is about this for me. A senior attitude not a junior. A focus on the result not the process. Functionality over linting. Users over developers. Execution over elegance.

Collapse
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
Sloan, the sloth mascot
Comment deleted
 
Sloan, the sloth mascot
Comment deleted
 
Sloan, the sloth mascot
Comment deleted
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
spo0q profile image
spO0q πŸ’

Very well put.

Collapse
 
yutamago profile image
Yutamago

"My code looks like shit but it works. Leave me alone."

Collapse
 
miketalbot profile image
Mike Talbot ⭐

I was suggesting a balance, one that favours functionality over form. If your code looks like shit and is unmaintainable then you've broken multiple of the rules I listed.

Collapse
 
pierrewahlberg profile image
Pierre Vahlberg

A lot of time a "good" developer, that some refer to as 10x, is versatile and dynamic in the setting, tools, contexts and project groups you put him/her in. What separates these people are primarily problem solving skills, understanding of needs, requirements and context and an ability to not just implement but to discuss options and reason the way to the best solution.

A 10x developer could be spending more time in notepad or a whiteboard than anything else just to hash out, illustrate, orient and pivot theoretically with the team and THEN build the right thing one. What you moreover refer to as a "fast developer" in this article is a solo code monkey who will likely be good at building MVPs quickly but his time will ve spend getting it working instead of having a solid plan and goal that is anchored and therefore having a good understanding of what issues all the tools must solve, making it easier and faster to stack it up to a solution. Think first, communicate with tech and non-tech, and versatility is what I look for in new colleagues.

Collapse
 
ldrscke profile image
Christian Ledermann • Edited

I agree with Bill Eager when he argues in The True 10x Engineer:

The True 10x Engineer is an empathic, collaborative engineer who understands that helping others doesn’t come at the expense of their own achievement or professional development. In fact, it’s the richest way to augment it.
Outdated and harmful misconceptions about engineering excellence have given rise to the stereotype of a 10x Engineer who is standoffish, siloed, silent, and selfish. To the unenlightened, this engineer seems like an asset to your engineering team, but they’re really a ticking time bomb. Ultimately, the gains in productivity you get from this type of engineer will be wiped out by their organizational toxicity.

Collapse
 
ldrscke profile image
Christian Ledermann • Edited

BTW in A Tale of Two Kitchens - Hypermodernizing Your Python Code Base I give very similar advice, as you do in this article

Collapse
 
alekswritescode profile image
Aleks Popovic

I get what you were going for. This is a quality article with some very good suggestions on how to become a better, or a more productive developer, but the title is somewhat clickbaity. :)

The original "10x developer" is largely a myth, and even if it wasn't you definitely shouldn't be striving to be one. If you were able to write 10x more code than anyone else and not lose on quality or your own sanity you wouldn't be working as a regular dev anyway.

Your advice is sound, though, especially using existing tools/components/libraries when you can instead of reinventing the wheel. I would be cautions about using AI in office environment though, as your company might be against that for security/privacy reasons.

Collapse
 
idboussadel profile image
abdessamad idboussadel

I said at the beginning of the article that the term is often misunderstood and overvalued. I am not saying that with my tips you will create 10 more projects than a regular dev but IMHO they will definitely help you write clean code, save you a lot of time, and be more productive.

About AI, yes you're absolutely right some big companies like Google forbid using AI for security reasons.
And for using existing components/libraries you should be careful and use tried, tested secure/maintainable, and scalable solutions.
Thank you for your great comment.

Collapse
 
cappe987 profile image
Casper

There are also licenses to take into account. I haven't kept up with the latest versions, but AI could generate exact copies of e.g. GPL licensed code which cannot be used in proprietary codebases.

Is it likely to lead to a lawsuit? No. And it is probably very much a gray and unexplored area. But when coding by hand we have to ensure we don't violate licenses and copyright. Just because AI is doing the work we can't throw any considerations out the window.

Collapse
 
devnaqvi profile image
devnaqvi

Few more:

  1. Always degrade junior developers even if they are telling you the right thing tell them that you have 20 years of experience.

  2. Share rules that you don't follow yourself like Propagate that array methods are slow always use old school loops but use array methods all the time.

  3. Call it interpolation instead of template literals.

Collapse
 
victoreke profile image
Victor Eke

Lol. I've come to realize people who call template literals interpolation usually come from a CS background. Java to be specific.

Collapse
 
devnaqvi profile image
devnaqvi

Maybe, but I guess they come from University of Flex πŸ˜‚

Collapse
 
jmfayard profile image
Jean-Michel πŸ•΅πŸ»β€β™‚οΈ Fayard

This is about typing 10x faster.
That's the wrong goal IMHO

Collapse
 
idboussadel profile image
abdessamad idboussadel

A highly productive developer is often referred to as a "10x dev."
In my opinion, productivity can be boosted through tools like extensions, Emmet, and AI, which facilitate faster typing.
However, mastering Git, automating repetitive tasks, and adhering to the principle of not over-engineering or writing clean code are essential concepts that contribute not only to your typing but also to being a good developer or engineer.
Thank you for your constructive criticism.

Collapse
 
jmfayard profile image
Jean-Michel πŸ•΅πŸ»β€β™‚οΈ Fayard

I understand and I'm not saying all of this doesn't matter.

But consider the amount of coding it requires to yet another bank with its thousands pages of regulations to implement and that no-body really needs.
Imagine you actually do all this coding 10x better than the average programmer.

Compare that to working on creating "git" in its early stage.
Imagine for example that you would have insisted in making "git" and its syntax more straightforward, the tool easier to learn. Imagine that you would have done this work just at average speed.

I would argue that in the second case you would have worked in something with drastically more impact than in the first case.

The second developer would have been much more efficient than the first who wouldn't have been more productive, but still, it doesn't matter that much in the grand scheme of things.

In the second case you worked on the right things in the right team.

That's when you are really 10x.

Thread Thread
 
idboussadel profile image
abdessamad idboussadel

Yes, for banks, for example, you can't use external libraries or speed up the process of writing code, or it will be a mess. You have tools, and you should know when to use them.
It’s not just about writing code; it’s about being the engineer who picks the perfect plan for success.

Thread Thread
 
jmfayard profile image
Jean-Michel πŸ•΅πŸ»β€β™‚οΈ Fayard

What does success mean though ?
I think that doing the right things is more important than doing things right (or fast).

Collapse
 
syeo66 profile image
Red Ochsenbein (he/him)

I think being a 10x engineer has nothing to do with his ability to churn out more code, but everything to do with enabling whole teams to work more efficiently.

Collapse
 
miketalbot profile image
Mike Talbot ⭐

Agreed, it's about delivering 10x more functionality to the user. This is about architecting to succeed and providing an environment where the whole team can flourish. An architect who can deliver a framework where everyone is productive can 10x everyone in the team not just themselves.

Collapse
 
chideracode profile image
Chidera Humphrey

Nice article here, Abdessamad.

I really like the fact of not over-engineering. Over-engineering often cause more harm than good.

P.S: I'm writing an article on over-engineering, including pitfalls and ways to mitigate it.

Collapse
 
manchicken profile image
Mike Stemle

People should develop their skills how they want, but there’s no need for us to chase a billionaire’s propaganda or to work more for the same (or less) money.

There’s no such thing as a 10x developer, and we shouldn’t be working so hard to compete with one another for the distinction of having poured 10 times more blood into the gears of capitalism.

Collapse
 
miketalbot profile image
Mike Talbot ⭐

Perhaps this is more about the individual, rather than the corporation? I agree that no one should punish themselves for someone else's benefit. It's hard to be recognised though if you choose to be average. It's hard to succeed if you don't take a risk.

Collapse
 
manchicken profile image
Mike Stemle • Edited

I don’t find your argument compelling. Not only do I take issue with the characterization of β€œchoosing” to be average, but this cult of the individual is a pernicious trend.

There’s no such thing as a 10x developer, and anybody competing with others in the pursuit this fiction is only playing into the myths of the billionaires, to the detriment of the community around them.

We can strive to be our best selves without wanting our bosses to compare others to ourselves unfavorably.

Collapse
 
davelapchuk profile image
Dave Lapchuk

One thing I don't see mentioned here that's important is making sure the things you work on add as much real value as possible. If you do 100 things nobody cares about and others do 10, still nobody cares. If you do 10 things people actually care about and others do 1 thing of real value then people will notice.

Collapse
 
justnewbee profile image
Jianchun Wang

Agreed on most of your points, except that I think "Don't Over-Engineer" might encourage people to write over 1000 code inside one single file - I see that a lot.
Abstraction is developers' basic skill to avoid code redundancy and improve consistency. And how "over" is "over"? It can be very difficult to tell.

And here are some other points:

  1. Master the skill of multi-cursor editing
  2. Choose CLI over GUI
  3. I think JB products provides more productivity

Cheers ☺️

Collapse
 
artu_hnrq profile image
Arthur Henrique

Hey, great tips! I'll find myself going deeper in some suggestions. Thanks!

Collapse
 
samiralibabic profile image
Samir Alibabic

Now that you read this, you can call yourself 10X developer.

If it were that easy! 🀣

Being good comes with experience. πŸ™„

You can’t learn / read it. You have to experience it, over and over again. Expose yourself to the topics you don’t understand yet, get out of your comfort zone and never stop learning.

Just like β€žget-rich-quickβ€œ schemes, becoming 10X overnight, won’t work.

Collapse
 
dsaga profile image
Dusan Petkovic

I think this is a good article, but its mostly focused on being more efficient, the tools and practices would make a developer more efficient, so its definitely good advice.

But it might not make you a 10x developer, firstly if 10x is just speed then sure, you can be faster at churning through code, but doesn't mean that you'll create sustainable solutions because this things are not related to any tooling you might use.

So maybe the term 10x dev is a bit misleading, it should just mean a more efficient developer, and by more efficient I mean that its a developer that doesn't lose time on things that can be automated, or uses more of the available tools to create solutions faster.

And for higher levels of developers we already have a name, its Engineer!

Collapse
 
ivorobioff profile image
Igor Vorobiov • Edited

I tried copilot and I actually spent more time explaining it what I want than if I did it myself. Even if it wrote something I still have to verify it or tweak it, meaning, that I still had to spend time understanding what was written there. It's like working with a junior developer requiring constant supervision and assistance.

Collapse
 
idleman profile image
idleman • Edited

prettifier is an extension that in average makes the code less readable (compared to if you manually try to style it as readable as you possible can yourself) so even if it make the code consistent, do it make the total time reading the code longer. And because reading code is done 100x more than writing, is it bad.

Collapse
 
sourav0010 profile image
Sourav Mohanty • Edited

Very neat and nicely written, Thanks for this bunch of helpful instructions it's helps alot and also I use some of your instructions and it makes me more productive than before.

Collapse
 
dgihost profile image
Gurpinder Singh

The term "10x developer" typically refers to someone who is exceptionally productive and skilled, capable of producing ten times the output of an average developer. Achieving this level of proficiency requires a combination of technical expertise, effective work habits, and continuous learning. Here are some steps you can take to strive towards becoming a 10x developer:

Master Your Craft: Deeply understand the programming languages, frameworks, and tools relevant to your field. Continuously learn and stay updated with the latest industry trends and best practices.

Focus on Problem Solving: Develop strong problem-solving skills. Understand the core concepts of computer science and how to apply them effectively to solve complex problems efficiently.

Write Clean and Maintainable Code: Strive to write code that is easy to understand, maintain, and scalable. Follow coding standards, use design patterns, and refactor code regularly to improve its quality.

Continuous Learning and Improvement: Embrace a growth mindset and dedicate time regularly to learn new technologies, tools, and methodologies. Stay curious and explore different aspects of software development.

Effective Time Management: Improve your time management skills to maximize productivity. Use techniques like time blocking, setting priorities, and eliminating distractions to focus on high-value tasks.

Collaboration and Communication Skills: Being a great developer also involves being an effective communicator and collaborator. Work on your interpersonal skills, communicate clearly, and be open to feedback.

Version Control and Development Tools: Familiarize yourself with version control systems like Git and utilize development tools that enhance productivity, such as IDEs, debugging tools, and automation scripts.

Testing and Debugging: Learn various testing methodologies and techniques. Be proficient in debugging to identify and fix issues efficiently.

Soft Skills Development: Enhance your soft skills, including teamwork, problem-solving, critical thinking, and leadership. These skills complement technical expertise and contribute to overall effectiveness.

Stay Passionate and Curious: Passion drives excellence. Stay enthusiastic about your work and continually seek to explore and innovate in your field.

Remember that becoming a 10x developer is a journey that requires continuous learning, practice, and dedication. It's essential to focus on both technical and soft skills while also maintaining a balance between personal and professional development. Strive for excellence but also recognize that consistent improvement over time is crucial.

Thanks for reading,
Dgi Host

Collapse
 
eljayadobe profile image
Eljay-Adobe

Clean code. Nothing can turn a 10x developer into a 1/10x developer faster than having to program in a messy morass of technical debt.

Collapse
 
idboussadel profile image
abdessamad idboussadel

AI, following the principle of not over-engineering, automating repetitive tasks, and using existing Components and Libraries can help you tremendously in writing clean code.

Collapse
 
sabbir2609 profile image
sabbir2609

Love it 🀩

Collapse
 
timmensch profile image
Tim Mensch

Your article points out many ways that developers can improve.

But it also highlights the core misconception of what 10x actually means.

In particular, it doesn't mean they can type 10x faster. Using emmet is not required to be 10x. Using IDE shortcuts is not required to be 10x.

I've known a couple of 10x developers who don't even touch type and who refuse to use an advanced IDE. They still get work done way faster, and with higher quality, than the average developer.

Read The Mythical Man Month. It's where the idea of "10x" developer was originally popularized based on earlier studies, though Fred Brooks refers to them as the "surgeon" developer.

Note that the book was written in the 70s, before IDEs even existed in their modern states.

And also note that the studies showed zero correlation between experience and being 10x. Zero.

Which means you either are or aren't 10x. There's no way to "become" a 10x developer.

Your recommendations are good for improving any developer who isn't following them. But to claim that it will make someone 10x implies you've never actually worked with a 10x developer, or you'd know that the difference is not at all about typing speed.

Collapse
 
ehrbhein profile image
Irvin Gil

didn't know bout emmet till now. Thank you and will definitely try this out πŸ‘Œ

Collapse
 
idboussadel profile image
abdessamad idboussadel

Glad I could help!

Collapse
 
gourobdas0103 profile image
Gourob Das

nice

Collapse
 
gustavorocha profile image
Gustavo Rocha

this article was amanzing.

Collapse
 
amranii profile image
Amranii

Nice Article I will try to Integrate these concepts into my daily Goals.

Collapse
 
mi_native_nutt profile image
Mark

You can't become one you are one. You can only get better at being one

Collapse
 
gdledsan profile image
Edmundo Sanchez

I though we all agreed the only ones using the term 10X are PMs and managers in general, all developers know it is a scam, the same as rockstar and unicorn.

Collapse
 
xoneill007 profile image
xoneill007

A 10x developer is someone who is terrified of poverty, has been brutally abused and has a family they must raise. Given this, everything else follows.

Collapse
 
heyazhar profile image
Azhar

I started reading this post to get better then realized this is covering half of what I'm already doing. GreatπŸ₯‚

Collapse
 
code_rabbi profile image
Emeka Orji

Man!πŸ˜… You post sparked a community riot.

Maybe just use a different title next time. oam!

Collapse
 
zabetta profile image
alessandro cerea

thanks! good suggestions

Collapse
 
rverwey profile image
Ryan VerWey

Thank you for writing this! I work in a gov environment so a lot of my normal resources are not available. I will test these out and see if I can improve my situation at work!

Collapse
 
idboussadel profile image
abdessamad idboussadel

Glad I could help!