Second in a series of three posts about my learnings from the tech recruiting process. This specifically covers everything from how to set up an interview to how to prep to what questions to ask during the interview.

Foot in the door

For larger companies, I often got contacted or I reached out to recruiters that I already kenw because they have been in touch before. I also asked for referrals from friends or alums who had worked at those companies. For smaller companies, I used referrals, filled out jobs forms on their website, or cold messaged them through LinkedIn. Employees often get bonuses from a successful referral, so don’t be afraid to ask!

From this stage forward, I interviewed with 18 companies total, ending in 8 offers, 4 rejections, and 6 withdrawals from the process. I kept a spreadsheet with info about the companies, names of interviewers, stage of the process, etc.

The roles in the process

Depending on each company structure and size, there may be differences in how they go through the process. In some cases, the roles may be the same person. This list does not contain interviewers.

  • Sourcer - a member of the Recruiting/People Ops/HR team who initially contacted you about setting up a call with the company, they may be in charge of all of recruiting for your school or several schools
  • Coffee chat recruiter - talks with you over the phone about your experience and what you are looking for, you may tell them about what you value in a company, team, etc. and any special circumstances you may have (such as offer deadlines so they can speed up your process)
  • On site recruiter - meets you at the final onsite interview (either at the beginning and/or end of the day) and briefs you on the process for the day and/or for hearing the results
  • Offer giver - usually the same as your onsite recruiter, sets up a call with you to tell you the offer (offers are usually not given over email). They are the person you negotiate with and the person to ask if you would like to set up calls with other recent grads, different team managers, etc.

My Prep

I did a combo of mock interviews, online coding exercises, and hand written exercises. The most helpful preparation, by far, was mock interviews, both on the phone and on the whiteboard in-person. Doing them and getting feedback is the best way to know what you personally have to work on. I also scheduled the order of companies so that I had interviews for the companies that had longer processes or that did not fit match my main three values earlier in my timeline.

For soft skills, I prepared by filling out the chart that is in Cracking the Coding Interview. I found that knowing the project that was ‘most challenging’ and ‘what I most enjoyed’ was particularly useful.

For technical skills, I either practiced using mock interviews or just did more interviews in order to prep for my later ones. Since I interviewed with so many companies, I had plenty of practice on phone and in person interviews. Once I learned more about the company during the interview and didn’t feel like I would accept an offer if I end up getting one, I often withdrew from the interview process.

Some of the resources that I found helpful include:

  • Gayle Laakmann McDowell’s Cracking the Coding Interview (Amazon) - This is really the Holy Grail of coding interviews because it covers both technical and soft skills interviews pretty thoroughly. Many questions from this are often used in phone interviews and the more difficult questions in onsites.
  • HackerRank exercises - many companies use these as the first round
  • Daily Interview Cake Questions - https://www.interviewcake.com/about - great explanations

The Interviews

The actual efficacy of the interviews on measuring ability aside, technical interviews between different companies are pretty similar. The only way to get better is to get more practice! For me, I felt like my confidence was the biggest factor in determining my performance in interviews between junior year (for internships) and senior year. After taking the algorithms class, I felt a lot more confident about my legitimacy as an engineer even though much of the material from the class wasn’t in the interviews themselves.

During the process, it’s hard to not feel like how well you do is a reflection of your intelligence or ability as an engineer. I found it easier to reason through this after my internships and after reading the discussions in industry about the interview process. After an internship, I had seen first hand how the day to day engineering skills that I was using were very different from the ones ‘tested’ during coding interviews. Fortunately, there is also plenty of discussions about how technical interviews suck 1, 2, 3 although replacing with just “culture fit” is also problematic.

In addition, one piece of advice I found helpful to practice was to think (or even write down) all the con’s against a company after each interview. During the interview, you are asked to speak about why you want to work for the company and how you could contribute to its mission, and your interviewer may talk about his or her own great experiences at the company, further enforcing your positive perceptions. In order to bring a little balance, and cushion the blow if you do not move onto the next round, after the interview, intentionally take some time to think about what you didn’t like about the company.

What I asked and why

At the end of every interview, the interviewer would ask if I had any questions. I had a lot of them. Sometimes they would give generic or vague answers that didn’t tell me much but sometimes they would give me insight into what life at the company was like and how it was different from those at others:

Question What I really want to know
How big is your company and how big is a team? Does this fit the five-ish person size that I liked best? Will I feel comfortable voicing opinions at company all-hands?
How easy is it to move in between teams? If I don’t fit in with my team or if I want to try something else, how flexible is the company? Are they focused on my growth or their outcome?
How long is your deployment process? Is this process short enough that I will feel accomplished from finishing my part and seeing it in production?
How does your company support new grads? Does the company have a growth-based mindset towards engineers or do they just want coders to churn out a product?
How do teams collaborate with each other or engineers with each other? Is the company culture one of collaboration or competition? Are teams silo’d or cohesive?
Why did you join this company and what were you deciding between? Why should I choose this company and did the current engineers choose the company for the same reasons?
What has surprised you about your time at this company? What can’t I learn during the interviewing process that you can tell me now?
How does your company support PoC and female engineers? Is your company self aware about its culture/environment and how actively are you making change?

What I did after the interview

If during the interview I had received the interviewer’s email (shared a GoogleDoc or link), then I often sent them a quick reply thanking them for their time and inviting them to give me feedback. If I heard the decision relatively quickly, I sent follow up emails to interviewers to ask for feedback. In order for feedback to be acted upon, it should be prompt, specific, and actionable. Companies that value feedback will have trained employees and especially managers on how to provide the best feedback that can promote personal growth. Constructive feedback on things you could improve could be very helpful as targetted areas for your growth but I steered clear of any companies that give feedback based on personality fit or inherent traits. One of Facebook’s motto’s is “feedback is a gift” and I can’t agree more.

What I wish I had done

I wish I had spent more time talking to each of the recruiters in the process. The movement of an engineer through each stage is very opaque and getting to know the recruiters and telling them about where my head is at would have reduced unnecessary stress that resulted from trying to juggle all of these interviews. I also wish I had withdrawn earlier from the process for some of the companies that, through talking to their engineers in interviews, I realized the company was not a good fit for me.

Read the next section for info about how to navigate the offer process.