The key four areas to identify greats software developers.

In today’s letter, I will expose you, just in minutes, my mental model for identifying a great software scientist or engineer and how to select (correctly) the new team member that will impact your new product or company 💯 times more than the average people in just a few weeks.

This conference (2741) Beyond Developer • Dan North • GOTO 2017 – YouTube triggered the idea of this letter because it was also one of the most important things, I wanted to write you about for a long, long time.

I recently had to leave a team (I might expose the reason in a different letter). After spending six intense months working with them, I had to walk out the main door, learning all the complex systems and delivering three small products. I remember when they knew the news that I was leaving, they told me:

… you learned this complex middleware framework faster than most of us that have been here for years, and now you are leaving us?…

They continued talking with plenty of multiple admirable words to me, but was the question below the one I remember the most? 

How did you do it? They asked. How did you learn this so quickly…

I gave them a shorter and hopefully honest answer: Is thanks to time spent on the craft plus a good understanding of the fundamentals.

I have been working for more than ten years as a professional engineer plus six years doing a bachelor’s degree in computer science, most of my work was related directly to engineering.

The good thing about this is that I have been playing this game for a long time, so time is always your friend when you use it effectively.

I have learned for many years from all types of software engineers: the good ones, the great ones, the regular ones, and the bad ones, so learning from them has been one of my most significant advantages.

I encourage you to put your ego aside and do the same if you want to mature and evolve.

I hope this letter becomes one of the most practical, valuable, and incredible ideas you can read today. 

Identifying a great developer or becoming one is enclosed in a mental model that holds the below areas.

Understand the fundamentals.

Clarity in the fundamentals is a general principle that I have identified as a common factor between great engineers and scientists. They always ensure that the primary basic knowledge (concepts and practical theory) is not easily forgotten. 

They can construct a great baseline and solid understanding of the main concepts and trade-offs.

Broad and deep practical understanding.

Deeply and intrinsically motivated to understand a wide variety of topics, but most of them can talk about any specific matter for minutes without needing to review any previous documentation.

However, the best way to notice and assess their passion for understanding is often revealed by their tone and facial expression when they talk; this sometimes reveals more about them than their words.

Think always above yourself.

I will use the words Dan North explained at the linked conference.

“You’re a developer in a great team, building a product on a platform in a department in my organization that will transform people’s lives.”

Great developers and engineers understand that even a tiny change in their code or product feature can impact in a significant way people’s life.

Non-linear or multidimensional thinking.

This aspect is a critical area that most of us fail to understand. Thinking multidimensional is a skill that changed my life and impacted the way I think and see the world; it is easy to understand but not to apply, but if you have in mind to think beyond the repercussions of your actions, you will do better for sure.

Your goal with practice is to have the skill of thinking non-linearly, our human brain thinks linear and does not allow you to see the edge cases or other scenarios that can also occur, often review your decisions from a different perspective and think in a different set of outcomes is a good practice to identify areas of self-weakness (use this link for a better understanding).

Think about these four aspects and let me know if you agree with them or if you will add more ways to identify the best characteristics that make great software engineers 👨‍💻 .

Leave a Reply

Your email address will not be published. Required fields are marked *