10 Biggest Regrets and Career Mistakes Made by Software Engineers

We came across a Reddit thread filled with valuable lessons and reflections from software engineers, covering their biggest career regrets and mistakes. With so many responses, we decided to analyze the comments using AI, asking ChatGPT to categorize them by common themes.

The result?

A distilled list of the top 10 biggest regrets and career missteps software developers wish they could have avoided.

1. Staying Too Long in One Place.

Many developers regret staying with the same employer or in the same role for too long, which often led to stagnation in skills and career growth.

Examples include staying at a job that became unchallenging or where they were not learning anything new.

Comments:
“Stay too long with the same employer. That’s not how you get a descent pay raise.”
“Staying at the same company, unless you’re keeping up to date outside of work, it’s very easy to get left behind, and when you do look for jobs, you’re playing catchup. Web development is one of the few mainstream job roles where you need to stay current, regardless of your job role, or you’re left behind.”
“Staying at the same place for too long. I felt like I owed them something and I never progressed because they were an awful company with delusions of grandeur. You owe nothing to your employers. Move on, get better a wage elsewhere.”
“Stay too long with the same employer. I’m sure that will be 90% of the answers here.”
“Getting comfortable in a job and staying there far too long. Not going for more money due to sticking to a job.”
“Staying in the same shitty role for a decade, because it was easy and cushy. Should have hopped. It’s harder to now, so now I gotta wait, and the role has become really limiting.”

2. Switching Jobs Too Often.

Conversely, some developers felt that switching jobs too frequently in search of better pay or technology led to burnout, instability, or a lack of deep expertise.

This is illustrated by those who chased better salaries and tech but ended up feeling burnt out and jaded.
Comments:
“Switching jobs too often in chase of better tech and salary. At the end of the day, I turned out burned out and jaded, because one poor change triggered another and another.”
“Leaving positions for new positions. I feel like future employers may see this as a liability; but at the same time I’ve learned so much more by being in different work environments, small companies, large companies, academia, healthcare, etc… If I stayed at just one place I would just know that one process really well.”
“Moving back into an agency setting, and I am still there. I miss the ease of corporate life…hardly ever overtime, no fear of being laid off, working with realistic deadlines, doing work that requires way more thought to quality over ‘just getting it done’.”

3. Accepting Management Positions.

Several developers regretted moving into management roles, which took them away from hands-on coding and introduced new stressors, such as dealing with HR issues and office politics.

They missed the technical work and found the management tasks less fulfilling.
Comments:
“7 years in and I’m still on the fence if it was a mistake or not, but taking a promotion to a management position. It was more money and I thought I would like overseeing all the projects…but I really do miss putting on my headphones and coding for the day. Now I deal with people’s bull$^&# all day.”
“Getting that promotion to become CIO. I hated every day of it and left after less than a year.”
“Promotion into management. That has nothing to do with software engineering. It’s like you’re in hell. Never promote towards management if you enjoy writing code. The way back is very hard too.”
“Becoming a manager. Stupid fights all day long. When I could just build great software at the same time.”
“Accepting a management position.”

4. Poor Job choices and Misjudging Job Roles.

Accepting jobs without thorough consideration of the company culture, role fit, or personal career goals often led to dissatisfaction and career setbacks.

Examples include taking jobs at startups that failed, toxic work environments, or roles that didn’t align with their skills or interests.
Comments:
“Taking a non-SWE technical job after my first engineering job (basically support engineering). Thought it would be an interesting challenge but I hated the role, lost nearly 3 YOE as an eng that I would otherwise have, and it took me almost 9 months to find a new role in the hottest part of the Great Resignation.”
“Moving into a large consultancy and all the dev roles moved offshore. Stuck in project management, trying to pick up all my old coding skills, it’s been 3 years, and make the move to another job.”
“Getting in to salesforce development.”
“Thought everyone had a website already, no reason to continue building them.”

5. Underestimating Project Duration or Complexity.

Mistakes in estimating the time and effort required for projects led to stress and burnout.

Some mentioned underestimating project durations and overcommitting, which resulted in negative consequences.

6. Not Keeping Skills Updated.

Failing to stay current with industry trends and not learning new technologies put many developers at a disadvantage in the job market.

This includes not learning specific technologies that became crucial later or not building a solid foundation early on.

7. Freelancing or Starting Own Business.

Several developers regretted moving to freelancing or starting their own business too early or without proper preparation, which led to financial instability and difficulties in returning to stable employment.

Issues with freelancing include the lack of stable income and challenges in marketing their skills effectively.

8. Bad Interpersonal Relations.

Poor relationships with colleagues or management, such as having a bad attitude or not handling conflicts well, led to job losses or missed opportunities.

Examples include conflicts with coworkers or mishandling sensitive situations with management.

9. Not Negotiating or Advocating for Themselves.

Many developers wished they had negotiated better salaries, benefits, or roles and advocated for their career development more aggressively.

Some regretted accepting initial job offers too quickly without considering red flags or future growth potential.

10. Personal Issues Impacting Career.

Personal issues, such as mental health struggles or life circumstances, also played a significant role in career setbacks for many developers.

Issues like burnout, bipolar disorder, or the impact of COVID-19 were mentioned as significant factors affecting their career decisions.