Embracing Criticism: A Software Engineer’s Guide

Max Abrams
4 min readMay 25, 2023

--

Hello, world! I’m a software engineer with 18 years of experience, and I’ve had my fair share of adventures. From building video games to designing robots, I’ve done it all. But today, I want to talk about a different kind of adventure: the journey of personal growth.

The Code Review Conundrum

In my early years as a programmer, I found myself in a love-hate relationship with code reviews. I loved the learning opportunities they presented, but I dreaded the criticism. I took every comment personally, as if each critique was a direct attack on my abilities.

The Hacker News Epiphany

One day, while scrolling through Hacker News, I stumbled upon a discussion that changed my perspective. The topic? “How do you not take criticism of your work personally?” The insights shared by fellow developers were eye-opening.

Building an Anti-fragile Attitude

One user suggested developing an anti-fragile attitude towards criticism, much like how our immune system improves when exposed to shocks. This resonated with me. As a software engineer, I’ve faced my fair share of bugs and crashes. Why not treat criticism the same way? As a challenge to overcome, rather than a personal attack.

Mindfulness and Emotional Awareness

Another point that struck a chord with me was the importance of emotional awareness. Just like debugging a piece of code, understanding our emotional state when receiving criticism is crucial. It’s about distinguishing between a bug in the code and a bug in our reaction to it.

The Art of Positive Assumptions

The discussion also highlighted the power of positive assumptions. When receiving criticism, it’s helpful to assume positive intentions from the other person. This reminded me of pair programming sessions, where you and your partner work together to solve a problem. The criticism isn’t personal; it’s about improving the code.

Embracing Mistakes as Learning Opportunities

One of the most liberating insights was the idea of embracing mistakes as learning opportunities. As a developer, I’ve always known that mistakes are part of the job. But applying this mindset to criticism? That was a game-changer.

The Journey Continues

So, here I am, a Turkish-Swedish software engineer living in London, sharing my journey of personal growth with you. I’ve learned to see criticism not as a personal attack, but as an opportunity to learn and grow. And guess what? It’s made me not just a better developer, but a better person.

In the end, we’re all just humans trying to navigate this complex world. So, the next time you face criticism, remember: it’s not about you. It’s about the work. And who knows? You might just learn something new.

And remember, as we say in Sweden, “Det finns inget dåligt väder, bara dåliga kläder.” There’s no such thing as bad weather, only bad clothes. So, let’s suit up and face the storm of criticism together. After all, we’re in this for the love of code, aren’t we?

The Gift of Criticism

Another perspective that I found enlightening was viewing criticism as a gift. If someone has taken the time to understand your problem space and provide feedback, they’ve invested their time and energy into helping you improve. That’s a gift, isn’t it? It’s like receiving a code review from a fellow developer who genuinely wants to help you improve your code.

The Work-Identity Balance

One of the most profound insights from the discussion was the importance of separating your work from your identity. As a software engineer, it’s easy to get so engrossed in your work that it becomes a part of your identity. But your work is not you. It’s a product of your knowledge, your skills, and the tools available to you at the time.

This was a hard pill to swallow, especially for someone like me who has spent the better part of his life coding. But it’s a necessary step towards personal growth. It’s like separating the artist from the art. The art may not always be perfect, but that doesn’t make the artist any less valuable.

The Final Takeaway

So, what’s the final takeaway from this journey? It’s simple: Embrace criticism. Don’t take it personally. Use it as a tool for growth. And remember, it’s not about you. It’s about the work.

As a software engineer, I’ve learned to see criticism as a tool for growth, not as a personal attack. And this mindset has not only made me a better developer, but also a better person.

So, the next time you receive criticism, take a moment. Breathe. Remember that it’s not about you. It’s about the work. And who knows? You might just learn something new.

And remember, as we say in the world of sci-fi, “The future is not set. There is no fate but what we make for ourselves.” So, let’s make a future where we embrace criticism, learn from it, and use it to become better versions of ourselves. After all, isn’t that what personal growth is all about?

Until next time, keep coding, keep learning, and keep growing. And remember, in the grand scheme of things, we’re all just humans trying to make sense of this complex world. So, let’s be kind to each other, and let’s be kind to ourselves.

TL:DR; In this article, I’ve shared my journey as a software engineer learning to handle criticism constructively. Key takeaways include developing an anti-fragile attitude towards criticism, being mindful of our emotional state when receiving feedback, assuming positive intentions from the critic, and separating our work from our identity. Embracing mistakes as learning opportunities and viewing criticism as a gift are also important. Remember, criticism is not about you, it’s about the work. Embrace it, learn from it, and use it as a tool for personal and professional growth.

--

--

Max Abrams
Max Abrams

Written by Max Abrams

SciFi, Cosmology and Beyond : Maker of Things / Coder of Bits / Human -- PS: My views only. Not work-related.

Responses (1)