Engineering Hiring Process

We have many different processes that apply for different positions or grade levels. Some are more focused on interviews, others on code challenges, some take some days and involve different areas, others are one day only process. This page explains some of the most common types of hiring processes we apply today.

Whiteboard process

The whiteboard process consists of a 4 step interview, usually in a single day.
  1. 1.
    First interview / Whiteboard: 45min of a code challenge where the candidate shares his screen while solving the problem presented by the interviewer.
  2. 2.
    First Interview / Design discussion: Right after the code challenge, 15min discussing the decisions around the code produced. The candidate argues over his/her decisions about the solution delievered as well as general discussion about architecture.
  3. 3.
    Second interview / Final: 45min of a conversation between the candidate and some people from our team regarding the candidate's history, experiences, and questions related to his area of knowledge.
  4. 4.
    Decision / Proposal: Internal meeting among all of our interviewers and recruiters to share opinions about the candidates, decide the offers, and the best squads for the candidates. This step may happen in another day depending on the number of candidates.

Composition for the interviews

  • First interview / Whiteboard: 2 engineers make part of the code challenge interview. The lead engineer has the same grade level for the position the candidate is participating and is responsible to make sure the candidate understands the process and guide him/her through the code challenge. The second engineer is usually someone who is a watcher to learn the process and be a leader in the future.
  • First Interview / Design discussion: same audience from the whiteboard.
  • Second interview / Final: Usually composed of 3 people, being one representative from tech area, one engineering manager and someone from recruiting team.

Interviewer preparation

The following items are general tips for you to get better prepared for the code challenge and the interviews.

First interview / Whiteboard - Before the code challenge

  • English is not mandatory for this interview if all participants are fluent in another language.
  • You will be asked to share your screen so make sure to close any application you don’t want us to see (like social networks or personal/work communication platforms).
  • prepare your editor of choice (VSCode, Sublime, Vim, etc) and any plugin you may want to use (ESLint, Prettier, etc) since you won’t have much time to do this during the code challenge. We may also request you to code using a code sandbox or playground.
  • Prepare a tool to test your APIs too (Postman, cURL, Insomnia, etc).
  • We test your ability to design APIs, but not the ability to scaffold a project, so you can use a generator library (express-generator, fastify-generator, nestjs-generator, etc) and have that project prepared beforehand (no requirements on the name tho, you can be creative :) ).
  • You may or may not use a database, so have one ready to be used (MongoDB is preferred choice). This way, you won’t lose time by setting up one database from scratch.
  • Ensure you have a good internet connection and you can secure a distraction-free space during the scheduled time.
  • We allow you to use any search engine of your choice and any npm package you may need, apart from those explicitly banned during the code challenge's description. Again, you can use search engines, but don’t look for tutorials.
  • We cannot see if you have a 2nd screen connected. This means we trust in you that you’ll follow the guidelines shared here.

First interview / Whiteboard - During the code challenge

  • First, we may ask you some introductory questions about you (no tech related questions).
  • Then, we’ll share the test with you, you can take your time to read it, and ask as many questions as you want. Please, ensure you have the requirements clear before starting to code.
  • When you start to code, you can ask questions too, you can share with us your thought process or talk about what you want to do or how you’ll do it.
  • Ensure to manage your time. The test is short enough to fit on 45 minutes or less, so be vigilant of the time you’re using. We may give you some hints if we see you’re stuck, but we always prefer you to come with the solution to the problems you’re facing.
  • We’ll let you know when you have 5 minutes remaining and when time’s over so you can wrap up/finish your code.
  • You can test your application as many times as you want, please, ensure it works correctly.
  • When there’s around 1 or 2 minutes left, we’ll ask you to do a quick run of the application you’re developing to see everything works fine.
Note: We won’t share feedback right after the code challenge. Talent Acquisition may reach you with some feedback and things we think you can improve.

First Interview / Design discussion (after the code challenge)

  • After the code challenge, there will be around 15 minutes of conversation around the decisions you took to code the solution of the code challenge.
  • We may ask you for some feedback about the test, this is optional, but you can be as honest as you want here. This won’t have effect on your selection process in any way, but may improve the QoL of future applicants.
  • The discussion may vary from simple code structure to more complex items such as design patterns.
Second interview / Final
  • The interview may include technical questions along with a discussion of past work experiences, career aspirations and motivations.
  • Be ready to discuss soft skills and growth opportunities.
  • We want also to understand about your current position in regards of team structure, how demands reach you, how you provide status about your tasks and so on.
  • This is also a great opportunity for you to make your questions and know more about the opportunity, our values and our team.
Do you have any feedback? Please, feel free to send suggestions to catarina.mattos at rocket.chat