I Quit My Job as a Software Engineer

In my third year as a software engineer, I decided I wanted to return to academia and pursue a PhD in CS; before I even started the admissions process, I resigned.

Why? Why not wait until I had been accepted to leave my high-paying job with cushy benefits?

TL;DR I was miserable.

I’ve been drafting, scrapping, and re-writing this post for months; I always give up, afraid it will sound whiny or defensive. Now, I’m forcing myself to spit it out. But just to be clear, this post is not:

  • a list of complaints about being a software engineer or working in tech,
  • a self-soothing defense of my own choices, or
  • a call to action for everyone to do what I did

It’s simply an explanation of my path.

Much like the proverbial frog in the pot, I failed to see what happened until my friends and family encouraged me to step back and look at my life. I love what I do…but I hated my job. As a software engineer, I spent 10-20% of my time designing solutions to difficult problems in a distributed file system. I loved that 10-20%, I really did. The rest of my time consisted of sitting in meetings, answering Slack messages, having the same discussions with the same people for the millionth week in a row, and letting my passion slowly wither away.

The more I reflected on my work, the more I could see my environment for what it was: a confluence of mediocrity. Did I get to work on complex problems that I found interesting? Absolutely. Did I actually get to solve them? Not really. I wasn’t solving problems but developing a solution good enough to sell. Every time I started to sink my teeth into a problem, it was time to implement, deploy, and move on to the next project.

I realized all of my frustrations for the past year boiled down to one point: almost everyone around me could accept doing mediocre work. Even when I pushed for us to do small things like improve documentation or use a consistent code format, no one wanted to help. I always heard the same excuses: “It’s not my job”, “This is what it’s like at other companies too”, and “It’s too much work”. Even if the effort would save everyone time, apathy always won out. I felt utterly alone.

For a few months, I looked for a new job, thinking maybe it was just the culture at this company and I could fit in somewhere else, but eventually, I decided I didn’t want to be someone who hacks together something they can sell. I want to solve problems and continue learning.

In retrospect, I’m ashamed of how long it took me to figure it all out. I always kept the PhD in the back of my mind. I even spent the bulk of my junior year of college deliberating grad school vs. industry. In the end, I chose industry. Even though I ended up leaving my job, I’m certain it was the right choice. I wasn’t prepared to start a PhD at 22, but I am now. I know that if I hadn’t spent those years as a software engineer, I always would have wondered if grad school was the right place for me or if I had only done it because that’s what’s expected when you’re a good student.

I neither regret my time as a software engineer nor leaving my job when I did (even if it wasn’t the most pragmatic path.) I learned so much during that phase of my career, about my field and myself and I’m so thankful for that time. For perhaps the first time in my life, I’m confident in what I want to do. It may sound simplistic, but I love learning.




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • Design Documentation