I recently stumbled upon a social media post proclaiming that the best software engineers ascend to greatness by continuously coding—spending their nights and weekends solving LeetCode challenges and churning out side projects like code-generating machines. While I appreciate the enthusiasm, I respectfully disagree with this tunnel-vision perspective. But first, let me share a couple of personal anecdotes with you.
The Stack Overflow Disappointment
In 2013, while living in the UK, I had an initial call with a top Big Tech company recruiter. The conversation went well until she asked about my public profiles, such as GitHub and Stack Overflow. Realizing I didn't have a Stack Overflow account, I created one and started contributing. I spent my evenings and weekends answering questions and helping other developers. The platform's gamification was engaging, and I found it a rewarding hobby and a fun way to keep sharpening my programming skills.
During this journey, I encountered one of the top-rated Ruby developers on Stack Overflow. His quick, accurate answers were impressive, and I admired his deep knowledge of the Ruby language. I was thrilled when he applied for my company's Ruby Software Engineer position. However, during the interview process, we discovered that while he excelled at Ruby-specific problems, he lacked skills in testing, documentation, design patterns, and performance considerations—essential aspects of software engineering.
This experience taught me that having an impressive Stack Overflow account, an excellent GitHub profile, or an admirable online presence doesn't necessarily make someone a well-rounded software engineer. Conversely, not having one doesn't mean you cannot be a great engineer. While a solid online profile can help in job searches, the comprehensive set of skills truly matters in this field.
While having a solid online presence (GitHub, StackOverflow, etc.) may enhance your job search, lacking one does not diminish your skills as a Software Engineer.
The LeetCode Fever
A couple of years after my disappointment with Stack Overflow, in 2015, the LeetCode fever appeared in the industry, a peculiar epidemic where software engineers traded in their social lives for marathon sessions of coding puzzles. It was as if knowing how to reverse a linked list in your sleep suddenly became the pinnacle of human achievement. Companies joined in, turning interviews into gladiatorial arenas of algorithmic combat. Forget about your years of experience building scalable systems; you were out if you couldn't invert a binary tree.
I recall a few interviews asking me to solve challenging coding puzzles on platforms like LeetCode or HackerRank. These platforms may be convenient for companies, as they don't require human intervention but provide a poor experience for candidates. These were the worst interview experiences I've had. I was rejected without any explanation, even when I solved the challenge. Since then, I have declined any interview that requires solving challenges through these platforms.
Fortunately, only a few companies still use these horrible automated coding practices, although some FAANGs still perform live coding interviews based on technical puzzles, riddles, or brainteasers. We know that hiring is broken, but that's for another post.
Solving LeetCode challenges can make you a whiz at... solving LeetCode challenges. It does not necessarily make you a better Software Engineer capable of solving real-world problems.
What Makes Great Engineers Stand Out
In my career, I've had the privilege (and occasional headache) of managing dozens of engineers, from Juniors who abused Stack Overflow-driven development to Principals who could create a microservice during a standup meeting. Along the way, I've identified common traits that separate exceptional engineers from the merely adequate. Spoiler alert: it's not about who can code the longest without a caffeine refill.
Here are my top 10 key characteristics that make top-tier software engineers stand out:
1. Understanding the Bigger Picture
Exceptional engineers don't just focus on the "what"; they're obsessed with the "why." They align their work with business goals and user needs. They're not just churning out features because a product manager said so—they're solving problems that matter. After all, building a feature no one uses is like baking a cake no one eats: a waste of time and ingredients.
2. Effective Communication
Can you hide behind your screen and let your code do all the talking? Think again. Communication skills aren't optional; they're essential. You might write code so elegant it belongs in the Louvre, but if you can't explain it to your team or document it for future developers, you're setting everyone up for a game of "guess what this function does." Spoiler: No one enjoys that game.
3. Collaboration Over Isolation
The myth of the lone genius coder is as outdated as dial-up internet. Today's complex projects require teamwork. The best engineers elevate their teams, share knowledge, and don't hoard information like it's the secret sauce to grandma's recipe. Remember, collaboration isn't a sign of weakness; it's a force multiplier.
4. Continuous Learning (Beyond Code)
Sure, knowing the latest JavaScript framework is cool (until it gets replaced next week), but lifelong learning goes beyond just code. It includes soft skills, industry trends, and even areas outside of tech. Who knew that understanding psychology could help you build a more intuitive user interface? Top engineers are curious creatures—they know that inspiration can strike from the most unexpected places.
5. Masterful Problem-Solving Skills
Software engineering is professional problem-solving. Exceptional engineers excel at breaking down complex issues into manageable parts, identifying root causes faster than you can say "stack trace," and crafting innovative solutions. They don't just fix the symptoms; they dive deep until finding the root cause and cure the disease.
6. Razor-Sharp Analytical Thinking
Analyzing data, deciphering requirements, and making informed decisions are all part of a day's work. Great engineers possess strong analytical skills, which allow them to evaluate options, assess risks, and prioritize tasks effectively. They can spot a flaw in logic like a hawk spots prey, saving everyone time and headaches.
7. Adaptability (Because Change Is the Only Constant)
The tech world evolves faster than fashion trends. One day, you're all about microservices; the next, it's serverless architecture. Exceptional engineers are adaptable—they embrace change, learn new skills on the fly, and adjust to new challenges without missing a beat. They treat the ever-changing landscape not as a hurdle but as an adventure.
8. Creativity That Breaks the Mold
Who says programming isn't a creative endeavor? Great engineers approach challenges with ingenuity, exploring different approaches and thinking outside the proverbial box. Or better yet, they question why there's a box at all. They devise elegant solutions that make you wonder why you didn't think of it first.
9. Resilience in the Face of Adversity
Let's face it: Software development can be a rollercoaster of setbacks, delays, and "WTF" moments. Exceptional engineers demonstrate resilience—they don't throw in the towel when the going gets tough. Instead, they roll up their sleeves, maybe pour another cup of coffee (or English tea), and solve the problem.
10. Unwavering Customer Focus
At the end of the day, if the user hates it, what's the point? Great engineers have a customer-centric mindset. They prioritize usability, performance, and reliability to deliver experiences that delight rather than frustrate. The best compliment is a user who doesn't even think about the technology—they enjoy the experience.
The Power of Engineers Leveraging Generative AI
In an era where generative AI tools like ChatGPT, Claude, and Cursor are becoming the Swiss Army knives of development, a well-rounded engineer who harnesses these technologies can outpace the solo coding genius. These tools are excellent assistants that can brainstorm solutions, refactor code, and even catch bugs you might overlook. While the code-obsessed engineer is busy reinventing the wheel, the savvy engineer is leveraging AI to accelerate development, focus on creative problem-solving, and deliver impactful solutions faster. Mastering these tools isn't cheating—it's innovative engineering. Ultimately, it's not about how much code you can write by yourself; it's about how effectively you can deliver value, and sometimes that means teaming up with our AI friends.
The Bottom Line
Being an exceptional software engineer isn't about how many programming languages you know or how quickly you can solve an algorithmic puzzle while juggling flaming torches. It's about combining technical expertise, problem-solving abilities, saying no when needed, and personal qualities like high agency that make you invaluable to any team.
If you want to elevate your team's (or your own) skills, focus on these traits: Encourage big-picture thinking, prioritize effective communication, foster a collaborative environment, and never stop learning—even if it means stepping outside your comfort zone. For instance, although I don't have a traditional background in data engineering, I am actively refining my expertise in Generative AI. I firmly believe that learning AI will be beneficial in the long run.
The world doesn't need more code churners who can regurgitate algorithms they memorized last night. It needs thinkers, innovators, and leaders who can adapt, collaborate, and create solutions that make a real difference.
Thank you for reading The Engineering Leader.
If you liked this edition, don't forget to hit ❤️ and share it with others who may like it.
Subscribe so you don't miss any future editions.
Great one Rafa! The Stack Overflow story is spot on. Companies should strive for software developers who collaborate rather than show how geniuses they are. Keep writing