First Email

The hiring manager reached out to me on LinkedIn for a Austin, Texas job position. The job description was simple and straight to the point, no BS. I was happy they reached out but didn’t believe the process would move ahead, since they insisted on the Austin part and I had no plans of moving to the US. In the end we worked out a solution by making it a remote Canada job. We scheduled an interview the very next day.

Hiring Manager Interview 1

The goal of the interview was to see if they’d like to invest time in interviewing me further. We covered a lot of ground during the one hour interview and he kept a steady stream of questions coming. The theme was to test general software engineering knowledge. The topics included my work at Bell, my work as a TA at Carleton, understanding the life cycle of microservices, experience writing design docs, my search engine project and the design decisions behind it. By the end, he was convinced and told me a recruiter would reach out to me for further instructions.

Recruiter Logistics Call

She reached out within a day and we had a chat about the entire process, salary expectations, other companies I was currently interviewing for, and my schedule for the following week. Apparently I still had a long journey ahead of me.

Screening

This was a typical 45 min LeetCode style screening interview with one medium-hard level question. The code needed to compile and run without errors. We had a 5 minute introduction, 35 minutes for the question and 5 minutes for personal questions at the end. The question was on the harder end and I was clueless at first but slowly found my way to the optimal solution. Once the interviewer was happy with my solution, I wrote down some test cases and started fleshing out the code. In retrospect, I think I absolutely nailed that interview.

Orange Cloud

This is the first one of the series of final rounds of interviews. Orange Cloud interviews are Cloudflare’s version of the Googleyness round. The interviewer tested how I would react in a wide range of difficult situations and also how I handled them previously. Overall I recall very little info from it, only that it went well.

System Design

Knowing the nature of this interview, I joined it with my iPad + Apple Pencil to better explain my ideas. They asked me to “Design xyz” with three intentionally vague requirements. The intentionally vague requirements emphasize my role to steer the conversation, ask the right questions, flesh out the requirements and iterate on the design. The interviewers drilled down with questions into whatever sections fascinated them more. The design was a gradual process of building up, not a “BAM, here you go with a whole design!”. I presented two choices for datastores, three different ways of tackling the overall design, pros/cons for all of these and why I’d personally pick one over the other. It was pretty good overall, but I think I could have done a lot better here.

Incident Management

The goal of this interview was to simulate an on call situation. The interviewer explained a system with 4-5 services and how they interacted with each other. She then pointed out how one of the services wasn’t working, and showcased a graph. It was on me after that. I needed to ask the right questions, figure out what was happening and suggest a solution. It was a real on call alert that happened with the team, so she had screenshots of logs, code and graphs ready at hand. In the end, we ended up looking at a piece of code from the affected service and discussing an edit that would solve the whole problem. Only 30 minutes had passed, so we spent the rest of the time testing my software engineering knowledge to the edge. We discussed my design choices for the search engine and she kept drilling down on questions until she picked the next topic or I said “I don’t know” lol. It was pretty intense but fun at the same time.

Product Manager

This 30 minute interview tested my skills interacting with a PM, my past experience with PMs, and how well I could interact with them. It was pretty new to me but I think it went well.

Hiring Manager Interview 2

It turned out the HM who reached out to me first was only helping this team. I met the actual hiring manager here. We had a discussion about my interview experience, feedback for the team and other higher level questions. I brought up questions on team on-call schedules, PR reviews and the ratio of newer/experienced members in the team. The interview was pretty good.

VP Interview

This was also meant to be a behavioral interview. He had been in the industry for a long time and every company he had been to got acquired, so it was an interesting discussion around that. I had a list of topics I wanted to cover, and he’s a great speaker which ensured that it was a smooth interview. We both showed off our home squat racks to each other in the end :P. We vibed pretty well and I had a “Nailed it!” feeling after ending the video call. I felt good about all the interviews up till that point but there was still a chance someone did even better than me. So I didn’t expect much, I already had another offer at hand.

Recruiter Call - Final Decision

I had another offer that was expiring, so I told them to hurry up. They came back with a verbal offer after roughly a week.

CEO Interview

Yes, I had a chat with the CEO of Cloudflare. At this point, the answer is already a yes but the call is a chance for people like me to ask questions/have a chat with the leadership. The 15 minute call went well. I asked him about how the call was possible at all, how they hire at such a scale, problems they ran into and some advice about starting my own company in the future.

Thoughts

The screening, system design and incident management interview each had two interviewers, one primary and one shadow. Each interview always had 5 minutes of introduction, the main discussion and 5-10 minutes for my questions at the end. Each interview also exposed me to a different member of the team, which I think was cool. By the time these interviews started, I had already interviewed with 4 other companies, received offers from all of them, etc. I was a bit burned out but it also helped with confidence. It made me less nervous during the actual interviews andI had responses to common interview questions in muscle memory. The interview process felt like it actually tested what was required on the day to day job. System design for writing technical specs, LeetCode style questions for writing good readable code, incident management for on-call situations and PM interview for regular interactions with our team PM. I’m enjoying the job so far and will write about it in more detail in another post.