Why I quit my job

A few months ago, I quit my job. This wasn’t a decision I made lightly - I’d been working as a software engineer for over a decade, and had worked at four different companies since I started. I wrote about my first two jobs here, and since then I’ve worked at two more companies, including a brief stint as a manager that I wrote about here.

So why did I quit?

The short answer

I wanted to build things again. Not in the “ship features that move metrics” sense, but in the “create something that solves a real problem” sense. I wanted time to think, to learn, and to work on things that mattered to me personally, not just things that mattered to quarterly business reviews.

The longer answer

The industry has changed, and not for the better

When I started in software engineering, there was a sense that we were building things that mattered. Sure, we were fixing bugs and adding features, but there was a connection between the code I wrote and the people who used it. Over the years, that connection has frayed.

As I wrote about in my post on software UI/UX, software engineers are increasingly alienated from the product. We’re given smaller and smaller roles, commoditized into feature factories. Getting promoted is often about launching new features, not about building quality software. Bug fixes don’t get you promotions, even when they dramatically improve the user experience.

This isn’t just about promotions though. It’s about the fundamental disconnect between what makes good software and what gets rewarded. I’ve seen brilliant engineers leave because they couldn’t stomach shipping broken features just to hit a deadline. I’ve seen terrible code get praised because it “moved the needle” on some metric that probably doesn’t matter in the long run.

Management wasn’t the answer

I tried management, thinking it might give me more influence over these problems. As I wrote in my post about that experience, there were things I liked - helping others grow, advocating for engineers, getting more visibility into how decisions are made. But I also realized that managers have way too many things on their plate, many of which aren’t warranted. Processes have ossified from a bygone time, and changing them requires CEO-level decisions that will likely always remain “just a wish” for someone at my level.

More importantly, I missed the hands-on work. As a former manager told me, “You should only take the role if you’re passionate about helping others grow.” I am passionate about that, but I’m also passionate about building things. And I realized that if you like engineering and building, at some point you yearn for the hands-on gratification that programming provides.

The autonomy paradox

One of the things I valued most about my career was autonomy. At Company 2, I had the freedom to dive deep into systems, to understand how things worked at multiple levels of abstraction. But as the industry has moved toward more structure and process, that autonomy has been shrinking. Even as a senior engineer, I found myself spending more time in meetings, more time writing design documents that felt like exercises in futility, and less time actually building things.

The irony is that management gave me more autonomy in some ways - I was in the room where decisions were made. But it also meant I was further removed from the actual work. I was making decisions about things I wasn’t directly working on, which felt wrong.

What I wanted instead

I wanted to go back to basics. To build things from scratch, to see the connection between the code I write and the people who use it. I wanted to work on problems I cared about, not problems that were assigned to me because they fit into some quarterly plan.

I wanted time. Time to think deeply about problems, not just solve them quickly. Time to learn new things without the pressure of immediately applying them to a work project. Time to read, to write, to explore ideas that might not have immediate business value but have personal value.

I wanted to prove to myself - and to my parents, who never really understood what I did for a living - that I could build something real. That’s part of why I built Hunchle. It’s a tangible thing they can use, not just a company name I can drop in conversation.

The financial reality

Let me be clear: I’m privileged to be able to make this decision. I’ve saved money over the years, following the advice I wrote about in my guide to finances. I don’t have dependents relying on my income. Not everyone has this luxury, and I’m grateful that I do.

But I also think we overestimate how much money we need. Yes, a tech job is one of the best ways to get a large, constant, regular inflow of money. But there are other ways to earn money, and there’s definitely a dopamine hit from finding new ways, even if the amounts are tiny.

What I’ve learned so far

It’s been a few months since I quit, and I’ve written about what I’ve been up to. I’ve built apps, started doing stand-up comedy, read more books, traveled, and spent time with family and friends. I’ve forgotten what day it was more times than I can count, and I sleep in late often because I haven’t had to set alarms.

The cash inflow is obviously worse, but it’s been interesting to think about other ways to earn money. More importantly, I’ve had time to do things that matter to me, not just things that matter to a quarterly business review.

Note: This entire post, except for this line was written by an LLM with the contents of my blog provided as context. It got around 80% right.

Should you quit?

I’m not here to tell you to quit your job. Everyone’s situation is different, and what worked for me might not work for you. But I do think it’s worth asking yourself: Are you building things that matter to you? Are you learning and growing in ways that feel meaningful? Are you happy with the trade-offs you’re making?

If the answer to those questions is “no,” then maybe it’s worth thinking about what you’d do differently. Maybe that’s finding a different team, or a different company, or a different role. Or maybe, like me, it’s taking some time to figure out what you actually want to do.

The tech industry will always need good engineers. But good engineers also need to take care of themselves, to find work that’s meaningful to them, and to build things that matter. Sometimes that means leaving a job that’s no longer serving you.

Here’s to building things that matter.

Comments

Leave a comment