How to Leave Your Software Development Job (Without Screwing Up Your Future)

Written By John Sonmez

The best way to leave a job seems pretty obvious, yet many fail to understand the right way to proceed in this part of their software developer profession to make me think it was worth a short chapter.

Leaving a job in the wrong way can have disastrous results on your career and can possibly permanently damage your reputation, especially if you live in a small town.

There is often quite a bit of emotion involved in leaving a job.

Anger, frustration, and even guilt are usually the key motivators that cause an otherwise rational person to make extremely unwise and irrational decisions when leaving a job.

I’ve left plenty of jobs in my software development career in order to pursue new opportunities, and I’ve had my share of mistakes.

In this chapter, I’m going to talk about how and when you should leave a job and also give you some general advice on the dos and don’ts of vacating your current position of employment.

When You Leave a Job

Leave Your Job

Let’s start by talking about when you should leave your job.

Far too many software developers stay at a dead-end job where they aren’t happy and are not growing for far too long.

There are many reasons for this.

Some programmers are afraid that they won’t be able to find another job.

Others are used to a certain level of comfort and don’t want to risk that by entering a new work environment.

Yet others are in a job they know they should leave, but these programmers clinging desperately to the false hope that the toxic environment they are currently in will eventually change.

Perhaps the most common reason developers stay in a job too long is because they don’t realize the other opportunities that are out there.

How do you know if you are sticking around too long and that it’s time to move on?

One of the best indicators is a lack of growth.

If the job you are in is not providing new challenges for you and you don’t see any opportunity to grow as a software developer—and as a person—it is probably a good indicator that it is time to move on.

It is really easy to get stuck in a rut because you are comfortable or are afraid of change and the unknown.

But all growth in life is only achieved by making yourself feel uncomfortable.

There are plenty of job opportunities that offer a huge amount of growth, but there are other jobs where you know that the work no longer challenges you and you don’t see any path for growth.

As soon as you know you are in a dead-end job, you should be preparing to move on.

I’ve seen far too many software developers stay in the same job, with the exact same job title, for 10 or even 15 years.

If you aren’t growing, you're dying. Grow.

Another really good reason to leave a job—perhaps the best one—is that you’ve identified the work environment to be “toxic.” Toxic Environment Work

I receive horror story emails from programmers every day where they tell me about how their boss verbally abuses them on a daily basis or their coworkers passive aggressively belittle them constantly through abusive code reviews.

Life is too short to deal with shitty people.

Eject jerks from your life.

If you are in a toxic work environment, don’t keep hoping it will change. Get out.

Don’t play the victim when you have power to change your situation.

No one should tolerate a professional work environment where they are constantly being psychologically abused.

However, not all reasons for leaving your current job are negative or emotional.

Sometimes, you’ll have a better opportunity come along that you should take simply because it is a better opportunity.

I’ve left plenty of great jobs in my career just because a much better opportunity presented itself.

Business is business. We all have to do what is best for ourselves career-wise.

If you have reservations or feel compelled to be loyal to your current workplace, always remember: no one else is going to look out for you.

That doesn’t mean that you should job hop at every opportunity that comes along which might be better than your current job, but if you see a really good opportunity, don’t be afraid to take it.

How to Leave a Job

Now that we’ve covered when, let’s talk about how.

Seems obvious, right?

You just quit! There, done.

Well, it’s not quite that simple. There are a great deal of complex emotions to deal with when leaving a job, especially if you’ve had the same job for several years and have many friends at work.

In general, you want to make the break as clean and non-personal as possible.

You want to make sure not to justify yourself, but to simply make your decision stand.

Benjamin Disraeli, a former British Prime Minister, is famous for saying, “Never complain and never explain,” and I think this advice is especially apt when it comes to leaving a job.

Don’t Worry About “The Team”

Guilt Leaving Job

Honestly, this is perhaps the toughest part of leaving a job.

There is a huge amount of guilt associated with abandoning “the team.”

If you're a conscientious person and you’ve been working in a team towards a goal, it can feel like you are letting people down if you suddenly leave the job and move on.

You have to fight this feeling and realize that life will go on without you, and you must also concede that you are not as important and critical to the team as you think you are.

One of the most common excuses I hear from software developers who are considering leaving their current job is that the project will fall apart without them or that they’ll be abandoning the team.

I’ve been there myself—on both accounts.

You have to realize this is partially hubris at work here.

We want to feel like we are so important and critical to the team, but the truth is anyone is replaceable.

You are not abandoning the team; you are making a career and business decision.

I actually stayed at my last job well beyond when I should have left, mostly because of the feeling I had that leaving would be abandoning my coworkers.

I felt bad about moving to my next opportunity because I didn’t want to disappoint my current boss, and I didn’t want to leave “my team” high and dry.

But you have to do what is best for you.

They’ll get over you and they’ll understand.

Give Two Weeks’ Notice

One mistake that is often associated with the guilt of abandoning the team is giving far too long a notice when leaving a job.

My advice is to give two weeks’ notice and that is it.

When I left my last job, I gave two weeks’ notice and then I was asked to stick around for an extra two weeks.

Quite honestly, I should have said no, but because I already felt guilty about leaving the team, I caved in and said yes.

I ended up wasting two weeks of time that I could have productively spent on my new venture, and I really didn’t get any benefit from it.

I ended up drawing out an already difficult situation and making it more awkward, and I also risked something happening which could have messed up my future plans.

When you stay longer than two weeks, you can quickly wear out your welcome, and you could jeopardize the opportunity you are moving to by delaying the transition.

Nothing is worse than staying at your current job an extra two weeks and in that time having something happen at the company you are supposed to be moving to, which causes them to rescind the offer.

You could suddenly go from two good developer jobs to no developer job at all—all because you tried to do the right thing.

So, do give notice. It’s not professional to just quit on the spot, but make sure it’s just the standard two weeks.

If your current employer needs you for longer than two weeks, work out a consulting arrangement for so many hours per week so that you can start on your new job and not put that one at risk.

If your current employer isn’t willing to pay you as a consultant after the two weeks are up, then they don’t need you as much as they thought they did.

Don’t be guilted into staying longer.

Again, you have to do what is best for you.

Don’t Threaten to Leave a JobThreat Leave Job

If you are going to leave a job, just leave it.

Do not, do not, threaten to leave.

Plenty of bad things can happen to you if you threaten to leave a job. It’s a really bad idea.

You may think that presenting an ultimatum—saying if something doesn’t change or you don’t get your way or get a raise, then you will quit—is the best way to get what you want, but it isn’t. Trust me.

What is likely to happen is that as soon as you make a threat to leave a job, your boss will start looking for your replacement.

No one likes to feel as though they are being bullied.

Once you establish yourself as someone who is willing to resort to threats to get what you want, you’ll be considered a loose cannon and a potential liability.

If you have a problem with your work environment, it is ok to make it known and to ask for a change, but if that change doesn’t come, you have two choices: live with it or quit.

Plenty of software developers have walked into the boss’s office thinking they were too valuable to be let go, tried to throw their weight around by threatening to quit, and immediately found themselves packing up their shit.

I can recall one incident where I was working at HP. I really wanted to be put on the .NET development team since that was my specialty and I was already consulting on that team’s architecture meetings, but for political reasons, I wasn’t allowed to move to the position.

I was not happy.

I made it known that I really wanted to be moved to the team and that I could make a much bigger contribution on the .NET team.

Nothing happened.

So, when I’d had enough, instead of threatening to quit, I simply made up my mind and found a new job.

I gave my two weeks’ notice and fully planned to leave.

At the last minute, literally as I had my hand on the door to exit the building, one of the high-up section managers at the company called me into his office.

He said that since I hadn’t made a threat and had instead simply left, he was going to give me an offer to stay at HP with a much higher salary and a position on the .NET team.

He made it clear that plenty of developers had tried to get what they wanted in the past by making threats, and they had a strict policy to never negotiate under those conditions.

Don’t Give Advance Notice

This is just plain stupidity, but I see it all the time.

Again, this is usually motivated by guilt or by a person trying to be forthright and do the right thing.

One of my good friends was planning to quit his job and move to freelance work in two months’ time.

He thought he’d be upfront about it and let his boss know his plans, so they could prepare as much as possible and it wouldn’t come as a shock.

I told him not to do it and instead give the professional standard of two weeks’ notice.

He said he had a great relationship with his boss at work and that he wanted to give him the heads up.

He thought nothing bad would happen.

Can you guess what happened?

As soon as he gave his “two months’ notice,” his boss said, “Nah, that’s ok, you can just leave now.”

He was shocked.

He didn’t even get two weeks.

But it makes sense.

It’s a big liability to have an employee hanging around who you know is going to leave in two months.

You can’t give them any major projects, you don’t know if they’ll actually quit sooner, and you don’t know if they’ll do any work or just collect a paycheck.

So, as tempting as it is, do not give advance notice.

Do not tell your boss you are planning to stay for two more months or a year or whatever it is.

Just keep it to yourself and when you are two weeks out, then break the news.

Besides, what if your own plans change?

Quite a bit can happen in two months.

The World Is Incredibly Small

Small World Work


I’ve run into people I’ve known in high school in a corridor in a hotel.

I’ve met people in foreign countries who I’ve randomly talked to and they happened to be friends of my friends back home.

The reason why I’m telling you this is because the next two things I’m going to talk about are all about recognizing how small the world is, and because of that, how fast you can ruin your reputation.

I’ve seen, firsthand, software developers who have blackballed themselves from employment in a geographic area because of how they left a job.

You always want to leave on the best terms possible, whether your departure is voluntary, involuntary, or you just have to get the hell out of there.

Train Your Replacement

One of the best things you can do in order to leave a job on good terms is to do an excellent job of training your replacement.

It’s tempting to not do this, especially if you’ve been fire—I mean, laid off from your job as a Software Engineer or developer.

You have to fight your ego, which says that no one can do as good of a job as you and tells you that if you train your replacement then no one will miss you. Instead, realize the greater importance of long-term legacy and reputation.

Contrary to popular belief, it’s actually in your best interest if things do not fall apart after you leave.

Many software developers get this foolish notion that if the company they leave is hurting after they leave, it means they were valuable.

The opposite is true.

A good leader starts training their replacement the moment they take a new job.

A good leader knows that they become immensely more valuable by building teams, companies, processes, and infrastructure that allow things to run smoothly without them.

A self-conceited jerk with self-confidence issues, scared of any form of insecurity, believes themselves to be a critical part of an organization which will ultimately fail without them.

Therefore, when you're on your way out—voluntarily or not—make sure to do the best job you can during those two weeks training your replacement.

Document everything you can. Take all the knowledge from your head and transfer it to the company, so they can function as well as possible without you.

Not only is this the right thing to do, but it may also pay off someday when someone runs into someone else in an airport and strangely your name comes up. Know what I mean?

Don’t Say Anything Bad in the Exit Interview

Say Stupid Interview

I just don’t get this one.

You're on your way out the door.

If your boss was a low-knowledge tyrant and your coworkers smelled like homeless people, it doesn’t matter anymore because you're on your way to freedom.

So why, why, would you say anything bad or critical or anything that could in any way possibly hurt you during an exit interview?

Just don’t do it!

Nothing good can come from it, but plenty of bad can.

You have to understand that this is not the time to fix all the problems with the work environment you're now leaving, just because you have a sympathetic ear.

Not only is it too late, but it also doesn’t matter anymore—YOU'RE LEAVING.

So, when you get asked about what could be improved, what problems there are, why you are leaving, or what you liked least about the job, etc, just say something pleasant.

Don't say what you really think!

Resist the urge.

I implore you.

Nothing good can come of it.

Do you really think they are going to give you a medal and a check for $10,000 for improving the organization?

No. Not going to happen.

Yes, many times, exit interviews are well-intentioned attempts to improve the company and working environment, but fixing company culture issues doesn’t happen by listening to grievances of ex-employees on their way out the door.

Don't participate in a game that will not help you in any way, but which has a very high chance of burning bridges, trashing your reputation, and causing a witch hunt.

I’m going to end this post now because I don’t want to continue beating a dead horse – I think you get my point.