So I've been a software developer for about 5 years now. I studied business but went into software because I loved it as a hobby. I learnt a ton and I am very grateful for the high salaries (even in Canada) and the stellar employment prospects.
However: In the last 5 years, I've worked at about 5 different companies. Every time, it ended with me burning out and taking a couple of months off (sometimes up to 6 months!)
I realize this is bad for me, and even though the companies were messy startups, I can't help but think there is a pattern. And so I'm thinking that maybe this isn't the right job for me?
What I love about programming:
- Dreaming things up and materializing them. Software can do a lot of things, it feels like a super power being able to put together flows or application that do in a few seconds what would take hours or years for a group of people to do
- Writing robust and tested software makes me feel like all is well with the world. I know my function is well written and I'm confident it can take almost any data you can throw at it without crashing; and if it does crash because of invalid input, it will do so garcefully
- Having something that bothers me or wastes my time because it isn't automated, and being able to turn it into a small program to make my life easier. Feels like hacking the system in a way that's very powerful
What I dread about programming:
- It feels futile. Every place I've worked at had some kind of software product. It's treated as if it were the ultimate way to end world hunger/achieve world peace. The reality is that it's just another useless B2B or B2C app that is fairly insignificant. But we're expected to live only for it and meet arbitrary deadlines. We'd pull our hair out to make something work, only to have it canned. Sometimes the new feature is used after all, but we missed the deadline and get a shitstorm for it, despite spending two stressful, frustrating weeks. No one is going to die if people are unable to import their tweets into our app.
- It is extremely binary. It either works, or it doesn't. Even if your code is 98% complete, it is useless until you get to 100%. And there are very few shortcuts you can take, because it either does what the spec says, or it doesn't. It's different from, say, a presentation where you can add filler content and still meet your objectives.
- It is very frustrating and stressful. The nature of the job is basically spending your time in frustration debugging code that won't do what you want it to. And the minute it finally does what it was supposed to do all along, you check it in and move on to the next bit of code that is in a broken state. This is endless.
I am a few months into yet a new job, and again I feel like I'm burning out. I'd hate to give up this career because I invested a lot of sweat and tears to get where I am now (sunk cost fallacy), and because the high salaries in this industry greatly align with my FI targets. But I feel like I have to change something.
I looked at working for the local university. They have devops and developer jobs to fill but it comes with a significant pay cut (25%). I'm hoping the pace is more sustainable there with considerably less pressure, and much longer vacations; but I can't gloss over the pay cut that would undermine my FI objectives (just moved to a high COL city for a new job).
I'm not the quiet, "don't like people" type, and I do enjoy interacting with others. I considered sales engineer, but it feels like there is lots of pressure there to meet your quotas and long hours.
I also have an interest into making things work better/fixing things. I enjoy repairing stuff, and I like to spot inefficiencies in a business to fix them (either with a better process, or a bit of code, or both). But I don't know of any role where that is useful or the sole focus.
Has anyone been in a similar situation before? How did you solve it? Did you end up changing careers?