Software development is a great industry to work in...
Developers get the chance to work on interesting topics, with smart people all over the world and get paid generously. Software companies offer many benefits, fast promotions, flexible hours and learning budgets.
But what can you do when things don’t turn out nicely?
What happens if your project is a dead-end? If you are only fixing legacy code all day? If you don’t really click with your manager?
You are not alone.
Despite the great conditions at a few selective employers, software development has one of the highest turnovers. Many software developers are not happy with their jobs.
But, switching jobs too often is a red flag and not something you want to make a habit of.
If it’s been a while and you feel like things did not turn out the way you wanted. It is time to do something about it. Before you go ahead and send that resignation letter, take a second to think about your options.
Ask yourself these questions first to make sure you don’t make any rushed decision:
What exactly is not working? Is it my team, my manager, the project or the company? What changed since I joined? Will a new dev job really help me get rid of this issue?
This exercise will help you get some clarity before making any decision. Afterwards, it is time to consider your options.
In my experience working with software developers, our clients have used the following options to successfully navigate this situation:
1.) Stick around and try to get better at software development
As a fresh software developer, an unstructured onboarding process and lack of time to get familiar with the codebase can be extremely frustrating. Yet, misunderstandings happen all the time.
Maybe that difficult colleague is on their way out. Maybe you can onboard yourself on that legacy code and be productive. Maybe the upcoming project will be a good opportunity to stand out. And maybe, just maybe frustration comes from your lack of technical skills. This a hard one to accept, it requires an honest assessment of one's skills.
Maybe, just maybe frustration comes from weak technical skills.
As a junior or mid-level developer, being thrown in a giant codebase, with limited onboarding, high expectations and unclear requirements is extremely stressful. Yet it is also one of the easiest to fix. You have to identify exactly the skills you lack and build a realistic plan to get better at software development.
And guess what, if you are still on probation you have plenty of time as the expectations on feature delivery are not that high (even if you think otherwise).
2.) Switch to another team or department
This one takes more time and skill but it pays off. It is not an easy landscape to navigate but doing so will certainly build your confidence. Switching teams is one of the smartest things to do but not always possible when you are working for a small software company.
But, if the company is big enough, there is always a possibility for you to switch to a different team. Maybe they use a different tech stack or maybe they deal with a more interesting piece of software.
If the company is big enough, there is always a possibility for you to switch to a different team.
The trick here is how you make this happen without friction. How do you make them consider you for another team? You can achieve it by developing a visible interest in other software projects or departments inside the company.
Develop a visible interest in other software projects and departments in the company.
Start helping out people from the project you want to move to, and when the timing is right grab your courage and have that awkward conversation with your boss. Trust me it will be a lot less awkward than leaving the company.
3.) Quit your software development job (and do it gracefully)
I know you are angry, I know they could have treated you a lot better. I know the senior developer was a bit too harsh in those code reviews. And the learning budget they promised never got to you. But honestly, all those things don’t really matter. What matters right now is your future and your professional image.
What matters right now is your future and your professional image.
It is important that you understand this decision is rarely one that you walk back on. Once you made the decision to quit, stick to it (even if they try to make your stay, and trust me they will).
Once you made the decision to quit you software dev job, stick to it.
Start applying to jobs before you resign. I know sometimes a stressful software job can drain you. Plus, if you are fixing bugs all day it is hard to find time to have interviews. If that’s the case, you can quit your current job without damaging your mental health.
Forget popular advice, you can quit without an offer. You are a software developer, you will find something, and nothing is worth your health. So in order to quit in the most professional way possible:
a.) Talk to your tech lead and give proper notice.
b.) Onboard other software developers on what you were working on.
c.) Be professional on your way out - do not bad-mouth, gossip and the like...
If you already got an offer it will be much easier.
You don’t want to be jumping from one sinking ship to another.
If not, it is time to face the job market. No worries by combining technical excellence with a professional image you will land a great software dev position in no time. Trust yourself, plan your spendings and be strategic. You don’t want to be jumping from one sinking ship to another.
4.) Go into freelancing (only for the brave)
If you feel that the corporate world is not for you, go into business by yourself. Put together a little portfolio, create an offer and start winning customers. Software development is one of the best sectors to be a freelancer due to the high level of specialization, companies always need some extra hands with specific tasks.
Due to the high level of specialization, software development is one of the best sectors to be a freelancer.
There are two options here, one as a contractor, which is basically masked employment and the other one is as a freelancer. The differences are the size of the project and the length of the contract and the number of customers you will handle. I personally prefer the freelancer one. The sales effort is intensive but specializing pays off. And you will not depend on just one customer.
Your success depends highly on your ability to sell and market yourself.
Unless you have a predictable way to get customers, you will never scale. This can be frightening for software developers, which are introverts by nature.
You will need to hustle, deal with the taxes and bureaucracy by night and sell like crazy by the day. But, the pay off is amazing: your coding skills will finally help directly the people you always wanted to help and there is nothing like being in business by yourself, isn’t it?
5.) Build your own software product
This is probably the hardest of the five. Why? Software products are immensely complex. Behind the ease of use of software products, there are full teams of designers, software developers, product managers and the list goes on…
Building a software product as a solo developer is immensely complex.
Getting the product right is already hard, understanding what you need to build, then going ahead and coding the MVP. Yet even if you build a proper MVP, getting it in front of the users is another one. You will need to market the piece of software you build, and just throwing it on Product Hunt or the App Store won’t be enough.
You will need to market the software product you build. Throwing it on the App Store and expecting users to show up won’t be enough.
This is not exactly my area of expertise. The only sage advice I can give you here is to spend much more time talking to your customers than actually coding. Have as many conversations as possible. Again this can be daunting for the average software developer. Don’t forget monetising can take time, so keep that personal budget tight.
This is it.
If you are a software developer struggling in your current position there are many options for you out there.
The abundance of opportunities for ambitious programmers is what makes the software development industry so exciting and unique.
Last week one of our clients left a dead-end developer job after working together on his software development skills and professional image.
If you are reading this article, you are probably also a coder, programmer or software developer wanting to move to the next level. Maybe you want to escape a dead-end job, get promoted or even go into freelancing as a consultant.
Whatever is your current situation, you will for sure benefit from these 5 options I showed above. Yet, let's be honest, reading a simple article about your options as a struggling dev, won't get you the results you want.
If you truly want to realize your full potential as a developer right now, then click on the link below and schedule a FREE private consultation with me or someone in my team.
Together we will analyse your situation and build a step-by-step plan to help achieve your goals in software development.
The only thing you have to do is click the link below and apply.
I look forward to consulting you personally soon.
We usually get in touch with you within 24 hours.
Founder at CodeWithDragos