Chapter 0: 10X Engineering - the mindset
11 min read
What makes one a 10X Engineer?
The love of engineering and thirst for excellence.
Their work is their love. It is their play. It is a challenge worth excelling at. It is their Ikigai.
No matter whether they are already masters at the craft, or are getting there, here are some of the traits I have seen in those with 10X mindset.
They want excellence in their skill, in their work, in their conduct, in the value they provide to their team and the world. They want to feel the music as they flow and make the solutions. They are not working to survive. They are working to thrive!
They are hungry to learn new knowledge and useful information every day. They do not like to be a frog of a stale pool (Like I am a Java or Nodejs guy and that's it!). They want to jump across the dynamic and moving streams of new technologies, tools, concepts. Every new thing is like finding a new lover or a wonderland to be discovered and tasted. They are ecosystem players who value their freedom to broaden their horizons constantly. When it comes to tech & tools - the 10X folks are non-monogamous.
They understand fast: By virtue of being sincerely interested, attentive, alert and sharp minded, they can figure out things with least guidance. They can even tell you of scenarios you are not considering when sharing the requirement.
A close friend of mine who is an engineering leader at a large fintech in India and before this engineering manager at Amazon, said an amazing thing to me once - Ayush, the best team mates to have around are those who need least explanation and come back to you with either a detailed solution, or questions that make you think!
They own stuff and care: They like to take complete charge of work. Give them a brief, and they will figure out requirements in details. They will try to cover every corner. They will think themselves of optimisations and best way to solve problems. They care for an end to end quality delivery. They care for the well being of their project, their team and their company. They take initiatives not asked but, for needed.
They have an eye for details: The devil lies in details and they drag the like to drag devil out of the system. The quality of a caring and intelligent human being, a good professional is their capacity to catch and take care of the small details. It is these details that really distinguish a mediocre or poor work from high quality work. They excel at it!
For ex. reading the log in details, on error. Using keyboard shortcuts instead of mouse drags and clicks. Optimising development speed second by second. Proper variable or file names, comments, type definitions, non-repetitive legible code, coverage of corner scenarios, last mile optimisation of code (though sometimes an overkill), attention to design, best practices, first principles etc. They can be obsessed about having excellence in the details.
They think before they act: 10X engineers take notes before starting to think about how to solve them. For ex. consider the detailing of the caching issue spec of Godspeed's meta-framework in Nodejs and you can also check my PR linked against it. You will see that appropriate efforts have been taken to explain the problem and the solution. This helped me solve it with least wasted effort of myself or the team.
When I was preparing for IIT JEE entrance from Bansal's Kota, our physics teacher Mr Ashish Arora, used to give us many nuggets of wisdom. One of them was "do not pick your pen to solve the problem till you have not understood the question and vizualized the simplest solution already"
"Think like a tortoise and your pen will then take you to the destination like a rabbit! "
Their code ships without or with least bugs. When push a commit, you do not need to worry. Basically it just works when shipped out of their box. Why is this so? Because they thought well before they acted.
They are unafraid of and greatly skilled in resolving bugs or puzzles: When it comes to debugging with a 10X engineer by your side, you will feel you are sitting with a Sherlock Holmes. They are not developers. They are warriors at heart, unfettered and rather turned on by challenges. Hence, they are unafraid of bugs or difficult problems. As a result, they are relaxed and pay attention to the logs. They meticulously investigate and unravel one layer of a puzzle at a time. How they know which is the right place to look into next! I have taken a great pleasure in watching some of such great minds at work.
At the same time I have seen most novice developers panicking or trying to avoid solving the problem when they see an error. They start scanning everywhere for what may have happened. They have given up before trying! They stop thinking!
10X devs don't waste time looking for the needle in the haystack!
They value every single second of their time: They prefer using keyboard shortcuts & unix commands more than clicking through the UI. Yeah right. You will find them using Vim even in the days of Visual Studio Code. But more practically, if you count the time you spend in a day doing those 1000 clicks that you didn't count and could have avoided, and assuming two seconds per mouse drag and click, you have spent at least 2000 seconds that is 35 minutes of your work day, not doing anything of value. They make effort to learn unix commands and keyboard shortcuts which is must faster way to accomplish things.
They are micro optimizers and that reflects in their macro and micro output.
Their code is short, simple, to the point, and hence beautiful. It is well readable to any other human with least or no documentation at all. The code itself is the story, is the clear truth on what's being done! For ex. The variables, functions, classes and logs have appropriate names which tell what they are meant to do. Functions are generally less than 50 max 100 lines of code. There is simplicity in the solution. All of this together makes their work beautiful. A work of art and craft, not just software development.
They don't like to see repeated lines of code (i.e. boilerplate): Show them a pattern and if they have to repeat it a second time, or maximum a third, they will abstract it out into something reusable. In fact, if they foresee that they or other team members will need to repeat this thing for coming months, they may go one step ahead and create sdks, frameworks and reusable infra to solve these problems once and for all, for everyone! FYI, this is why Godspeed was also born.
Talking about my personal love for abstracting things. It doesn't start with Godspeed. The journey goes way back to 2010.
We made two utilities during Metataste days a well loved movie discovery engine that ran between 2010 to 14
A: A Java based framework with dual write between Mongodb to Lucene, using a configure over code approach for 8 dimensional vector based document tagging, matching, search and aggregations. This was around the time Elasticsearch was a budding new project in FOSS, and I was not aware of it.
B: Rakkar.js an HTML templating engine before moustachejs was known to us or perhaps born. The name of this library is based on the village we were living in, as a move away from the city, in 2012.
During my stint at Epictions between 2014 and 15, we were building a content intelligence engine. A part of our solution was to build a crawler of all the popular URLs shared across the entire internet which used 230 instances of Elasticsearch to store and analyse the data, and around 50-100 Nodejs services doing crawling for 24 hours, like an Octopus sniffing food (popular urls) around the periphery, pulling it in with the crawler hands, and processing it inside its belly, generating intelligent insights. There we had to write lots of bulk queries to save documents together. This is where, irked by the repeated for looping, I decided to write a utility extending Elasticsearch and was born the first piece of Elasticgraph - an ORM over Elasticsearch, in Nodejs. It is the only library which provides relationship aware access and denormalisation over Elasticsearch. It is actively used by some of our clients even today. Here you can see my talk presenting it to the Elasticsearch founder Shay and community, in Bangalore in late 2023.
They think and act co-existentially. They realise their work is useless unless another human being can use it. Further, they don't want to take the chance of wasting their time, the QA's time or the company and the customer's time or resources because of team inefficiencies. So for example, they document the requirement, the solution, and how to setup, test and use it independently.
Someone who is a hacker but can not ship a professionally done code with appropriate documentation will remain a hacker and not a professional software engineer. His or her work will be needed to be taken, cleaned and packaged by other engineers. Hackers can crack the difficult parts of the puzzle and show the rest of the team the way. They are needed on occasions to crack the very difficult problems which require a high IQ and expertise. But you need one or two hackers in a team of 100. Rest need to be 10X engineers (who can also be hackers. But also not.).
They have a futuristic vision. Their code not only just works for now, but works with future in mind! Their solution can stand the test of maintainability and adaptability over years. Their code can run in organizations for 10s of years even after they have left. Why? Because they try to solve a problem once and for all. In their minds they intend that no other human should need to re-look at this piece again.
For ex. when I went to iXigo office in 2023, 14 years after I had quit the then fledgling startup in 2009 as its third engineer, the CEO Aloke and CTO Rajnish proudly told me that my code and SQL scripts I had written are still running as the heart of iXiGo's modern system. This revelation came when they are now about to IPO in India and more than 400 engineers have joined and left the team by now. I was incredulous on hearing that. What a badge of honour and recognition. Thankyou Aloke and Rajnish! :-)
For them engineering is a craft, not a job: They love what they do and they get paid for doing it excellently. They are confident individuals who know income comes as a byproduct of skill. They don't put income in front of their learning and experience.
If they have two job offers, they will choose the one which is more challenging and creates greater value, not necessarily greater income for them. They are horses of the long race.
They are self motivated and hard working: Doesn't matter what their IQ or knowledge is. These people work hard, not just smart. They don't count holidays, work hours etc. For them their work gives them joy. Its their best break! Their managers don't need to remind them on how they can do their work better. In fact the presence of such people brings intensity and excitement at work. It raises the bar!
In 2005, my friend Nihit from IITK and I took our internship at Oracle Bangalore to get a professional industry experience, instead of going abroad for a semi holiday semi research experience. I remember us both spending few 36 hour stints at the office, living on the Ramen, cookies and coffee. Office was our second home.
In the end we both solved challenges much bigger than both of us. On the very last day of the program I was able to demonstrate a remote screen sharing solution (something like Zoom sharing) on Macintosh based systems - an ecosystem I had never touched before in my life, and was full of hidden libraries to hack. And of course, we landed with the offer to join back once we graduate. We didn't sit for the campus placements :-)
They chase excellence, not wealth or fame: These are self respecting fellows for they know how tall they stand. And yet, they are humble enough to bend and acknowledge there is more to learn, better to do. When they see someone who is great they don't feel competition - they feel inspiration. They are constantly nudging themselves and their work to perfection. They can not sleep at peace with the knowledge of a corner being cut somewhere. Their main driving factor at work and life is excellence in everything they do. Of course no one is perfect, but we can keep striving for excellence everyday!
They are team players: They are driven by serving others. Their expanse of life purpose and ikigai is not limited to their own personal self, but it includes their organisation, team, customers and society that they serve for.
Their value is not just technical, it is personal.
They are somewhat philosophers: What is the power of tech? What is the purpose of my life? How does this path fit my current life journey? Can this be my ikigai?
So the big questions to ask yourself are
Is engineering what I love? Or could love?
And if yes, is mediocrity acceptable to me? Or does my life want excellence?
While this list can go on and will definitely continue to evolve with time. For now, we end this chapter of what makes a 10X engineer. It will continue to be enriched and shared in our future online sessions and blogs.
With this you can proceed to the next chapter when you are ready. Touching the basics!