Ask HN: Career paths when you've been disillusioned by the software dev process?
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?
33 comments
[ 1.7 ms ] story [ 77.9 ms ] threadSoftware 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?
It's caused by non-technical people invading our field and taking over many of the managerial positions. They can't pretty much contribute anything software-related and often have poor grasp on what's going on - so the only thing left for them to do is to be the "process police" and pester people about estimates, ceremonies etc. It's the only way they can "contribute", so they insist it's vital, as otherwise it would be completely transparent that they're a third wheel.
I've never worked in the VC culture (public sector and SMEs instead) but there is still this slavish adherence to things that were "cool" in The Valley five or ten years ago. Scrum is my bete noire. I've just been moved onto a product team that follows the full shamanism of it and the amount of time wasted is staggering. Between daily sprints, weekly planning sessions and fortnightly retrospectives we waste half the week. Then they insist on adding in some "fun" "team-building" activities too.
On top of business practices, I think dev practices have changed so much too. My job these days is increasingly about configuring some Saas system we've bought in or hooking up the plumbing between different open source libraries. I appreciate that it removes the tediousness of building yet another CRUD web app but it also devalues the skill of the job. Maybe our platforms have just got too complex now for any one person or small team to manage it all.
I've tried going into management before and hated it. The higher you go, the more time you spend in meetings discussing the same shit with the same people just on different days.
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.
People have begun pushing back against that (including me), but in response I'm beginning to see the tendrils of Agile sneak their way in, which has me uneasy. But I don't know what a good alternative is...that's kind of why I think the social problems surrounding team based software development are often way harder than the code itself, and why I've got this interest in shifting to solo work somehow.
I meant to describe a company that doesn't do the rituals and uses waterfall to run projects.
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.
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
Freelance or contract work might also open the door to more projects where I could be the sole or primary developer on something. A lot of my problems stem from how writing software on a team is almost like trying to write a novel with 30 other authors, who all have a different creative vision for the book.
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.
For me at least, doing some freelance or contract work during that time to help cover my living expenses would ease my mind. Of course, then it's not really a full mental reset.
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.
Data scientist could be interesting if you are interested in mathematical modeling.
Writing software "when it feels right" is a very different experience. I quite enjoy it.
In my experience, architecture is the much less solo than dev work. Everything you do as an architect impacts a lot of people (usually multiple teams, managers), so there has to be a ton of communication behind your work. Senior architects are not unlike managers and often spend most of their days in meetings.
It can be very satisfying, and I've really enjoyed it both times and would actively seek it again, but it's certainly not the ivory tower it looked like when I was an engineer.
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.
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.
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.
If this myth is tragic, that is because its hero is conscious. Where would his torture be, indeed, if at every step the hope of succeeding upheld him? The workman of today works everyday in his life at the same tasks, and his fate is no less absurd. But it is tragic only at the rare moments when it becomes conscious. Sisyphus, proletarian of the gods, powerless and rebellious, knows the whole extent of his wretched condition: it is what he thinks of during his descent. The lucidity that was to constitute his torture at the same time crowns his victory. There is no fate that can not be surmounted by scorn."
- The Myth of Sisyphus by Albert Camus.
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.