One of the biggest challenges I faced when starting my career in software engineering was applying and interviewing for jobs.
I went through a ton of interviewing processes, and for most of them, I was unprepared and under-qualified. In spite of this, I realised that every not-so-good interview helped me improve my "technique" and become more confident.
Then, about a year ago, I started participating in the other side of interviews, that much more comfortable side of the conversation: interviewing candidates instead of being a candidate myself. This change in perspective allowed me to observe interviewing in more detail (and with less stress) and reflect on all the things that I've learned about it.
This post describes tactics that helped me reduce stress during those conversations, as well as some mental tools I used to frame the interviewing process and ultimately be more confident about my performance, whatever the outcome.
I know it doesn't feel like it, but it is often true. A friend of mine used to say this, and I didn't believe him. Years later, I realised that companies only spend time talking to candidates who they already suspect might be a good fit. If they asked you in for an interview, they want to learn more.
Yes, you're being evaluated during an interview. But it’s a two-way street: the interview is also your chance to evaluate the company as a potential employer and learn whether the company and team are a good fit for you. It's important (and empowering) to keep this in mind during the interview–you’re also trying to find out if you want to work there.
This is an elevator pitch about yourself, and pitches need a good story. So, how can you describe your experience and objectives in a way that captivates others? Find that story you want to tell, and once you have it, keep working on that narrative to make it engaging.
You don’t have to recite your resumé by heart. Instead, fill in the gaps between every milestone, from your own human perspective. Think about the most relevant point in time to start from, then pick and choose the events you tell so that they follow a logical, purposeful path. You're not trying to prove anything–instead, focus on making them remember you.
In my case, my "story" changed every time I was looking for a new job: I would usually explain how each of my previous jobs contributed to my professional growth and what I was looking for next. I found that it would take me a couple of tries before I had my story clear enough in my mind to be able to transmit it to others.
Lying will just make you more nervous. I've done it, and it backfired. I still remember that interview as the worst in my life.
You can, however, frame the truth without lying. For example, instead of saying, "I don't know anything about React..." you could say, "I've heard about React and its popularity…although I haven't used it yet, I'm curious and would like to give it a try."
I used to get very nervous when interviewers asked me if I had any questions for them until I understood that I needed to think of some questions in advance and adapt those to the specific context of each conversation.
So, prepare some questions beforehand. Do a little research about the company and think about what you're looking for in a new job and what you care about (remember, you're also interviewing them).
Think about what you'd like to ask and what you want to communicate with your questions. The interviewer’s answers will give you a deeper understanding of the job and your questions will show them the things you care most about.
This is one of my favourite tools in the self-confidence toolbox. There may be times when you feel you're not good enough for the job. Ye olde imposter syndrome, right?
Well my best tool against this is simply putting my trust in the people doing the interviews: telling myself, "They know."
Why? Because they have a lot more context about the company, the team, and the position, and they're more likely to assess the situation correctly. So if I'm feeling like I might not be up to challenge, I just tell myself: "You don't know that. They do." Remember my first point: companies spend time with candidates they already think might be a good fit.
It's totally OK to express your interest up front and ask for feedback or updates throughout the process. It's also a great strategy to go the extra mile to demonstrate it. If you really want to land a particular job, ask yourself, "What can I do to stand out from every other candidate?"
When I was interviewing for my current job, I decided I would go an extra 2 or 3 miles because I wanted the job so badly. Before my coding interview I researched the company's APIs and created a suite of acceptance tests for them. I wrote an email to HR, asking if they would be interested in reviewing the project during the upcoming interview. Even if my small project wasn't anything special, they were impressed with my commitment, and I think that played a great part in the outcome.
Rejection is gonna happen…and it's probably not about you. Many factors come into play during a hiring process, and the ones that are not related to you greatly outnumber the ones that are about you specifically. The best you can do is ask for feedback, reflect on what you've learned, and use it to feel more confident in your performance next time.
The people interviewing you are spending time getting to know you because they think you might be a great fit. They're not looking to rule you out, but quite the opposite: they want you to succeed.
The hiring process can feel like a series of challenges to overcome to get a prize–challenges that the interviewers want most candidates to fail. This is not the case: they should want you to succeed and they should help you get there. But if it feels like the interviewers pressure you and want to see you at your limit, maybe it’s not the best place for you after all.
Also, if you’re working with a recruiter, remember that it's their job to get a hire. Don't forget to use this to your advantage, let them help you: listen to what they say, as they have a lot of useful insights that can help you perform better.
I once asked for 2 weeks of preparation for a coding interview, saying that I was a bit rusty with the subject we'd be covering in the test. Truth is I wasn't rusty, I had no experience with the subject at all. During the interview I asked to look at my own study files to recall something and it was fine. In the end it all went well and I passed the interview.
This article focuses mostly on the "talking" part of interviews, but I feel there are a couple things left to be said about live coding interviews.
There's no shame in saying "I don't know that." Take it as another opportunity to evaluate them as an employer. They should be able to explain a task or concept to you and give you the opportunity to show how easily you can pick up something new and apply it right away.
This has happened to me twice, and it turned out to be a great learning experience. On one occasion, I got the chance to ask questions and demonstrate my learning process, and on the other I showed my Googling skills. In the end, I got both jobs!
While you're coding or white-boarding, think out loud as much as you can. Coding interviews aren't supposed to be about producing perfect code on the first try. They're about your thought process and your ability to think of solutions, debug problems, and communicate your ideas. Turn it into a conversation.
Easier said than done, right? I agree, but these strategies do make interviewing less stressful. They allow you to step back and approach interviewing not as a stress-filled contest to win a job but as a process that helps both sides evaluate whether the fit is right. Plus, the more you practice, the easier it gets.
Have you used anything similar to these tools before? Do you have others? Drop them in the comments! 😉 I'd love to read them!