I resigned from my role at Salesforce in September of 2023 and have been interviewing with multiple companies for SRE/DevOps/Platform Engineering roles. I was offered an SRE role with Rad AI and I have accepted it and will be joining them in the last week of January. I am glad that I was finally able to get an offer and I am excited to be exploring site reliability for a medical AI product.
This post is my observation of the interview process for the SRE/DevOps/Platform Engineering roles at the various companies that I interviewed with. I applied to more than 400 open roles, but most of them did not respond, I got interviews with about 25 companies. All of the interviews are usually preceded by a call with the recruiter and in some cases, a call with the hiring manager. There is a very good chance of being rejected if the hiring manager feels that you are not a good fit for the role. The interviews can be classified into the following categories,
Project-based Link to heading
Some companies share a project that they ask you to work on. I noticed this to be the case with startups. I was given an app and asked to deploy it to AWS (mostly). I used Kubernetes and Docker to containerize the app, add the relevant features, use Terraform to spin up the requisite AWS resources and deploy the app on AWS. I make sure to include copious notes and documentation on what I did when I am done. Once the team has evaluated the solution, the rest of the process will include interviews covering coding and scripting, systems design, behavioral interviews, and a discussion on the solution that I presented to the team. I love taking interviews like this. The take-home exercise helps the company understand how you work, what technologies you use, and the reasoning behind them. Take-home tests also do not have a short 1-hour window in which you have to rush to finish multiple tasks. The take-home tests I did recently, all have anywhere from 3 hours to 3 days to complete the tasks once it has been started.
Traditional Link to heading
These are the companies that follow the traditional pattern - a coding screen with an engineer or a take-home coding test, followed by an onsite interview loop. The coding screen mostly involves Leetcode problems or scripting questions. Interviews like this one require the candidate to grind Leetcode or brush up on their knowledge of programming knowledge for scripting. Some companies also have a coding interview as part of the onsite loop. My problem with interviews like this has been the Leetcode part, I struggle with trees and graphs and their implementation.
Memorize and answer Link to heading
I had this experience with 2 companies, one of them being FAANG. The interviewers start asking questions related to the technologies in use. Questions like “What is a stateful set?”, “What are the various kinds of DNS records?”, “What is QoS for pods in Kubernetes?”. The worst was when two interviewers asked me to list all the modules I used in the most recent automation project I worked on while at Salesforce. I hate interviews like this. I consider myself to be good at using commands to identify issues with a Linux server, but I might not remember these commands off the top of my head. I am glad that I was not able to clear interviews with both of these companies.
Your resume determines if you even get a call back from your recruiter. Make sure that you quantify your work and the amount that it benefited your company. I used Resumatic to help edit my resume. Also, if possible, I recommend tailoring the resume to the job description. I know that doing this is hard, especially when you are applying to hundreds of roles every day, but I recently came across this blog post by Justin Garrison that describes a way to do it. Preparation is key in all of these interviews. I created a spreadsheet with a list of incidents that I worked on. This helped me with having stories in the “STAR” format (Situation, Task, Action, Result) as answers to questions in the “Tell me about a time when…” format.
For systems design, I used the Grokking Modern System Design Interview for Engineers & Managers course from Educative.
I also brushed up my knowledge of Linux systems, Kubernetes, and AWS services.
For the coding part of the interviews, I searched for company-specific questions on Leetcode.
Overall, the process of finding a new role in the current market is stressful. I interviewed with companies where I was confident that I did very well in the interviews, only to be rejected and told that I did not have sufficient experience with Kubernetes ( I have been managing more than 500 EKS clusters for the past 3 years). However, the feeling of finally getting an offer is incredible!