8 Tips on How to Resign from a Software Engineering Job
Quitting your software engineering job can be a daunting & complex task. There are many different steps you should take to ensure you have a smooth handover.
7 min read
11 Dec, 2021
Leaving your job in a poor manner could have a negative effect on your career and damage your professional reputation. This is even more important if you prefer to not work remotely, as the saying goes "it's a small world". Although you may already feel disengaged at your current role, it's essential to keep professional during this process and deliver a thorough handover; and you never know, you may be looking for a job at the same company in years to come.
So if you're looking to leave your software job, here are the steps you should take:
💼 1. Schedule informal meeting with your manager
It is good practice first to let your immediate supervisor know about your intentions to leave in a 1-to-1. The supervisor knows the role you've been playing and how your departure will affect the team's output. Therefore, it's good to discuss your intentions to leave with them first, before handing over your official resignation.
Obviously, don't barge into their office or call them out of the blue to start a 30 minute or 1-hour conversation. Send your supervisor an invite, asking them when they are free to have "a quick chat". Although it's better to do this in person, a Zoom call is nearly as effective.
Asking them "for a quick chat" first, will soften the blow as your manager will likely know what this means...
🕒 2. Find your notice period i.e. calculate leaving day
Given that the function of a software engineer is often business critical, you'll likely need to give at least two weeks notice that you intend to leave, before your last day. This depends on the contract you signed when you joined the company however, as each position requires varying amount of notice period.
So the next step is to identify the terms of your job offer when you joined the company to see how many more weeks (or months) you you need to work for. Notice period can vary widely between companies and position but usually they are:
- Junior developer: 0 - 3 weeks
- Senior developer: 1 - 2 months
- Lead developer or manager: 1 - 3 months
If you are unable to find your notice period or your initial contract, email your company's human resources team to find this information.
Your notice period will give your manager and the rest of the company's management time to:
- Start hiring for someone to replace you
- Work out who may temporarily fulfil your duties in the short term when you leave
- Open a consultation window with your colleagues and help them to understand more about how your code works and what needs to be done before you leave
In most cases you'll finish at the end of your official notice period, but it's common for some staff to leave sooner than was initially agreed.
For example, if the company feels you could pose a risk (e.g. stealing data) before you leave, they may put you on "gardening leave" i.e. a period of time during which an employee stays away from the workplace and doesn't work, or works remotely.
Although unlikely, your current employer may prefer you to stay a little longer than your notice period. In this case you could try to negotiate an ongoing consulting arrangement, often at a much higher $ rate. This will probably not be possible however, if you have a new job to go to.
When giving them your notice period by agreeing a finish date, you should also factor in any vacation you have accrued.
For example if your notice period was 1 month and you had 10 holidays available, you'll be able to finish up in just over 2 weeks, assuming you work 5 days per week i.e. 22 (average working days in a month) - 10 = 12 days.
Would you like a 4 day work week?
✉️ 3. Submit your official resignation email
Once you have spoken with your manager informally, you will need to send them a resignation email to make your departure official, and most importantly logged. Once you take this step, there is no going back... so make sure it's definitely what you want to do.
Your written resignation letter or email provides your employer with an official notice about your intention to leave. Most people submit their notice via email although in the past this took the form of written letter; this varies from industry to industry. If you work as a software developer, assume that an email if fine and also avoid using an instant messenger (e.g. Teams, Slack etc).
Your email should follow all the mechanics of a formal resignation notice:
- Explain that you're resigning from your insert job title
- State your notice period (i.e. from your original contract)
- Calculate the date of your last day
- (Optional) A sentence or two thanking your manager. Plus a sentence saying you have enjoyed your time at the company and are leaving with regret
Informal Resignation email:
Hi [Manager], I regret to say that I will be resigning from my current position as Software Developer. I have thoroughly enjoyed working at Google and write this with heavy heart. I also really appreciate all the help you've given me in the current role. My notice period is 1 month and I have 10 days holiday so I was thinking my last day should be 10th June 2022 - does this work for you? Thank you again and I look forward to staying in touch [Name]
Formal Resignation email:
Dear [Manager], I write to inform you that I am resigning from my position here as a Software Developer. My last day will be on the Jan 7, 2022. I write this email with regret as I have thoroughly enjoyed my time working at Google - I also really appreciate all your help and support over the last 3 years. Shall we arrange a meeting to begin my handover? Sincerely, Phil
📅 4. Create a handover plan
For a technical role like software engineering, there needs to be a transition plan in place to prepare the rest of the team for your departure.
Immediately after submitting your resignation email, schedule a meeting with your manager and other developers in your team to discuss the projects you've been working on and what is being done. Assess your current role in the projects and discuss with the rest of the team about the most effective ways of filling up the gap.
During this period it's crucial that you avoid getting involved in any new projects. It's easy to accepted small projects (e.g. "ye, I can get that data for you") but this will only negatively effect your handover.
You should create a number of to-do tasks in your company's project management tool (e.g. Jira) to plan what you need to finish. This will include tasks such as:
- Publish all code to Git
- Add more comments to your code
- Document your build processes
- Add additional information to your company's Wiki (e.g. Confluence)
- Schedule shadowing sessions with team
👥 5. Schedule shadowing / pair programming
A shadowing session will help your team better understand the projects you have been working on. Just because you understand it, doesn't mean a new developer with limited background will understand your code.
Therefore it's good to sit down in front of a screen with one of your colleagues and show them anything which needs explanation. If you work remotely, you may want to use a pair programming tool such as Tuple
Some examples of things you might want to walk them through:
- Project architecture i.e. how your code works at a high level
- Complex build processes i.e. is your application containerized? Or do they need do use particular packages
- Known issues or bugs
- Areas which could be refactored / improved
These pair programming / shadowing sessions will be of huge value to anyone who is required to take over your duties. Ultimately you should try to put yourself in the shoes of the person who will replace you - what information would you find useful to help you in this new role?
🤝 6. Commit your code and documentation
After creating a transition plan and carrying out shadowing sessions, you need to make sure your code is all committed to your company's Git / version control system. Don't miss anything, it could be costly for the company!
Make sure you've published all your pull requests and don't rush this - it's very easy to accidentally commit a secret (e.g. private key, password) to the repository.
All of your other logins should be automatically set to expire by your company's IT Team so you don't need to worry about that. It is quite common for accounts to take many weeks to be shut down however, so after you leave you could try to login again. If you are still able to login, it would be common curtesy to let you ex-boss know.
In general, work with your team to make sure they have everything required from you before leaving. Write up as much documentation explaining anything complicated (e.g. build processes) - recorded screen video's work great for this but you should also make sure it update your company's Wiki if they have one (e.g. Confluence). The more people who have knowledge, the better.
🏖️ 7. Check your employee benefits
You might possibly be eligible for continued employee benefits after resigning from your software engineer role.
Health insurance: For instance, the law entitles you to maintain your healthcare coverage after leaving employment via the Consolidated Omnibus Budget Reconciliation Act (COBRA). Look for other benefits specific to your organization and understand what the organization requires of you to access them. If you have a 401(k), you can roll it over to your new employer's 401(k) or an Individual Retirement Account (IRA). Ask the department that administers your benefits about your available options.
Share options: You should also be aware that when you leave, you will lose any unvested share options you were given as part of your compensation package. Share options give you "the right to buy a certain number of shares at a fixed price, some period of time in the future". For example, you may have been given "share options with a 3 year vest period", which means you would have needed to stay at the company for 3 years to "receive" your company stock. Therefore, if you were given share options, check your contract to see how long this vesting period is - you wouldn't want to leave 1 week before they vest and lose all of this value!
🧘 8. Don't live with regret
Once it's done, don't live with regret. You decided you wanted to leave for a reason so it's almost certainly the correct choice.
Nostalgia is a powerful thing. Once you've resigned, it's common for people to start reminiscing of "the good times" at a company but always remember that you are leaving to improve your career and / or mental health. So leave with the knowledge that you're making the right decision.
To summarise, if you're looking to quit your software engineering job we recommend you take the following steps:
- Schedule an informal meeting with your manager
- Identify your notice period to calculate your last day
- Submit your official resignation email
- Create a handover plan
- Schedule shadowing / pair programming sessions
- Commit your code and documentation
- Check eligibility & expiration of employee benefits