I found a new job
I’m thrilled to announce that I’ve found a new job! Starting next Monday, I'll be joining the engineering team at Vanta.
Getting here was a long and sometimes painful process, but what I learned is that job hunting is a skill. Like any skill, you can practice it, refine your methods, and get better at it. This wasn't a quick journey for me; it took two major rounds of searching for a senior software engineer role. The first, between February and July 2024, ended in exhaustion and frustration. The second, from February to May 2025, ended with an offer I was excited to sign.
This post documents what worked for me. It’s not a universal guide, but I hope sharing my experience can help you refine your own.
Priorities
In my first round, my search was vague. In my successful second round, I started by investing about six hours into writing, iterating, and refining my priorities.
This is what my list of "wants" looked like, in order of importance:
- An employer that can sponsor a skilled worker visa.
- Good work-life balance and flexibility to support my young family.
- Clear growth opportunities:
- Ownership of technical and architectural decisions.
- Leading projects end-to-end.
- Working across different teams.
- Influencing the company's technical vision.
- Mentoring junior engineers.
- The chance to work with senior role models who embody the growth opportunities listed above.
- Working with a wide range of technologies and architectures.
- A significant jump in compensation.
Why is this list so important? Because it becomes your most powerful filter. With clear wants, you can scan a job description and instantly know if it’s a potential fit. It gives you targeted questions to ask in early interviews, helping you gauge a role's alignment with your goals. Don't be shy about stating these priorities upfront with recruiters—it saves everyone time.
A Note on "Planning with AI" I used an LLM to help me build this list. My prompt was something like: "I'm in situation X and I want to achieve Y. Ask me questions to understand what's important to me, and let's work together to generate a plan." The AI generated a long, detailed plan which, honestly, I never looked at again. But the process of answering its questions was invaluable. It broke through my mental blocks and got me moving. As they say: Plans are worthless, but planning is everything.
CV
With my priorities defined, the practical steps became much easier. My old CV was a list of jobs and responsibilities. My new CV tells a story about who I am, what I can do, and what I’m looking for.
From this:
To this:
Feedback is gold here. I shared my draft with trusted friends in the industry, and their input was a game-changer. For example, they recommended adding the Activities and Interests section to make the CV feel a bit more personal. I also turned to AI for help: I'd feed my CV and a job spec to Gemini 2.5 Pro with the prompt: "You are a recruiter for [Company Name]. Given this job spec and CV, write a report about the candidate's strengths, weaknesses, and whether you'd move forward with them." This helped me spot gaps and tailor my CV for the senior-level roles I was targeting.
I didn't apply to a single job in my second, successful search. Instead, I updated my LinkedIn profile, set my status to "Open to Work," and let the recruiters come to me. While most of it was noise, enough quality opportunities came through this channel. (I tried LinkedIn Premium for a few months, but I can't say for sure if it made a difference).
Efficient communication
On busy days, I was juggling conversations with maybe 5 recruiters. As a non-native English speaker, writing professional, enthusiastic replies can be a time sink. AI was an invaluable assistant. I would copy an entire email or LinkedIn thread into an LLM and say: "Write a brief, enthusiastic reply. Say I'm interested and available for a chat on [Days] at [Times]." The LLM would generate a few options, and I’d mix and match sentences to create a response I'm happy with.
Tracking your progress
To avoid chaos, you need a simple tracking system. Mine was just two folders: Active
and Archive
.
Each company I was interviewing with got its own file in the Active
folder. The file was a running log with dates as headings, where I'd jot down notes from every interaction and list TODOs for future stages. If a lead went cold or I got a "no," I'd move the file to Archive
. This was surprisingly useful, as a few "dead" leads came back to life weeks later.
At first, I created a file for every recruiter who reached out. Later, as I grew more confident, I'd only create a file after the initial screening call went well.
Interviews
My first round of interviews made one thing painfully clear: the system design interview was my biggest weakness. I knew I had to get better. I learned quite effectively from books, so I picked up Martin Kleppmann's 'Designing Data-Intensive Applications'. It's a masterpiece, but it’s dense, and I found it hard to absorb without more practical context.
Next, I picked up Alex Xu's 'System Design Interview'. To be blunt, it’s not a great book—it can be sloppy and unclear. But for its intended purpose, it's serviceable: it will help you pass the interview.
Here was my practice loop, which worked brilliantly:
- Pick a problem from Xu's book (e.g., "Design a URL Shortener").
- Turn on screen recording. Using a text editor for requirements and tldraw for diagrams, I'd talk through my solution as if I were in a real interview.
- I'd give the screen recording, text notes, and final diagram to Gemini 2.5 Pro with this prompt: "As the interviewer in this system design interview, please write a detailed report about the candidate for a senior backend role."
- Finally, I’d read the book's solution to see what I missed.
Of course, System Design is just one piece. To brush up on algorithms and data structures, a friend recommended Gayle Laakmann McDowell's 'Cracking the Coding Interview'. This book is excellent! It’s an easy read and quickly filled my knowledge gaps—not just on coding problems but also on behavioural interviews and general prep. I’d recommend it to any engineer, interviewing or not.
Finally, the best practice is real practice. Don't be afraid to continue with an interview process even if you're unsure about the role. You can always say no later. I treated several interviews as live practice sessions. Ironically, one of those "practice" opportunities turned into an offer that I seriously considered.
Summary
The biggest takeaway is this: job hunting is a distinct skill. Don't assume that being good at your job automatically makes you good at finding one. You have to practice the skill of job hunting itself. The process is a grind, but it’s a solvable problem. With a clear plan, the right tools, and iterative practice, you can navigate it successfully.
Good luck!
This blog post was made with the help of Gemini 2.5 Pro.