Navigating the Job Search as a Senior Software Developer

After parting ways with my last job, I found myself navigating the uncertain waters of job searching. In this article, I’m sharing the lessons I’ve learned and the advice I’ve collected from others along the way. It’s a personal roadmap filled with actionable strategies and reflections, crafted to support anyone facing similar challenges.

Preparations

Prepare Mentally

Take a few days off, if you need to, to prepare and let go of any negative emotions. You don’t need that baggage when interviewing for your next position. Finding a job is a job in itself, and it is a hard one. Unless you are lucky, it will take time and patience. Be ready for it.

Get ready for rejections. There will be many. Some of them may hurt your self esteem. Your job is to not let them. Remember, it’s not personal. Consider meditation and mental conditioning protocols to stay calm and positive.

Prepare Financially

Calculate how much financial runway you have. First, estimate your current average spending rate. Then, combine your savings with any severance pay. Lastly, divide this total by your average spending rate. This will give you an estimate of how long you can afford to be without a job. Based on the state of the job market, use this estimate to decide whether you need to compromise on your demands.

Brush Your Knowledge and Skills

Take time to practice your interviewing skills. While some companies invest a lot of thought and effort into designing great interviewing challenges related to their business domain, many, particularly in larger tech companies, use interviewing processes that may not align directly with job-specific skills. The fact that you are writing code for your living for the last decade, doesn’t mean that you might be challenged by a LeetCode question.

Refresh your memory on the basics, like algorithms and data structures. Solve a few of LeetCode questions, focus on medium difficulty challenges. Read the “Cracking the Coding Interview” book. Ask your friends or colleagues to conduct a mock interview.

Prepare Your Stories

Prepare a story or two about a project you have been working on. These projects need to have sufficient complexity, either technical or business wise. It helps to have one story of each kind, that you can adapt based on the interviewer’s expectations. During the interview, if you can, emphasize the aspects that are most relevant to the company values. Focus on what was your role in the task. Be ready to explain the business implications for the project. Brush up on the details, since you will be asked about them. Be ready to explain the decisions you and your team took on technical aspects.

Prepare a story for the behavioral interview. This story must have 4 elements of the STAR acronym: Situation: set the stage for your story. Task: Describe the task you were responsible for. Actions: Detail the actions you took, make a focus on your own actions, rather than the team. Results: Describe the result, where you reflect on the outcomes, lessons learned, and how it contributed to the team or company goals.

Practice telling these stories out loud.

Set Your Goals

Before beginning your job search, it’s crucial to clearly define what you’re seeking in your next role. Think of what things are important to you for your wellbeing and your career. Define what kind of role are you looking for and set your “red lines”.

Role and Career

  • Do you want to pursue a managerial track, or individual contributor (IC) track?
  • Field/Niche - Are you interested in frontend, backend, full-stack, infrastructure, data science, ML, etc.?

Compensation and Benefits

  • Salary and bonuses.
  • Equity - amount and conditions (cliff, price of exercise).
  • Other important benefits or perks like medical insurance.

Work Mode and Work-Life Balance

  • Work mode: In-office / Hybrid / Remote.
  • If hybrid, how many days a week are you willing to commute to the office?
  • Location, if the work is in-office or hybrid.
  • Are you willing to travel? Consider if traveling or lack of it is important to you.
  • Working in odd hours - some positions require working regularly in odd hours, ofter because of communicating with people in different time zones.
  • Shift Work/On-Call Duties - Consider your willingness and acceptable level of commitment to these schedules.

Company Characteristics

  • Company size - company size often dictates both the company culture and the range of responsibilities of individual employees. Each size has its own sets of advantages and drawbacks.
  • Company business - do you care to work in a specific king of business? Are you mad about developing computer games, or eager to save lives in a medical field? Does finances trigger your interest? Are there fields that you want to avoid?
  • Company culture - is it collaborative, competitive or innovative?

Technology and Methodology

  • Development methodology - how day-to-day works is being managed and done. What is each team member level of autonomy?
  • Tech stack - is there a particular technological stack you want to work with, learn it or avoid?

Rate these priorities according their importance to you, or perhaps create a priorities matrix. Use them to rank the companies that you are applying to.

Prepare Your Resume

Resume is often the first point of contact and also the first place where the potential employers filter out the candidates. Update your resume, make sure that it has relevant information about your latest employments. Add points and keywords to match the job profile you have set for your next job.

You might want to create more than one version of your resume. If you are considering more than one job profile, you might want to emphasize different aspects of your resume, for example, put accent on your managerial skill for a Team Lead job and on your technical prowess for an individual contributor position.

In some cases you might want to adapt the resume when applying to a specific company. In those cases, ensure to put emphasis on the points specified in the job description, perhaps even using the same jargon.

Update your LinkedIn profile. Make sure that it matches your resume, or at least does not contradict it.

Review all versions of your resume to ensure the best styling and lack of typos or grammar mistakes. Use automated tooling, spell checkers like ProWritingAid or Grammarly. You can gather feedback and improvements from AI platforms like ChatGPT and in the best case have it reviewed by a professional reviewer.

Managing the Process

When going into the active job searching phase, you need to handle it similarly to a marketing funnel.

Sourcing Leads

How to source leads?

  • Revive recent approaches on LinkedIn
  • Use friends and your network.
  • Contact recruiters
  • Find open positions on LinkedIn, but avoid applying to a position via the platform. Use company webpage instead.

Things to consider: Some subtle things are market specific. For example, in some markets it’s looked down upon to use the “open for work” badge on LinkedIn.

Don’t Overwhelm Yourself

Find out how many interviews you can do well in one day and one week. Don’t be tempted to do more than that. It will hurt your chances. Interviewing is hard, it takes both mental and physical toll.

Consider creating an interview schedule that is spaced out leave time to recover and prepare for the next interview and adhering to it as much as possible.

Tracking Your Progress

Prepare a job application tracking system to allow you managing your concurrent interviewing processes. This will allow you

  • Keeping track of your progress in the interviews.
  • Managing your pipeline and avoiding overcommitting.
  • Having relevant context during the interview and occasionally saving you a bit of embarrassment.
  • Making more informed decisions.

You would need a table to track your active processes and a template for a document or page for storing the information about a specific position in a company.

A few suggestions for such systems:

  • Combination of a spreadsheet with a company document template.
  • Notion.
  • Obsidian (my personal choice).

The first option has the lowest bar for entry, while Notion and Obsidian require a bit of familiarity, but also offer much better integration.

Template

The template should contain:

Relevant contacts

Recruiter, HR, interviewers, etc.

Information about the company

Put there everything you find in your research and information collected during the interviews.

Information about the position

A field per every important item from the [[#Things to Consider]] list.

Hiring Process

Should contain the most common hiring process steps in your job market, for example:

  • Screener
  • First technical interview
  • Second technical interview
  • Interview with the management
  • HR and behavioral interview.

Update this list to match the common patterns in your job market.

Personal Reflections

Where you place your feelings and thoughts about the company, position and the potential future coworkers?

How to work with the system?

For every new process, start a new document from the template and add it to the tracking table, if not happening automatically. Write down every important detail about the company that you can get. Do your research, read feedback on Glassdoor, ask the interviewers. One trick I used a few times: I reached out to ex-employees of the company who occupied similar roles and asked them for feedback about the company.

Add notes after every interview and steps. Read your previous notes before every interview. This could give you an edge and create a better impression on the interviewers. Update the table according to your progress.

Consider reviewing the system periodically and adjusting it where needed.

Meet the Team

Once you have passed all the technical interviews, and the job is either on-site or hybrid, I suggest asking to have a lunch with the team.

This will allow you to meet them in a more relaxed environment and gaining a more authentic view of the team, their personalities and culture. This can be crucial in assessing whether you fit the culture. You could prepare a few questions in advance, or go with the conversation.