We want candidates to turn in their best performance during the interview and we want to hire the best candidates we interview.
Interview Format
The typical interview process is:
Recruiter Screen - Gauge interest in Thimble, comp and level expectations, decide to move forward
*Karat Interview - Equivalent to technical phone screen using Karat. Typically 45 min - 1 hour
Remote Panel
Each interview panel will usually consist of 4 interviews. The intro will evaluate for communication, fit for Thimble/team fit, and sell the candidate on Thimble. We will have 3 technical engineering interviews.
Competency Evaluation
Each 45 minute interview should concentrate on one category + (optionally) culture fit and critical thinking. For each competency evaluated, use a scale of:
For an interview type which evaluates 4 assessed skills, each interview should end up with total points between 4-20 based on the skills assessment. Below is a suggested feedback result based on the total amount of points:
Interview Panels and Topics
Panel composition is enumerated below, with the interviews and skills evaluated in the chart above.
FE SWE Panel
Algorithms and Data Structures / System Design for Sr. FE SWE FE Software Implementation BE SWE Panel
Algorithms and Data Structures BE Software implementation Full Stack SWE Panel
Algorithms and Data Structures FE Software Implementation or Front End Skills System Architect/ Staff SWE Panel
BE Software Implementation Junior SWE Panel
Algorithms and Data Structures Front End Skills, Back End Skills, or FE/BE Software Implementation DevOps Panel
DevOps Skills(Python/Go scripting, shell scripting, DBA, Terraform, Containers, Docker, Kubernetes, etc) DevOps Problem/Case Study Design a system to deliver reports generated in Python from our data warehouse. Include scheduling, traceability (to the destination), and monitoring/alerting as considerations BE Software Implementation Data Engineer Panel
Algorithms and Data Structures Data Engineering Data Modeling/ Case study Data Engineering System Design (For Staff Engineer only) Data Platform Engineer Panel (similar to BE engineer with more data focus)
Algorithms and Data Structures System Design / Data Architecture BE Software implementation
Types of Questions
Some examples of types of questions that are good tests of competencies:
Easy - traverse a tree, tree pivot, string concatenation/hot dog Medium - binary search, graph traversal/optimization Hard - graph traversal with constraints, dynamic programming, scalable algorithms (e.g. process 10TB of data on a machine with 1TB memory) Software Implementation - write the code for the snake game TODO: We need a template for a question + code template? TODO: Variety of questions Systems design - design an airline ticketing system FE design/implementation - write the HTML/CSS/JS for an infinite scrollable table FE skills - write the HTML/CSS to render a calculator in a web page Template here: Interview Question: Design a Bulk Quote System Take Home Exercises (If we’re on the edge) - Build something simple end to end Write a roman numeral parser Feedback
Interview feedback should be written and at least a paragraph long. This is in addition to the interview skills scores given to the skills evaluated for each interview. Feedback should address the hiring decision, skills evaluated, communication, and whether the candidate is a fit for other roles. It is expected that feedback is posted in the Applicant Tracking System immediately after concluding the interview, and certainly within 90 minutes of the interview conclusion.
Each of the headings below should be a sentence or section in your interview feedback.
Hiring Decision (Required)
Each interviewer, except the lunch interviewer, will make a hiring decision. You must make a decision and add a statement that supports that decision! Even a weak hire/no hire is a clear decision to hire or not hire.
Hire this person now, I want to work with them
Leveling (Required)
If the decision is hire, what level to hire at (e.g. Jr. BE, BE, Sr. BE, Staff). If the decision is no for one level and yes for another level, indicate that decision. It’s possible that an engineer is interviewing for Sr. BE Engineer, but a hiring decision is no for Sr. BE Engineer and yes for BE Engineer.
Red Flags/Important Information (Required)
Are there any red flags or important information about the interview or candidate that the hiring panel should know about before making a decision?
Technical Evaluation
This section is the technical evaluation for your interview. It should be relevant to coding, software implementation, system design, etc. This section should be sufficiently detailed to allow the interview panel to make a hiring decision based on your feedback
Communication, Candidate Fit, and Soft Skills
This section should evaluate candidate communication, collaboration, and other soft skills.
The primary purpose of technical interviews is the technical evaluation. If an interviewer has feedback on soft skills, it can be written in this section.
Interviewing Tips
Choose a warm up question in a topic where the candidate is familiar, but not one that will occupy more than 5 or 10 minutes at most. A good fallback is “Tell me about the hardest problem you solved on x project from your resume.” Rotate a few questions where you can calibrate on a good and bad candidate answer. Sometimes answers can differ for different levels (entry level, mid-level, senior) and can still be good answers. Ask open ended questions. Instead of “What is the lodash library in Python?”, ask “How would you use the lodash library to do a deep parse?” Ambiguous questions can be good indicators of candidate curiosity and independence. Better candidates will ask questions and define logical assumptions during the interview Get to know your questions and solutions so that you understand the answer. Working through the question yourself is a good way to prepare for interviews