Ask HN: How do you know a career in software is not for you?
I've been working for the same place for about 2.5 years and also have another ~year at an internship in another place.
I enjoy the problem solving aspect of working on software, but I'm finding that I'm barely utilizing my abilities and time here. This is certainly an issue that I'm trying to resolve.
However, I think what I'm having the most issue with is that I don't really feel like I'm serving anyone. I really like working with people to help solve issues, but I don't get that feeling here at all. The only problems I get to solve are the problems I feel like we make for ourselves (environment instability, lack of funding for maintenence, people not testing their changes, etc). I just feel like my job is to clean up a pile of trash that the business wants to put minimal time into. It feels so overwhelming to be paving a new sidewalk on a bridge that has supports falling apart.
I'm also considering the impact that the lack of social and physical activity has on my happiness. I spend time with people and exercise outside of work, but I don't want every day to just be excited to leave work.
How do I manage this? Am I just in the wrong company? Or the wrong career path?
Can anyone else relate and share how you've dealt with this? I'm not really sure where else to discuss this sort of thing. Probably just the wrong company. Bad management can make any career awful. And yes, there are lots of bad companies. But there are also good companies. I have worked at companies where people were very careful to test their software, and where programmers were valued. Before giving up based on a very small sample size, try finding a new job or two. https://www.keyvalues.com/culture-queries is a good set of questions to ask during interviews to find the things you care about. Thank you. I wasn't trying to make it sound like I am applying my experiences to the entire industry, I'm just trying to reason about what issues are about me, what issues are about my company, and what issues are about my career path. I have seen situations much like what you describe, and also others where I much enjoyed working. Not all software jobs are like that (although many are). When you are not able to just leave, I find it helps emotionally to engage my analytical self on the problem. Keep a journal (at home, not at work) about what is going on, and try to understand it as well as you can. Why is upper management paying you to "clean up a pile of trash"? Is it their business model? The fact that they just want to IPO or sell the company soon? A lack of understanding of software at the very top? Is there any of that which you could learn to recognize at the job interview stage, moving forward, to improve your odds of ending up at a similar place in the future? Look at their recruitment efforts, their QA process, their way of organizing sprints (or whatever they use), etc. There is a lot to learn about how to make good software, and good software organizations, by analyzing a bad one. Of course, if you can get a job elsewhere now, do that. But in the meantime, you may feel better about the time spent if you are learning more than just "this place is no good". The knowledge learned will serve you well later. I have definitely been thinking about this a lot, however, it's difficult to know what to do when this is the only long term job I've ever had, and the first time I've really had a career. I don't think the company is looking to sell; it feels like the top is just not concerned with reliability and most of our funding goes into new feature development, which in turn makes things less stable. Identifying what's wrong is probably the most difficult part for me. It feels like a systematic failure that I can't affect. Right, it's not at all unusual that you can't affect it. In any large organization, if you're not one of the top few, you usually cannot, by which I really mean you may not, because the things that need to change you're not allowed to touch. But, it's not time wasted, if you analyze how it works. What happens when good suggestions are made? What is it about the business that makes the leaders unconcerned with reliability? Sometimes it's that the wrong metrics are being looked at (e.g. new customers, not looking at attrition rate). Sometimes it's that the people who can sign the checks for a sale are not the ones who use it, so new features (in theory) make a bigger difference to the bottom line than real-world reliability. Sometimes it's that there are too many levels of management between the top and the developers. It's an interesting problem to look at as a feedback loop, from reality/users to management, and figure out where the signal is getting lost or drowned out. But, in the meantime, start looking for new jobs. Also, when interviewing for new jobs, try to find a way to talk about this which gets the point across about why you are dissatisfied, that does not sound so negative that you come across as a negative person. A diplomatic way of phrasing this may be important in a job interview, not a thing to try to come up with on the spot. Part of me wonders if I need to rewire how I think about this. Like I realize that there are things outside of my control but deep down I don't accept it, or something like that. Maybe it would help to get out and have conversations like these more often with peers. I'll look around on meetup to see if I can connect with people; I don't really have any friends in tech that I can talk to other than my co-workers. Sadly, I think this is normal. I also find that after about 2 years, I start itching for a new challenge. You learn the most at a new job, new role, new team, just because everything is new. After a while, you learn a lot about your company, where things are, what has likely gone wrong, etc. This gets boring pretty fast. Being in a role long term is a totally different feeling than job hopping and building your resume. I don't think either is wrong, but they are very different. Plus, if you're competent, your management chain may have problems giving you more work as you get faster, or promoted to the right level fast enough. If you really like your company, maybe switch teams? If not, switch companies? You're likely to get a salary bump, and probably harder work because you'll maybe get brought in at a higher level. I find that I reach that half-life at a company too. After I sweep up the things that are in my control I start noticing all the other problems that are hard for me to affect and then I get complacent. I think I probably need a change of scenery. I have a 2 week vacation to Japan coming up so I think that will be a good time to clear my head and really get a chance to digest what is going on. Thanks for sharing your perspective with me, it helps a lot. That sounds amazing, I have always wanted to visit Japan! A change of scenery, and especially international travel I've found to be a great palette cleanser. Have a great trip and try to not think about work! Thanks! I'm really excited; everyone I've talked to that has been there hypes it up a lot. I will definitely not be thinking about work haha. Ahhh, welcome to software engineering. While partially joking this is a real issue and sadly is common in our software. Software is the way most things in life function these days, yet those of us on the inside see that software is generally poorly put together and then held together by hamstrung people because of funding or mismanagement. Some companies are better than others, but all companies need to make compromises. What I have seen is when the compromises line up with your value system (whatever that might be) then you are way happier at work daily and want to do more generally. When the compromises are anti your personal value system for too long you will dread being there or going to work. There will always be some percentage of decisions you disagree with, so I wouldn't take it as you bolt if you disagree with a few things. I've been in software for over 20 years, and that has been the repeated process since even before I started. And even as a founder I realized this is how engineers (and most educated intelligent people) work (value system alignment) and while we can always improve, you need to find the balance that works for you. Most problems in software are problems of compromise, e.g. we hacked X feature to get Y done and now have 12 new problems to solve, but now we have Z needs and have to compromise somewhere else too. It is almost always a game of tradeoffs, and that is ok to some degree. I love the idea that if you are not happy doing what you are doing for too many days in a row you need to change what you are doing. I usually think of that in slightly longer time periods given software schedules, but I think it is a good core idea. If you aren't happy and you feel like you have learned what you can at an opportunity then move to the next. Granted, I am not saying job hop every year, nor am I advocating taking off just cause things aren't going your way, but you have to evaluate your mental and physical health with where you are and where you are going. After 2.5-3 years seems like you have a fair reason to potentially move on if it isn't making you happy at this point. I have definitely internalized the idea that it's all just tradeoffs. I think I value delivering quality software and it's hard to feel like I'm doing that when I see so many production outages and most of my interaction with co-workers is people telling me something is broken. I get that stuff happens sometimes, but we can't seem to keep a test environment stable. Managers are definitely aware of the issue, but I feel like it keeps getting worse. I can't hold back a tidal wave alone. Thank you for sharing your perspective.