In this post, I’ll share my experience interviewing for the Production Engineer role at Meta. Production Engineering at Meta is similar to the Site Reliability Engineer (SRE) role at other companies. My journey included preparation, multiple screening rounds, and the onsite interview process.

Screening Interviews: Link to heading

Coding Screen: Link to heading

My interview process began in October with the coding screen. For preparation, I relied heavily on LeetCode, specifically on problems tagged for “Meta.” Practicing a mix of easy- to medium-level problems helped solidify my problem-solving skills and speed.

Systems Troubleshooting Screen: Link to heading

The second screening round was in November and focused on systems troubleshooting. During this phase, I prepared by revisiting Linux basics and common troubleshooting scenarios. I explored blogs and resources that explained system commands and their outputs in depth. Brendan Gregg’s 60-second performance analysis checklist is very helpful with preparing for this interview.

Due to work obligations and travel, there was a significant gap between these two rounds. After completing these, my recruiter informed me that I’d move on to the onsite interview phase.

Onsite Interviews: Link to heading

My onsite interview was scheduled for December. Meta scheduled all 4 of the interviews for the same day and that helped. The onsite interview consisted of four distinct rounds:

1. Coding Interview Link to heading

The coding interview was similar to the initial screen but more challenging. LeetCode remained my go-to resource. I focused on Meta-specific tags and problems that required efficient solutions. There were two questions. I highly recommend being efficient with time as I was cutting it close by the time I arrived at the solution to the second problem.

2. Systems Internals Link to heading

This round focused on Linux internals. I brushed up my knowledge of Linux internals with Michael Kerrisk’s “The Linux Programming Interface”. This book has come in handy so many times. I was asked:

  1. To troubleshoot an issue with a server.
  2. To explain the output of specific Linux commands.
  3. About core Linux internals, such as process management, memory allocation, and I/O handling.

Some particularly helpful resources included:

Process management

Linux networking stack

Linux resolvers

Linux page cache theory

Shell Internals

Linux deep dive

A collection of notes on Linux

3. Behavioral Interview Link to heading

The behavioral round revolved around Meta’s core values: “Move Fast,” “Focus on Long-Term Impact,” and “Be Direct.” To prepare, I followed the STAR method (Situation, Task, Action, Result) to structure my answers. Some commonly asked questions included:

  1. How do you deal with conflicts?
  2. How do you prioritize tasks across multiple projects?
  3. Describe a time when you handled a disagreement with a colleague.

4. Systems Design Link to heading

This round involved designing a practical system to solve a real-world problem. Unlike the high-level system design interviews at other companies, this was more grounded in practicality. My preparation for this round included going through the various systems design problems on Hello Interview. Hello Interview’s problems also include a section on what is expected at each level - Senior, Staff, etc. during the interviews.

The entire interview experience was rigorous but rewarding. It allowed me to explore and deepen my understanding of coding, systems internals, and system design. While I won’t share the exact questions due to confidentiality, here are some key takeaways for anyone preparing for a similar role:

  • Coding: LeetCode is invaluable. Focus on company-specific tags and medium-difficulty problems.

  • Systems Internals: Build a strong foundation in Linux concepts. Blogs and illustrated guides are excellent preparation.

  • Behavioral: Use the STAR method and tailor your examples to the company’s core values.

  • Systems Design: Be ready to propose detailed and practical solutions, not just theoretical designs. The framework from Hello Interview on presenting a solution to a design problem is particularly helpful.

While I didn’t clear the interview and am still awaiting feedback from the recruiter, I’m grateful for the learning experience. For anyone pursuing a similar path, preparation and persistence are key. Good luck!