Coming together is a beginning; keeping together is progress; working together is success. - Henry Ford
Ever wonder if you're smart enough for software engineering?
I did.
Let me take you back to a lecture hall where I learned the true meaning of genius—and self-doubt.
You’re listening through a one-hour-plus practical lesson from graph theory. Your brain is fried, and you're thinking, "When does this torture end?" You're starving, exhausted, and half the stuff's going right over your head.
There’s a guy in front of me, let’s call him Jim.
Jim was asleep for the past 15 minutes because of yesterday’s raid of Karazhan.
He wakes up, looks at the board where the teaching assistant struggled for the past 15 minutes to bring a problem to an end, and says:
You’ve made a typo on the second line, it’s not 2x but x^2.
And he falls asleep.
What am I even doing here? A thought that crossed my mind during my studies often, but I guess by now you understand why. I often wondered if I had the right stuff to be a software engineer.
The answer came years later when I finished my studies and started my first job.
As I stepped into my first professional role, I braced myself for an environment dominated by "Jims" - brilliant minds who could solve complex problems in their sleep. However, the reality I encountered was far different and, ultimately, far more inspiring.
Feeling like a coding genius in just an hour? 🤯 It's totally possible! 🧠
Tired of those endless tutorials that leave you feeling lost? My book, OpenAI Crash Course, is here to save the day! 🚀 Build an app using OpenAI Speech-to-Text and text post-processing with clear, easy-to-follow steps. Even deployment is covered!
Grab your copy today and impress your genius friends with your AI skills!
In the trenches of real-world software development, I discovered that while raw intellect certainly has its place, it's not the be-all and end-all of success. The projects that truly excelled, the teams that consistently delivered value, weren't necessarily composed of academic prodigies or algorithm wizards.
Instead, I observed a different set of qualities making the real difference:
The Myth of the Lone Genius Developer
For years I never met a living person who used our software, and I was super happy about it! When you watch IT Crowd you pretty much get onboarded to how users are inferial and they always come to you with the numbest questions.
I was a lonely coder in our rented office, turning coffee into code.
I was living the dream.
Of course, until I needed something database-related. By accident, the people I worked with had 20+ years of IT experience and were all database wizards. They wrote queries that weren’t for the untrained eyes and that I don’t understand to this day.
I came to them often and asked all the stupid questions about migrations, and efficient database design and they happily answered.
Hmm.. this sounds like collaboration to me!
The Power of Collaboration
While I was never big on pair programming I loved PR reviews.
When I applied for my first job, I already had remote, real-life software development experience working on QtJambi, a project started by the famous Trolltech and later led by Nokia.
Using IRC daily and chatting with developers from Finland and the UK made me write clearly in code and public channels. We used Git+ and later GitHub to do the PR reviews and discuss tickets.
It was a defining experience in my career.
If you haven’t joined an open-source project yet, but you’re looking for a job in software development and have some spare time, do it.
Empathy in Coding
Users
It’s difficult to find empathy for the users of your software if you never see them use it.
In my second year at this company, I was offered a 2-day on-site visit. This was the first time I saw our software in production at a huge printing center. These two days helped me more in planning than five sprints.
I saw the biggest issues they were experiencing daily with the software and knew I could fix those in a week.
They were super happy.
Yes, we knew about some of these issues but they were sitting at the bottom of our board, as simple fixes or “good-first-prs” until I saw how critical this is for them.
Teams
Your empathy shouldn’t be exclusive to your clients.
Seeing developers struggle with tasks and acting on that to increase productivity and learning is also empathy.
Being a small company, everyone had to be a full-stack engineer.
Yet you could easily notice someone struggling with JavaScript bundler errors or writing a database migration script that doesn’t ruin your most important asset.
Lending a Hand to the Next Generation
Giving a helping hand or directing new people to the person with the most knowledge signals that you care and earns you credibility.
Luckily I had the chance to mentor juniors early on.
In the beginning, mentoring seemed like extra work, but with time:
We had great developers in the company
I earned trust and credibility
Some of them became great teammates and friends
And I wasn’t that lonely programmer anymore, and I actually preferred this new way of working.
Balancing Technical and Soft Skills
I hope my anecdotes shed some light on how it’s not all about being a genius but looking outwards and seeing the companies and clients that use your software and the people who develop it every day.
Here are some short reminders for you, on what to practice and focus on so you improve both coding abilities and interpersonal skills:
Practice active listening
Develop empathy through perspective-taking
Seek feedback on soft skills
Join a tech/soft skills book club
Volunteer for cross-functional projects
Conclusion
Software isn't built by lone geniuses.
It's crafted by teams who collaborate, communicate, and care.
In the real world, beyond the classroom where geniuses solve problems in their sleep, success comes from balancing technical knowledge with the ability to work effectively with others.
The days of the solitary coder are behind us.
Now we thrive on diversity, empathy, and shared knowledge.
Code is just the beginning.
Our strength lies in our connections, in the hands we lend, and in the minds we bring together.
This is how we build the future.
📰 Weekly shoutout
Regression Towards the Mean - Mental Model by
How the best software engineers write technical designs (the blueprint for consistent results) by
📣 Share
There’s no easier way to help this newsletter grow than by sharing it with the world. If you liked it, found something helpful, or you know someone who knows someone to whom this could be helpful, share it:
🏆 Subscribe
Actually, there’s one easier thing you can do to grow and help grow: subscribe to this newsletter. I’ll keep putting in the work and distilling what I learn/learned as a software engineer/consultant. Simply sign up here:
Great post Akos.
This point especially resonated with me: "It’s difficult to find empathy for the users of your software if you never see them use it."
Saw this first hand when we went to visit the real users. We were sure they were loving our application but had a rather sobering experience when we returned back to base...lol 🙂
Also, thanks for the mention!
I agree that the most successful coders know how to collaborate, but I have seen the occasional "lone genius" types do okay, but they get stuck in one company being really valuable there, but not so much to the wider market.