Hey friends 👋,
Being a software developer comes with some seriously good perks.
- You get to work remotely (at least some of the time)
- It pays very well
- In office perks such as free drinks and snacks
Despite the great perks, many developers (myself included) switch jobs every few years.
Even if you work for a fantastic company after a couple of years it can feel like you have stagnated, and it is time for a fresh start somewhere new.
Everyone's reason for wanting to move companies is different, but these are some of the main ones:
1. You are no longer learning something new
When you start at a job everything is shiny new and exciting. You need to learn the tech stack that the company is using and get to grips with the new domain.
Even if you are familiar with the tech stack there is always at least something that you haven't seen before.
Usually it can take up to a year to learn the tech stack and the domain properly. Once you know both well you become a domain expert, and it is just a case of adding new features to the product.
Unless you or your team introduce new technologies into your tech stack things can get a little boring.
As the saying goes, "if it ain't broke, don't fix it". Unless a particular technology is going out of support or has a security vulnerability, companies don't usually go out of their way to try out the latest tech.
Usually the only way to try out new tech in a professional environment is to move to a new company who is using it.
2. Greenfield projects turn into legacy maintenance jobs
Most developers I know like working on new projects.
There is nothing quite like being able to create something from scratch and see it take shape. The other benefit of creating "greenfield" software is not having to deal with previous developers design decisions.
We aren't all born brilliant developers and sometimes our code doesn't turn out like the masterpiece we hoped for. Even if it starts off as a work of art, without a lot of controls in place it can turn into a crayon drawing once other developers contribute to it.
After a while even the most exciting project ends up mostly as a maintenance job. Keep it running and occasionally add new features to it. There is nothing wrong with these types of projects but if you have been working on them for a while you aren't going to learn much.
Keep your ear out for new projects that are starting up in your company and volunteer yourself for them. Otherwise, it might be time to refresh that CV.
3. You aren't being compensated enough for your work
Most companies have either an annual or bi-annual review cycle. Depending on when you join the company you might be unlucky and have to wait a long time for a pay rise.
For example, a company may hold their annual review in October and you just joined in August and you are still on your probation period until the end of October. You won't be eligible to take part in the review process and will have to wait another year for the next review.
By the following year you would have been working their for a year and 3 months without a change in pay. You do really well in your review and you get an 8% pay rise.
This sounds nice but considering inflation is at 6% really it is only a 2% pay rise. If it is going to be another year before you get another pay rise, then by the time the review period comes around, you are technically earning less than you were when you started.
You can hope for another spectacular review to gain you another 8% increase, or you can switch jobs and likely gain a 10 - 30% increase in salary.
Especially if you are early on in your career this is the quickest way to get a salary increase. My personal best when job switching was a 38% salary increase.
4. You feel burnt out
Companies like to describe themselves as "fast-paced", "cutting-edge" or "agile".
In other words, they expect everyone to work really hard, really quickly and push out new features with requirements that are always changing.
Burnout is really common in tech and some industries are worse than others. If you are feeling unmotivated to work or even get up in the morning it could be due to burnout.
There are quite a few posts on Hacker News about burnout, and you can see from the comments how common it is:
"You suddenly realize that you've been eating ice cream for three meals every day for years on end. You're tired of it; you don't want to see ice cream any more. People who eat ice cream occasionally won't understand this; how could you possibly want less ice cream?!" - Gary Bernhardt
Usually the best way to deal with burnout is to take a long break and change your environment.
How often do you find yourself changing jobs? My average is currently every 3 years and that's only because I end up changing teams at least once during that time.
This newsletter is free for everyone, but if you would like to support my work and my YouTube channel you can do so by becoming a patron on Patreon.
❤️ My supporters also get the following benefits:
- 📝 Exclusive content from me (including my creator income reports)
- 🔓 Access to the source code from my YouTube videos
- 💬 A private community (currently just me if you want to ask me anything)
- 💰 Exclusive generous discounts once my courses are released
❤️ Picks of the Week
📝 Article - A Crash Course in Redis. In my latest video (see below) I am using Redis to store my idempotency keys and responses. If you wanted to learn a bit more about Redis, then ByteByteGo have a great article on how it works.
🤣 Funny Story - Can’t send email more than 500 miles. This is some grade A problem-solving right here. I love the fact that it is actually true!
🛠️ Project - kantord/SeaGOAT: local-first semantic code search engine. This is an interesting project that uses local AI to search your code.
🛠️ Tool - Introducing runes (Svelte 5). I must admit I still haven't tried out Svelte yet. I have used Vue and preferred it to React but Svelte is supposed to better. Maybe now that version 5 is out it is work a try.
🛠️ Project - OpenTofu · GitHub. I am still using Terraform for my infrastructure but OpenTofu (previous OpenTF) looks like it will be a great open source alternative.
📝 Article - What are Passkeys? As computers get more powerful so are the abilities to brute force passwords. Passkeys look like one alternative which is being actively worked on by Apple and Google.
👨💻 Latest from me
🎬 YouTube - Idempotency - What it is and How to Implement it. Idempotency is one of those words that seems to confuse a lot of junior developers, but it is quite an important concept to understand. In my latest video I cover what it is, why it is important and how to implement it.
💬 Quote of the Week
“Once you have learned to ask questions – relevant and appropriate and substantial questions – you have learned how to learn and no one can keep you from learning whatever you want or need to know.”
From Teaching as a Subversive Activity (affiliate link) by Neil Postman.
Thank you for reading The Curious Engineer. This post is public so feel free to share it.