Skip to content

Latest commit

 

History

History
68 lines (37 loc) · 4.59 KB

EngineeringExercises.md

File metadata and controls

68 lines (37 loc) · 4.59 KB

Please note: We do not dive into the specifics of some of the questions that you will be asked during your interview. However, the following resources will give you insight into what to expect, the types of questions you make be asked, and how to prepare for the interview process.

Engineering Interview Process

Total interview time: 6-7hrs for full time roles, 2-3 hours for internships

Coding Interviews

Coding interviews give the interviewer insight into your skills in the following areas:

  • Coding and debugging

  • Algorithms

  • Data Structures

  • Code Structure

  • Design

All of our coding questions are technical concepts that our engineers focus on within their roles. While we don’t dive into the specifics of our coding questions, we encourage you to refresh core technical concepts. For all coding interviews, we recommend using a language that you are extremely familiar with rather than one that is new to you, like Go.

Technical Screening: Phase 1

Following an introductory phone screen with a recruiter, you may be invited to complete the first phase of our interview process for engineers: a technical screening consisting of two interviews, one of which will be on coding, the other on design. These are live, hourlong interviews with members of our engineering team.

Technical Screening: Phase 2

After reviewing feedback from Phase 1, the team will determine whether to move forward with a second pair of coding and design interviews. These interviews will be conducted in the same format as those in Phase 1, but the questions will be different.

Coding Interviews

For coding interviews, we will ask you to do a live coding exercise in either CoderPad or your own development environment if you prefer to bring your own computer. Before diving in, we recommend you take a moment and repeat the question back to the interviewer to make sure that you understand the question. For some problems, it can help to jot down your design or the flow of your solution on the provided paper before getting started with the code.

If you get stuck, our interviewer will provide clarity or hints to help you get unblocked. Always think out loud and let us know what you’re working on or what you’re having trouble with. This not only invites the interviewer into your thought process but can help lead you toward the right path if things have gone astray.

Design Interviews

Systems design interviews are important because they give us insight into how you think about scale, complexity, robustness, and performance. We expect you to know the fundamentals of system design. This interview is a discussion between you and the interviewer, leveraging the whiteboard.

"Choose Your Own" Design

All of our interview questions up until now have focused on a known problem that we are experts on here at Cockroach Labs. This question flips that script. Instead of the interviewer being the expert, the interviewer will be the student, asking the interviewee for an in-depth explanation of a design or project that they’ve worked on in the past.

You are informed of the question beforehand and you are expected to be able to discuss the design of your choosing on a deep technical level. You should make sure to pick a topic on which you consider yourself to be an expert.

Infrastructure Design

You will be discussing the deployment of CockroachDB in a production environment as a service and how you would go through that process. You should be prepared to touch on security, alerting, monitoring, and access. For example, "How do you keep CockroachDB running?"

Role-related System Design

This question varies depending on the position for which you are interviewing. For example, if you are applying to the Full Stack role, you will have a different question from what engineers are asked if they are applying to the Backend role.

While we do not disclose details of this question, we ask for engineers to think about large-scale system design and architectures that may be relevant for their position if you worked at Cockroach Labs.

For SRE interviews, review the following: