Ace Your Next Tech Interview
The best time to find a job is when you have one. However, many of us get complacent in our current roles, taking it easy until a layoff shakes us out of our comfort zone. At that point, we frantically reach out to our network and scramble to find resources that promise to help us land a job quickly. This post, however, is different—it will help you prepare to find your next role with ease. The best time to prepare for an interview is right now, when you don't need one. As the saying goes, "The harder you work, the luckier you get." I’m not an expert in interviewing and, truth be told, I dread giving one.
Stand By Your Skills: Acing Interviews by Knowing Your Resume
I’ve been working in software for close to three decades. Over the years, I’ve worked across multiple domains, learning and building software using various programming languages, operating systems, libraries, and frameworks. While I can probably still spell the names of the languages, I’ve forgotten the syntax of many. However, I can quickly pick up a new language or framework, much like riding a bicycle after a long gap.
I try to keep my resume to two pages, focusing on the last decade of work. Unsurprisingly, it’s a loaded resume, listing everything I’ve worked on. I intentionally leave out outdated technologies, but even then, it’s a pretty long list. Once something is listed on your resume, it’s fair game for interviewers to ask about. This is why I stress the importance of reviewing your resume to ensure you're prepared for any question that could arise. It’s surprising how many candidates fail to prepare for the projects listed on their resumes—many can’t even explain their design decisions. So, review your resume thoroughly and ensure you can answer any questions about what you’ve listed.
Coding Interviews: Adapting to Coding Challenges
I primarily look for software engineering roles, so coding is expected. There’s a lot of debate about whether coding questions should be included in interviews, but I’m not here to engage in that discussion. I’ve learned to prepare for coding interviews. As a tech lead and architect, I rarely code on the job. There are so many meetings and cross-functional collaborations that it’s hard to find even an hour to focus on coding. But coding interviews are completely different—nothing like the tasks we do day-to-day at work. Some interviewers fail to realize this and focus too much on getting the code to run within 45 minutes, rather than assessing problem-solving skills.
The last time I took a formal class on Data Structures and Algorithms was nearly two decades ago. The 80/20 rule applies here too—on most projects, you end up using just 20% of the data structures. However, coding interviews can cover a wide range of topics, from stacks to queues to heaps, and more. My advice: start with LeetCode’s easy problems to get comfortable with the language, and then tackle medium-level problems. You won’t always solve every problem on your own, but the key is to get comfortable identifying patterns. Pairing with someone else who’s also job hunting can be helpful. I also realized that Python is the best language for coding interviews. Problems that might require 20+ lines of code in Java can often be solved in fewer than five lines in Python.
In reality, many interviewers focus on problems relevant to their day-to-day work. In one instance, I was asked a hard problem on LeetCode, but the interviewer was looking for problem-solving signals rather than expecting the code to run flawlessly. Practice consistently, and don’t get bogged down debating whether coding problems should even be part of interviews.
System Design Mastery: Real-World Practice and AI
System design interviews were once reserved for senior engineers, but nowadays even freshers are expected to design. The level of expectation will vary based on your experience, but be prepared for it. There are plenty of resources online, including tech blog posts from FAANG companies and system design books. I recommend reading company blog posts to learn how different companies use various technologies and using books for an overview of the tools and strategies available.
The best way to learn is by being part of a team that builds systems, but not everyone gets the opportunity to build something from scratch. When you’re asked to add a feature to an existing service, try to understand the system design involved, and volunteer to create a design for it. Watch YouTube videos, particularly on channels like InfoQ, which often feature experienced professionals sharing their insights.
I have extensive experience architecting large-scale systems, so I don’t spend as much time preparing for these interviews. One thing that has helped me is using tools like Claude or ChatGPT to quiz me on system design problems, coding solutions, or general interview prep. I also use Excalidraw to draw high-level diagrams and upload them to get feedback.
Behavioral Interviews: Preparation Beyond the STAR Format
Many candidates don’t take behavioral interview rounds seriously, and those who do often don’t know how to prepare for them. Unfortunately, there’s no secret recipe for answering these questions—experience matters. The STAR (Situation, Task, Action, Result) format is recommended for answering these questions, but you need to have real-life situations to pull from.
The best time to prepare for these questions is not before an interview but after completing a project. I maintain a document for each company I’ve worked with, detailing high-level project information and my contributions. I also document conflicts, trade-offs, and design challenges. Reviewing these notes before interviews helps refresh my memory and prepares me to answer behavioral questions. If I’m asked something I don’t have an answer for, I’ll try to adapt an existing experience to fit the question. Preparation is key.
Strategic Job Applications: Quality vs. Quantity
A common mistake is applying to as many jobs as possible in the hopes of securing multiple offers. While companies may sometimes improve their offers when they know you have alternatives, my advice is different: identify your career goals, find a company and role that aligns with those goals, and do everything you can to land that job. Applying to multiple roles can dilute your focus. When you’re in the process of securing multiple offers, it’s easy to lose sight of what’s truly important to you and get swayed by a slightly higher salary offer.
I understand when you lose your job, you have to apply for as many companies as you can to make sure you land somewhere soon. Even in this case, limit yourself to applying to 5-7 jobs that you’re truly interested in. Applying to every open position you see can waste your time and make it harder to focus on what you really want. I know my friends often cringe when I talk about focusing on one company at a time, but I firmly believe this is a better approach than throwing your resume around indiscriminately.
Conclusion
The job market is tough, but as Ben Franklin said, “By failing to prepare, you are preparing to fail.” Network with the intention to give, not to receive. I’ve noticed that some people only reach out when they need something. While I do my best to help, they’re not always at the top of my list when I need support. Some of my colleagues suggest always checking for new opportunities, but I think that’s extreme. However, it’s a good idea to interview every other year to assess where you stand in the job market. It helps build connections and gives you a sense of how your skills are evolving.
I had a colleague who maintained a 300+ day LeetCode streak. That’s extreme, but there’s no harm in solving a few coding problems when you’re bored. While I’ve read many engineering blog posts, I rarely copy the tech stack that worked for someone else. Each problem is unique to the company. With ChatGPT, Claude, Gemini, and other tools, it’s easier than ever to prepare for interviews. However, when it comes to behavioral interviews, documenting your experiences along the way is irreplaceable—no chatbot can rescue you there.
This isn’t one of those “get-a-job-fast” blog posts. It requires time and effort to find the ideal job, but it has worked for me, and I’m confident it will work for you too. Feel free to reach out if you'd like help with mock coding or system design interviews. Good luck!


