Google "how often should software engineers switch jobs" and you'll find that 3 years is the sweet spot. Personally, I don't believe in such rigid rules, but most developers will eventually feel the urge to put their talent and skills to the test elsewhere.
So, what to do when you get to this point?
As a software engineer who has recently landed a new job, I'm coming with a wide range of handy tips on career moves.
What not to look at while switching jobs or projects
Your first thought is probably to discuss your role with the recruiter and base your decision on what they say. It's quite intuitive, after all this person is your first point of contact.
Be careful, though — the way HR specialists present the role and environment doesn't necessarily have much to do with its actual state. Of course, they don't act out of malice or try to deceive you. We simply interpret facts differently.
Also, no job interview — let it be with recruiters, tech lead, or future team — guarantees a perfect match. Let's be honest, both developers and company representatives want to put themselves in the best light possible.
Hiring managers would focus solely on the advantages of their workplace, so would the potential boss and colleagues. The potential employee doesn't benefit from showcasing his weaknesses either.
I've only heard about one exception — a recruitment process whose main goal was to discourage candidates from proceeding. Still, it's not a common strategy, and there's always a sound reason to use it, such as the nature of the job or specific expectations of employees.
Common signs it's time to change jobs
The obvious sign that it's time to look for a new job is stagnation. Have you stopped picking up skills and boosting your career? The time is now, your current job is no longer enough.
But this is not the only signal to move on.
Take a closer look at your relationship with the client and coworkers. If it's been going wrong for a long time or has recently worsened, leaving the company might be your best option.
Are you attached to any particular programming languages? It may happen that the tech stack undergoes some changes. If you don't feel comfortable with the decision, consider switching jobs or projects.
The last common reason for changing companies is when you need a fresh start. Whatever happened, don't hesitate. If you want to start with a clean slate, a new environment is exactly what you need now.
How soon is too soon to switch jobs
So, you've seen some of the signs I mentioned above. What now? Should you submit your resignation immediately?
No, my fellow developer, hold your horses. Job hopping doesn't make your resume look good.
Also, it's only fair to give the company a chance — they might surprise you. After all, you can learn something everywhere, in all conditions. If not technical skills, you could acquire some soft skills. If not a new framework, maybe you could learn a new language or practice cross-cultural communication with clients and developers.
To judge the work environment, you could use a decision table. In each column, write down:
what you expected from the company/project;
how it was described by the hiring manager and software engineers;
how it really is; and
what your career prospects are, for example, for the next 6 months.
If you've been working there for quite some time and the columns have many similarities, it means your development might be hindered. Compare the columns and put all the info into perspective. Only then decide if this is the place for you.
If you jump to conclusions too early, you'll end up changing jobs frequently, and yet nothing will seem to be good enough.
Job, project, or position
When you're fed up with your job, the most natural and popular option is to change the position. It's understandable — with more experience comes more responsibility, which you can assume as a senior, lead, or architect.
It's a different story if you want to switch your position from developer to analyst, scrum master, or project manager. These jobs entail a different set of skills and duties.
You might also feel like retraining as a tester, implementation specialist, or technical support specialist. It's nothing shameful or degrading — on the contrary, it requires courage and self-awareness. Not everyone has talent and a preference for working directly with code, and these careers allow you to stretch your creative muscle in slightly different directions.
If you're in your element, programming and coding full time, consider changing the project. You'll avoid stagnation while maintaining your software engineer position. A new place means new challenges. Be ready to meet the requirements — the tech stack, business aspects, and methodology might change.
Then, there's also a more drastic action you can take — leaving the company. In such a case, you not only change jobs but also get into uncharted waters. Usually, it means less familiar technologies, different business scopes, and an unknown workplace.
It's also the riskiest step, both for you and your future employer. What makes it even more difficult is your personal circumstances — loan, employment history, or strong location preferences.
How to prepare for a career change
Changing a position within the same company is not a revolution, so it doesn't demand much effort. It's a different story if you decide to explore an entirely new environment. This requires careful preparation, such as undergoing training, having tutorials, studying the technical literature, and running test projects.
It's even better to engage in working with the new team before you join it on a full-time basis. You'll get a chance to learn more about them and their work style, jargon, and habits.
How to inform your employer about changing jobs
The process depends on your workplace structure and the goal you want to achieve. If you're leaving your current company, be as straightforward as possible — tell your immediate superior and deliver the required documents to the HR department.
Things get more complicated if you want to switch positions within your company. Is there a specific career path? Try to stick to it. It doesn't work for you? Go to your manager. Are you an experienced employee? You know best who to talk to!
What to expect from employers while communicating your decision
Leaving the company is the most obvious scenario. No surprises here, everything is regulated in your contract. Of course, you can always ask to shorten your notice period. Some employers won't agree, but not many companies would expect such moves from you anyway.
If you decide to stay, getting a new position is easy as long as it's in line with the company's needs. In such cases, it's the employers who initiate the process, so they might already have someone to fill the vacant position.
When the idea of changing the nature of your work comes from you, the employer will probably need more time to carry out the process, allocate responsibilities, and manage effective knowledge transfer. Make sure to set a time frame in which this handover is to take place so that you can make a smooth transition and assume the new role with full commitment.
IT Product Companies or Custom Software Development Companies
Browse through job ads and you’ll quickly notice that your choice comes down to two options — IT product companies and custom software development companies.
Which ones are worth your click?
It depends.
Try working for both at different stages of your career and you'll get to know your preferences and gain relevant experience.
For those of you who are in a bit of a hurry and need your answer now — no worries, I have some pointers on what to expect from each type of organization.
IT product companies sell their own ideas. What does it mean for your career? You'll be working on few projects and devoting your time entirely to them.
Sounds monotonous?
Perhaps, but such a work environment allows you to change roles within the project. It's common to start as a tester or junior developer and make a transition to a tech lead, project manager, scrum master, business development manager, or product owner. All within one project — you can say you "grow with the product."
Software development companies are basically software vendors, which can take various forms. They might use the body or team leasing model — rent out their professionals to clients — or develop custom software or specific modules in-house.
Such places give you more flexibility. It's easier to change the team and technology because there are more employees on board.
As you see by now, it's all a matter of personal preferences.
The best time to work for a software development company and product company
My advice is to work for a corporation, software development company, and boutique product company in the first few years of your career as a developer. This will give you an opportunity to get to know various work styles and environments:
standardized work — usually in corporations;
less stable work but in a relaxed and friendly atmosphere — software development companies; and
work under pressure but with a wide range of tasks — boutique product companies.
Such job hopping will help you learn which option is the best for you.
Contrary to popular belief, not everyone in the industry puts development above stability and a competitive salary. This is absolutely fine, an explorer is just one type of software engineer. There's plenty of room for other types on the job market too.
What to work on: greenfield vs legacy
Greenfield is nice, small, new, bright… You can check new technologies, servers, frameworks, languages, libraries, and architecture. And — let’s be clear about it — useless, at least until it gets to production. Once it’s in production, it’s not greenfield anymore. It’s moving towards legacy. Everyone wants to work with greenfield and some will do, definitely not that many want to work on legacy… and most of us will. Actually, most of us will work on it most of the time.
Local office, remote team, or relocation
Make the decision about where to work based on your and your partner's preferences.
The fewer personal obligations, such as romantic relationships and kids, and material wealth you have, the easier it is to stay flexible. On average, Brits move four times in their lifetime, Americans even twelve times — it's definitely not an unusual event. Yet, moving houses is usually stressful. Good thing there are so many other possibilities that re-location is no longer a necessity.
Now, is it better to work from the office or remotely? The office helps to maintain a healthy work-life balance and allows you to observe other developers work. The latter is extremely important if you're a newbie or have recently learnt a new programming language. Newcomers gain massive support from discussions and knowledge sharing.
If you're ready to pursue a new career in software engineering, see our guide to finding a satisfying job in IT and check our openings below!