I was an ice hockey goalie, and on some days I’d spend seven hours training. At 14, I left home to live in a different country, chasing my dreams, trying to figure out how to become a better player. Every mistake was mine to learn from, and every improvement came from stubborn persistence, desire to become better and relentless practice.
That same mindset carried into my software career. I started with no prior knowledge of coding, just a desire to succeed. I made mistakes, learned from them, and kept going. I was stubborn and proactive, sometimes to the extreme. In the early months of trying to break into tech, I slept far too little (something I wouldn’t recommend) just to carve out time for learning.
Looking back, the parallels are clear. The discipline, resilience, and hunger I developed as an athlete became the foundation for how I approach engineering today.
I spent over 15 years as a professional hockey player before becoming a software engineer. The lessons I learned on the ice - discipline, teamwork, performing under pressure, recovering from failure, mastering fundamentals, and playing the long game - have shaped how I write code, work with teams, and grow my career.
My simple advice is to treat your career like training, show up consistently, practise the basics, and embrace feedback.
As a goalie, I trained for hours every day. Much of it wasn’t glamorous, repetitive drills, conditioning, endless footwork. But showing up consistently, even on days when I didn’t feel like it, was non-negotiable. That discipline made me a reliable player.
In software, the same principle applies. Doing refactoring, maintaining documentation, writing tests, none of it is flashy, but it’s what makes projects sustainable. A codebase doesn’t stay clean because of bursts of motivation. It stays clean because of consistency.
When I moved abroad at 14 to pursue hockey, I was suddenly alone. No family nearby, no safety net. I had to rely on teammates and coaches, learn to build trust quickly, and adapt to new cultures. Those relationships taught me that no one succeeds alone.
Engineering is no different. The strongest teams are not made of so-called “10x developers” chasing personal glory. They are built on trust, communication, and collaboration. Whether it’s sharing knowledge in a code review or supporting a teammate through a tricky bug, success in software, like in hockey, comes from playing as a team.
Being a goalie meant living under constant pressure. One mistake, and the game could be lost. I learned to stay calm, trust my preparation, and focus on the fundamentals when the stakes were highest.
That mindset has carried me through production outages, tight deadlines, and even tough interviews. In those moments, panicking never helps. What helps is keeping calm, breaking the problem into pieces, and executing step by step. Pressure doesn’t create new skills, it reveals the ones you have practised.
In hockey, failure was unavoidable. I got scored on. I lost games. I faced injuries. As a goalie, the worst thing you can do is dwell on a mistake, because the next shot is already coming. I learned to reset instantly, move on, and focus on the next save.
In software, I’ve pushed broken code, misjudged estimates, and received tough feedback in reviews. The lesson is the same, failure isn’t final, it’s feedback. The faster you reset and learn from it, the stronger you become. A mistake is a chance to learn!
Goalie training involved endless drills, positioning, footwork, tracking the puck. It wasn’t exciting, but it was essential. The best players weren’t the ones doing the fanciest saves. They were the ones who mastered the basics so thoroughly that they became second nature.
In coding, fundamentals matter just as much. Clean code, algorithms, problem-solving, accessibility, testing, these aren’t glamorous, but they separate good engineers from great ones. Frameworks come and go, but fundamentals last.
From early in my hockey career, I knew it had a finite timeline. That reality forced me to think about the long game. When I eventually transitioned to tech, I carried the same mindset, plan ahead, keep learning, never get complacent.
In my early days of breaking into software, that meant months of little sleep and working long hours to practise and build projects. It wasn’t healthy, but it showed how determined I was to make the transition. Now, I see the long game differently. It’s not about exhausting yourself, it’s about sustaining growth through balance, curiosity, and continuous learning. Please don’t make my mistake, sleep is very important and now I understand why.
On the surface, hockey and software engineering look like different worlds. But I didn’t stop being an athlete when I left the rink. I just found a new arena. The lessons I carried over shaped me into the engineer I am today.
Whatever your background, your story matters. The skills you’ve built, the resilience you’ve earned, and the lessons you’ve lived through can make you a stronger developer. All you need to do is carry them forward.
Mon, 23 June 2025
Managing Time as a Senior Engineer: What Actually Works for Me
Senior engineers are constantly pulled in different directions. Here's how I manage my time to stay focused on high-impact work, support my team, and avoid drowning in distractions.
Mon, 25 August 2025
Interviews as Win/Win or No Deal
The world teaches us to see interviews as win/lose. But in reality, they're about alignment. If both sides don't win, it's no deal, and that's a good thing
Fri, 15 August 2025
What I Wish I Knew When Learning Frontend: A Practical Framework to Navigate the Journey
A roadmap for learning frontend effectively: define clear goals, break learning into measurable steps, build projects, and get feedback early.
Subscribe to get updates on new blog posts, useful frontend tips and ideas you can apply in your own work.