My journey into the tech industry was far from linear. I was a middling high school student with a passing interest in coding and an obsession with video games. The only thing keeping me from being as fat as I was ignorant was a relatively successful career in competitive fencing.

My final years of high school were rather lonely. Having drifted from most of the friends I grew up with, I found myself with a lot of idle time during lunch period. I would often sit in the library by myself watching random YouTube videos to kill the time while I polished off whatever lunch I hadn't already eaten for (second) breakfast.

One fateful day, I overheard someone talking about something that piqued my interest: cryptocurrency (This was back in 2015-2016). I inquired and was introduced to the bizarre world of Bitcoin, Ethereum, and Technical Analysis (as well as a lifelong friend). I tried my hand at trading, but you can imagine how that went.

From there, I dove into Ethereum, beginning my first serious exploration into programming. I learned about blockchains, smart contracts, and decentralized applications. The deeper I went, the more I realized I would need to learn in order to do anything useful. To build useful blockchain apps, you first must be able to build useful regular apps - and I could do neither.   

So, I put a pin in my Blockchain dev ambitions and went back to basics. 

I found FreeCodeCamp.org, which offered an extremely well structured set of lessons on Javascript, HTML, CSS, and React (before hooks!), and got started. After about a month of work I was able to build semi-competent React apps, but knew next to nothing about building REST APIs or deployment infrastructure.

Around this time, I started university for computer science. I refer to this period in my life as "the blip". Being the middling student that I was, I ended up at everyone's backup school - Partially because it happened to be close to my fencing club, but mostly because I hadn't bothered to apply anywhere else given my grades. 

On my own for the first time, and with atrophied social skills, my first attempt at higher education was doomed from the start. Through a series of unfortunate events and several poor decisions, I barely lasted two and a half years. Defeated, I dropped out and enrolled in the backup school for the backup school. All I had to show for my effort was an important lesson - Be extremely picky about with whom you spend your time.

Armed with that lesson, I started over.

None of my credits transferred to the new school, so I had to restart my degree. I also got a job at a grocery store serving meat from the butcher. This time, I met some amazing people with whom I am still good friends to this day. 

I excelled in my classes, and after my first year, I scored my first internship - a 12 month stint at a large HR Software Company. This was not your usual internship experience since it coincided with the onset of the pandemic. My cohort of interns was the first-ever fully remote group at the company, so the learning experience was a little watered down. On top of this, my mentor departed for Amazon 2 weeks after I started.

At the beginning, it felt like I was dumped in the middle of the pacific ocean with no boat. The codebase was a massive 550k file monolith in .NET MVC 5, and the domain was a rat’s nest of unintuitive rules. It took me 6 months just to wrap my head around the project, and then they broke the module I worked on - the payroll engine - into its own microservice, sending me right back to square one.

I left that internship feeling pretty bummed but not hopeless, and continued my education.

I picked up some blockchain dev and web dev contracts on the side, and tried to learn as much as possible in my free time. Classes were still a breeze so I had ample time to explore my interests. I took some online machine learning courses and tried my hand at marketing and sales for my web development services. 

The real game-changer for me was my next internship at a small start-up in Halifax specializing in land based aquaculture. The entire company was smaller than my team at the previous internship. I started on their React front end, then moved to their backend API service in Spring Boot, then built internal tools in Python. I worked on ML model version management systems, dashboards, and automation scripts - each step forcing me to learn and adapt quickly. What mattered most wasn’t the tech stack, though, it was the people. My mentors there accelerated my learning tenfold, and I was fortunate enough that they kept me on part-time during school and full-time during summers. By the time I graduated, I had over three years of experience.

The summer I finished school was the most broke I've ever been. My contract with the startup didn't renew, I had nothing lined up, and I was scraping by with small web contracts and even some wedding photography. My good friend from school and a business partner embarked on an ill-conceived attempt at a start-up in the healthcare space, but that fizzled as soon as we had (barely) built our MVP. 

I had just started my job application spree when my girlfriend sent me a link to Shopify's engineering internship. I almost didn’t apply. “No way.” I thought to myself. I could never belong at a company like Shopify. I didn't go to UofT or Waterloo. I dropped out of York. All I had under my belt was some basic web development, a couple internships, and the rotting husk of a proto-startup. But she insisted, so I applied.

A week later, I got a link from Shopify to an online assessment. It was a take-home assessment to implement a decrypter based on the playfair cipher. Easy enough. I finished pretty quickly and documented every function like my life depended on it. 

A few days after the submission deadline, I got another email from Shopify. Ready for heartbreak, I opened the email - They wanted to move forward for the behavioral interview!

No way.” Now they’ll clock me as the imbecile that I am the second I get on a video call with them. 

Much to my surprise, the interview went off without a hitch. The conversation flowed, they seemed happy with my experience, and a technical interview was promptly scheduled for the following week. 

“No way.” Now it’s really over. I haven’t looked at Leetcode in months. Guess it was nice to pretend for a second.

Rather than sit in despair, I leaned hard on a former mentor from my previous internship. Without him and his infinite patience I would not be where I am. He must’ve listened to me struggle to crap out a coherent technical thought for hours. We practiced and practiced until I could recount my experience at the start-up like a pro. 

I took my rotting husk of a proto-start up and refactored it till it resembled something close to a coherent project. I wrote down every decision I made and why. Once again I struggled in front of my mentor for hours until I could very clearly explain what the intention behind the project was, and why we failed so miserably. 

The day of the interview, I walked down to the river near my house and sat there for an hour gathering my thoughts and mustering all the presence of mind I could manage. I walked back home, the interview started and we exchanged pleasantries. First, an object oriented design question. Simple enough. Then the project showcase. At first, I could tell they weren’t too impressed. Then I dove into the code, and showcased where I thought I had been most clever. They nodded along, but I still felt like I wasn’t gaining much traction. Time to switch gears. I listed off all the reasons why my project was bad, why being clever wasn’t the objective, my most valuable lessons learned: There are people at the other end of the software we build. We build to solve their actual problems - not what we think they are - and that was the fatal flaw of our product. Now I was getting somewhere. I must’ve repeated that sentence another 10 times before the end of the interview.

A week passed - nothing. Two weeks - nothing. By the third week, the whole interview had started to fade from my mind when I saw the email in my inbox. Once again prepared for heartbreak, I opened the email. 

“No way.” 

An offer!

The next 4 months were some of the most professionally rewarding of my life. I joined the finance engineering team and spent my time working on data pipelines, LLM powered tools, and accounting automations. I booked as many coffee chats with as many high level engineers as I could pack into my calendar. The work was rewarding and the environment was full of energy.

By the end of the internship, I met so many incredible people and learned so much that the years of uncertainty leading up to it felt like another lifetime ago. Most importantly, I secured a return offer. 

By some measures, I’m still just starting out. But for me, this was already more success than I ever imagined for myself back when I was that lonely kid in the library watching pressure washing Youtube at lunch.

As cliched as it sounds, I can’t overstate how important having a solid social circle full of people pursuing similar goals was to my progress. Almost everything good in my life has come from the people with whom I spent the most time. We learn together, and we make mistakes together. If it weren’t for them I would have called it quits and stayed at my meat counter job years ago.

Whenever impostor syndrome creeps in, I look to my friends and colleagues to remind myself:


We’re all just stumbling around in the dark.