My work / life balance is decent, I work for a pretty good company on a cool product, and my co-workers are good people. I have suffered from mild to moderate depression most of my life, but I'm doing my best to take care of the basics there, and I'm seeing a therapist. I'm beginning to see some of the classic signs of burnout, but I don't think this is strictly a burnout question.
I work well on teams, my teammates like me, but I've always preferred solo work. I think this is a stable personality trait, as I remember feeling like this as early as kindergarten. Other factors include the already incredibly complex social problems that come from developing software with a team of humans, the monster that Agile / Scrum have become, bizarre and poorly thought out technical decisions, failed projects, endless meetings, and being told what to do by people who have never written any code.
Anywhere, here are some of the possible ideas I've come up with, and my thoughts on them.
Make the most of what I already have - I'm fully willing to admit that I may be in the best possible scenario already. The Hedonic Treadmill is real, and the grass is often not greener. I might just need to reframe how I think about it.
Find the perfect team - Maybe if I job hop enough, I'll land on the perfect team that actually fits my work style.
Consulting / freelance - I'm not sure if this is any better, because you have the constant pressure of needing to find and work with clients. There's something to be said for having the freedom to only take on the projects that interest you (or pay the best), and to not be shackled to them forever. The freelancers I've talked with all seem to agree that your happiness in this path is largely contingent on your ability to find good clients.
Solo Founder / Indie Hacker - It sounds like a dream to have a small product that you build entirely yourself, that makes $100k-$200k/year. There's a lot of cool stories in that space, but I've also read a lot of stories of people working tirelessly for years on a project that never makes over $1k MRR. The thought of putting that much work into building something while also working full time just feels like too much to me.
One idea is to combine freelancing with being a solo founder: do enough freelancing to cover living expenses, then use the rest of the time to build your own things (with the hope to sell them).
Optimize for salary, and FIRE as quickly as possible - I could just grind to get a job with the highest total compensation possible, work it for enough years to be able to FIRE, and then just code on my own terms. It mentally exhausts me just to think about doing this, though. I don't want to go through the interview hazing followed by months of learning a company's internal politics.
Get out of writing software as a career entirely, do it as a hobby only - Maybe, but at the moment I don't have anything else that I'm either skilled enough at to get a job for now, or interested enough to put the work into. But it's something I can keep in the back of my mind.
--
The "freelancing part time while working on my own product(s)" seems like an interesting path to pursue. I'm being cautious though, and I don't plan to make any big changes for 1 or 2 more years at least. I may find that I'm already in the best possible spot, and that this is just the Hedonic Treadmill at work.
Has anyone else here been going through a similar thought process? Or decided to take one of these paths (or another I haven't thought of) already for similar reasons?
Software development used to be fun, and many parts of it still are. But a sad new dev culture has taken over which I think hurts both developers and the products we create. This leads to junky software that no one likes.
I wonder how much of it is due to the VC-backed philosophy of "selling to the next greater fool." As long as a company is just waiting to sell out to the next round of investors, the folks at the top have little incentive to make a great product or a great work environment. After all, those things are not counted in company valuations.
In the enormous list of job postings on HN this month, I can see many companies which are obvious failures from the get-go. And many others which are clearly scammy, purely opportunistic, or vulture-based business that simply tax others and profit from their misery. I'm sure those places make money -- for a while. But I can't believe that these are sustainable product ideas or places to work.
What's to be done to fix our industry?
As it turns out, the industry has figured out how to remove that autonomy in favor of old fashioned management and processes. This includes scrum, meetings, badly implemented code reviews (not everyone is a good reviewer), badly implemented coding standards, ineffective Dilbert driving projects that need inspirational leaders.
It's sad but I have decided to take the path of FIRE and say fuck you to anyone who imposes their will on me without considering alternatives.
I have zero autonomy over what I do, because I joined a extreme programming shop where I'm supposed to pair 8 hours a day. Do you know how hard it is to program all day without listening to music because you have to "communicate" all the time? The only thing I've been able to device to reduce this sense of dread and lack of autonomy is to focus on developing my own tools to work. But now, I can't even do that because some dolt complained that me using non-standard tools made him "confused" during our pair-programming sessions.
The standard advice for this situation is to get another job. But I know, that will not fix the main issue. The previous job I had, was a legacy tech debt nightmare, we were understaffed and management didn't want to address any of the issues while expecting us to do over-time support.
The job before that, had beautiful code but the code-reviews were insanely political and if the reviewer didn't like you, you would get 400 comments on a PR.
This industry has managed to take a beautiful thing like developing software and turn it into a nightmare. JUST LET ME CODE IN PEACE YOU IDIOTS!
As for solutions, the one that seems more rational to me is the "freelancing part time while working on my own product(s)". That's the one I'm betting my life on.
Wish me luck.
I share the dream of making my own product, but I lack imagination, and probably skill and work ethic too. But, if I intentionally planned to take 12 months off, especially if my employer is happy to take me back, the opportunities are endless. Get fit, travel, read, start your own side gig, learn a language, find love, and most important of all, unplug from the system, become human again. I don't know if I'm trying to persuade you or me at this point, but it's something to consider if you have the cash to cover it.
I thought working in waterfall projects would suck, but I think it is a large part of why my current job doesn't require much interaction and why most of my colleagues have a calm air around them.
This describes me for the first 3 decades of my career. I can now enjoy working together on solving problems. In particular full-time pair programming was brutal at first but then you hit a groove and it's great. No specific advice here, merely a self observation.
> Other factors include the already incredibly complex social problems that come from developing software with a team of humans, the monster that Agile / Scrum have become, bizarre and poorly thought out technical decisions, failed projects, endless meetings, and being told what to do by people who have never written any code.
My advice would be to find a company that has/does less of these things you dislike. The best setup I had was working on a 2-pizza-sized 'platform team' for a ~100 person startup. There was a good mix of developing new features, scaling, and firefighting (that we learned to reduce applying SRE practices). We could start with a problem, whiteboard ideas, start prototyping, finally end up shipping the solution in the same sprint for an unplanned issue.
> being told what to do by people who have never written any code
I wouldn't say this is a good view to hold and may be a source of discontent. The 'what' is really a product question answered by knowing your customers and markets. I wouldn't expect devs to be experts here. The how, at what cost, or when would be better to execute are areas that devs mainly contribute. I do get a sense of what you generally mean though, and my solution had been to work at smaller companies with strong technical management (preferably up to the CTO and/or CEO) and very little to no middle management.
I'm not a dev although perhaps in a few years hope to pivot to the field in some capacity. I do however work closely with devs, product, etc and i'm n the engineering space. Having said that, perhaps you could use this as an opportunity to solve this problem. What does that look like? Writing a book on the matter to help others since you do have a lot of experience and could possibly partner up with others in the field in the same kind of situation, creating a course, an app (there are endless amounts that focus on mental health and wellbeing but how many that are more focused on those in engineering disciplines?).
I have dealt with depression and an anxiety disorder in the past. I have helped some friends and family members learn to cope and overcome as well. By no means am I an expert but I do have some insight that I share with anyone willing to listen so that they can better maneuver around it rather than avoid it entirely and make it more difficult for themselves.
Writing software "when it feels right" is a very different experience. I quite enjoy it.
Do you live in the USA with work authorization? You already have the freedom, probably...find another open position somewhere looking for someone like you, start working somewhere else
Javascript development with AngularJS or React lead to daily scrums and larger teams. Perhaps it's cultural but if you switched to Vue your chances of avoiding the daily standup go up. Environments with services that you are supporting include a lot of meetings discussing boundaries. A lot of services are written in golang.
Consider C++, Ruby, PHP, Perl and older tech like COBOL. These communities haven't fully accepted tbe daily standup.
Sticking to companies that are small (under 20 people) will force small teams and less meetings and more solo work.
I can relate to a lot of what you are saying. I’ve thought about becoming an analyst / data scientist, but there seems to be more competition for fewer jobs that also pay less. And I’m not at all sure if changing roles would “fix” the problem.