Last week I wrote about ways that you can improve your mental health as a software developer. While these are helpful they are unlikely to be much use if it is your environment which is the root cause of your issues.
If your workplace is toxic then no number of mental health days or vacations are going to change that.
If you are feeling the urge to quit then it is worth taking some time off to evaluate why it is that you are feeling that way.
- Is the culture that bad or are you just overworked and irritable?
- If there was one aspect of your job that you could change, what would it be?
The problem is, the grass will always appear greener on the other side.
Companies are going to paint a glowing picture of what it is like to work for them but the reality will be a little duller. Of course, if your current environment is a toxic wasteland then the alternative doesn't need to be a Van Gogh sunflower field to be appealing.
Let's have a look at a few signs that you might be ready for a new adventure, as well as some alternatives to make your job a bit more bearable if you decide to stay put.
β οΈ Warning Signs
Once you have been at a company for several years the fear of change can be greater than staying put even if you aren't happy in your current position.
Unfortunately, this fear can often leave people stuck in jobs hating their work. Most people spend on average 10 to 14 years of their life at work (40 - 60 hours a week for 50 years) which is a long time to spend doing something that makes you miserable.
If you resonate with more than one of these below it may be time for a change.
π―οΈ Burnout Is Looming
Once burnout hits it can take months to get over it, so it is important to recognise the signs as early as possible.
- Constantly feeling tired and drained of energy.
- Having a negative or cynical outlook on the world.
- Procrastinating at work more than normal.
- Feeling overwhelmed or helpless.
Burnout is often caused by overworking.
If you are pushing yourself too hard and making yourself work longer hours, to look good, so you can get a promotion, then it is time to stop. Chances are you aren't getting the recognition you deserve for all those extra hours and they might be having a negative impact overall.
Of course, if the long hours are down to too much work and not enough staff, then that is not something working less is going to solve.
πΏ Lack of Career Growth
You don't have to be nearing burnout for the time to be right to move on. If you are ambitious and have your sights set on working up the career ladder, then a move might be necessary.
Most companies only give promotions once a year. If you have been in the same position for more than a couple of years and still haven't been promoted, especially in the first 5 years of your career, then a move might be needed.
Provided you are good at your job, in the early years of your career, you should expect to get regular promotions.
Once you get to the higher levels however such as Senior, Staff and Principal the time between promotions will increase. At these levels, promotions are often at the mercy of internal quotas, vacancies and business requirements. It might not matter how good you are at your job if there is no need for another staff engineer.
π Not Learning Anything
Career growth doesn't just have to mean moving up the ladder, it can also refer to your personal development.
As software developers, we should aim to be learning all of the time. If you look back at the last year have you learned anything new while working?
You can, of course, learn new technologies in your spare time but employers often want professional experience of using a technology when looking to fill a new position. There is nothing quite like using technology "in anger", in a real-world situation to really understand it properly.
Has the tech stack you are using changed at all in the last 2 years?
I would expect to see something new during this time even if it is something small like learning GitHub actions.
I once interviewed a Senior engineer who had 8 years of experience. The problem was that those 8 years had been spent at the same company, with the same tech stack. They were still using WCF services for example.
Even though I liked the guy, I couldn't hire him for a senior position where he was expected to mentor other developers, as he knew less about our tech stack than the most junior members of the team.
This is the real risk, if you stay at one company for too long without learning anything new, you will be underqualified for a new position without taking a massive pay cut.
π The Company is Failing
You aren't on the Titanic and you are not the captain of the ship. You don't have to go down with it.
If the company is failing whether it be through layoffs, mass resignations or poorly performing financials it isn't wise to stay the course.
For tech companies, when they lay off staff to save money it isn't usually met with a decrease in workload. It is different if you work for a service-based company that just isn't getting the clients. But for most tech companies there is still the same amount of work it is just divided amongst fewer staff.
If you felt a bit overworked before then it is likely to get a lot worse with smaller teams.
π¨βπ©βπ§βπ¦ Lack of Work-Life Balance
I don't mind working a few extra hours if it is infrequent and I am paid overtime.
Unfortunately in the 12 years I have been a software developer, I have never had overtime pay. It is really not that common in the tech industry unless you happen to work in the public sector.
In the past, I have ended up working 50 - 60 hours a week, including work at the weekends and out-of-hours, without any extra pay. Companies will often argue that it is part of the already high salary but working this much can result in your hourly wage being closer to minimum wage.
You should work to live, not live to work. It is fine if you love your job and you have no other commitments. Chances are however, that doesn't apply to you.
Those extra hours could have been spent with friends and family instead of at your desk.
πͺ Should I Stay or Should I Go?
Should I stay or should I go now?
If I go, there will be trouble
And if I stay it will be double
Now that I have got that song in your head for the rest of the day, let's have a look at our options.
Whether you do decide to leave or take one of the paths below, it is important to have a discussion with your manager first (assuming they aren't the cause of your discontent). They may come up with some other changes that we have not covered that could improve your situation.
π Internal Move
If the company allows it, an internal move to a different team is often the best of both worlds.
I have moved teams a couple of times in my career and it does give you that new job feeling without actually risking anything. Depending on how different the team is, they may have a new tech stack, a different workload and in some cases a better work-life balance.
One move I made was from a high-traffic, very critical part of the business to the backend internal tooling. This resulted in a night and day difference in work stress and a more manageable workload. After a couple of years of broken sleep from on-call, this was a welcome relief.
Unfortunately, not all companies offer this and they may decide you are too critical to the project to move. Which is short-sighted reasoning considering your alternative is to leave the company completely!
Of course, if you are wanting to leave due to a company-wide toxic culture then moving teams isn't going to help.
β±οΈ Reduced Hours
More and more companies are trialling a 4-day work week and in some cases without a reduction in pay.
Have you ever noticed how good your work week is when there is a bank holiday? Now imagine this every week.
Companies have found that reducing the work week by 20% has actually increased productivity as well as employee satisfaction. I can't imagine a world where every company offers a 4-day work week but I can see it becoming more popular in white-collar jobs.
Even if your company doesn't officially have a 4-day work week it is worth asking, especially if you are a valued employee. If you are good, then having you work for them 4 days a week is better than none. Just be prepared for a potential pay cut if you go down this route. If you can afford it, I would say the benefit of life improvement justifies the cost.
If a 4-day work week isn't an option, you could just work your contractual hours and nothing more. Try leaving at 5 pm on the dot every day and see if you get any raised eyebrows. As long as you can complete your work employers shouldn't expect any extra from you.
Some might consider this "quiet quitting" but that says a lot more about our work culture than anything else.
π΄ Sabbatical
In some cases, reducing hours, changing teams or even changing companies isn't enough. Once you have a lot of experience even a different company can start looking like more of the same thing.
If you can't see yourself doing what you are doing for another 5 - 10 years then you might need a bigger change.
This could mean a complete career shift or an extended break.
A sabbatical is an extended career break to give you some time to do something else. In that time you may find another passion that you want to pursue long-term instead of being a software developer. You don't have to do the same thing for your whole career.
If you want to go on a sabbatical then you need a lot of savings, enough to last your break plus a bit more for contingency.
If you are an experienced software developer with a high salary, it should be possible for you to save a large chunk of your salary if you keep your expenses to a minimum.
Even if you don't end up finding a new vocation in your time off then you can always go back to being a software developer. At least at the moment, we are always in demand.
Just be careful not to burn any bridges on your way out.
If you want to read a bit more about taking a sabbatical I wrote a piece last year about my own sabbatical.
β€οΈΒ Picks of the Week
π Article - My 20-Year Career is Technical Debt or Deprecated. We often worry about tech debt accumulating in a project, however, if you leave it long enough the whole project becomes tech debt. Like the author, I started on BASIC and then went to Visual Basic. At university my lecture made me use FORTRAN for my project. To be fair I did Physics so this wasn't too uncommon.
π Article - Improving Performance with HTTP Streaming. An interesting article from the Airbnb team on how they used HTTP Streaming to improve their web application performance.
π Article - Understanding Database Indexes in PostgreSQL. One of the key aspects I try to teach is that it is important to understand how something works if you want to master it. This is a really good article with illustrations that explains how database indexes work in PostgreSQL.
π Article - Apple previews Live Speech, Personal Voice, and more new accessibility features. While I was playing around with AI, I thought about creating an app for non-verbal people to have a greater range of AI voices they could use. Looks like Apple are building this into their devices which is great. For those with ALS and other conditions which could result in voice loss, they can use recordings to recreate their voice, which is really cool.
π¬ Quote of the Week
If you have a day job you don't take seriously because you plan to be a novelist, are you producing? Are you writing pages of fiction, however bad? As long as you're producing, you'll know you're not merely using the hazy vision of the grand novel you plan to write one day as an opiate.
From How to Do What You Love by Paul Graham. Resurfaced with Readwise.
π¨ Are you looking to level up your skills in the tech industry?
My weekly newsletter is written for engineers like you, providing you with the tools you need to excel in your career. Join here for free β