Skip to content
Engineering Interviews
Share
Explore
Engineering Interviews

Engineering Interviews


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:
Skill doesn’t exist
Below average
Average
Above average
Advanced/ impressive
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:
20 - 16, Strong YES 💪
15 - 11, Soft yes 👍
10 - 6, Soft no 👎
5 and below, Strong NO ❌
Interview Types
0
Time
Round
Assessed Skills
1
45 min
Algorithms and Data Structures
Problem solving: Can understand and identify an algorithm to solve the problem independently. Implementation: Can implement a solution, naive or optimal. Optimal solution with high attention to details is higher score Algorithmic knowledge: Can effectively describe and use appropriate data structures (Trees, Arrays, Lists, Maps, Sets), and describe why it works (complexity in big-O notation) Debugging: Able to spot issues with implementation by themselves, as well as get feedback on it, and adjust as needed
2
45 min
BE Software Implementation
Problem Solving: Can understand a problem, decompose it and plan effective solution, including identify edge cases. Technical Design: Can design and well structure a class or component to solve the problem, while describing the solution and tradeoffs made. Implementation: Can provide a working solution for the problem that both meets the discussed specifications and using appropriate language constructs/ data structures. Debugging: Able to spot issues with implementation by themselves, as well as get feedback on it, and adjust as needed
3
45 min
Problem Solving: Can understand a problem, decompose it and plan effective solution, including identify edge cases. Technical Design: Can design and well structure a class or component to solve the problem, while describing the solution and tradeoffs made. Implementation: Can provide a working solution for the problem that both meets the discussed specifications and using appropriate language constructs/ data structures. Can make use of advanced front end concepts like DOM events, event cascading, debouncing, XHR, local storage, web workers, etc.
4
45 min
FE Skills
Can write effective and appropriate HTML/CSS to solve a UI layout problem Understands basic concepts like browser events, DOM, scopes & closures, browser features (web sockets, indexDB, Local and session storage), and cookies Understands advanced concepts like page optimization, server side rendering/rehydration, frameworks, debouncing Understands how to use APIs and leverage them to solve UX needs
5
45 min
System Design
Can understand a distributed system problem, decompose it into parts and layers Can write a design that accomplishes the task. More optimal designs score higher. Understands the appropriate use and tradeoffs of design components such as databases, pub/sub and queues, caching layers, HTTP/GRPC services Design appropriate data models to accomplish the task
6
45 min
DevOps Skills
Can describe basic container and OS level concepts - how to build an OS and/or Docker image Public cloud knowledge - can describe how to build and deploy systems for at least one public cloud
7
45 min
DevOps Case Study
Can understand and describe a devops/infrastructure problem Can describe or write a system design that solves the problem
8
45 min
Data Engineering SQL
The goal of this interview is to determine whether the candidate can build data structures for DWH & perform data retrieval and manipulation in SQL Start with Data Modeling of the business case and then carry over to SQL on the data model built by candidate. Check for basic constructs like JOIN, GROUP BY, DISTINCT, subqueries. Check for advanced constructs like Self Join, Self Difference, Windows Functions.
9
45 min
Data Engineering System Design
Goal of this interview is to determine if the candidate can think through end to end solution for data extraction, transformation, storage & retrieval while keeping in mind their downstream consumers' needs. Start the interview with open ended question and ask candidate to built end to end pipeline logic. Then ask candidate to enhance it with data sourcing challenges (batch vs streaming), staging, master data management etc. Ask to enhance it with hooks to catch exceptions, errors, DQ & Auditing. A good candidate will also explain the strategy for data model looking at the history maintenance as well as ease of retrieval for end consumers.
10
45 min
Data Engineering Data Modeling/ Case study
Goal of this interview is to determine if the candidate can come up with a robust data model given a user product. You will brainstorm the data needs of a user product. Then you will ask candidate to design a data mart to support analytics use cases. Finally ask candidate to write select SQL statements to produce specific results.
11
30 min
Intro/Working at Thimble
Communication (technical & non-technical, Different levels). Motivation to join Thimble. Ability/ desire to work in a fast-moving team. Team Player
12
30 min
Wrap up/ Team assignment
Communication (technical & non-technical, Different levels). Motivated/ skilled to work on collaborative efforts involving collaboration, use cases etc' (vs. more pure algorithmic code efforts) Motivated/ skilled to work on applicative efforts lie FE/ BE applications etc' (vs. services) Team Player.
13
30 min
Wrap up/ Technical leadership
Communication (technical & non-technical, Different levels). Ability to deal with ambiguity in requirements Ability to provide technical leadership to the team Team Player.
There are no rows in this table

Interview Panels and Topics

Panel composition is enumerated below, with the interviews and skills evaluated in the chart above.
FE SWE Panel
Intro/Culture Fit
Karat Interview
Algorithms and Data Structures / System Design for Sr. FE SWE
FE Software Implementation
Front End Skills
Product & Culture Fit
BE SWE Panel
Intro/Culture Fit
Karat Interview
Algorithms and Data Structures
System Design
BE Software implementation
Product & Culture Fit
Full Stack SWE Panel
Intro/Culture Fit
Karat Interview
Algorithms and Data Structures
System Design
FE Software Implementation or Front End Skills
Product & Culture Fit
System Architect/ Staff SWE Panel
Intro/Culture Fit
Karat Interview
System Design #1
System Design #2
BE Software Implementation
Product & Culture Fit
Junior SWE Panel
Intro/Culture Fit
Karat Interview
Algorithms and Data Structures
Software Implementation
Front End Skills, Back End Skills, or FE/BE Software Implementation
Product & Culture Fit
DevOps Panel
Intro/Culture Fit
Karat Interview
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
Product & Culture Fit
Data Engineer Panel
Intro/Culture Fit
Karat Interview
Data Engineering SQL
Algorithms and Data Structures
Data Engineering Data Modeling/ Case study
Data Engineering System Design (For Staff Engineer only)
Product & Culture Fit
Data Platform Engineer Panel (similar to BE engineer with more data focus)
Intro/Culture Fit
Karat Interview
Algorithms and Data Structures
System Design / Data Architecture
BE Software implementation
Product & Culture Fit
Sample Panel
0
Time
Round
Interviewer
1
30 min
Introduction Working at Thimble Candidate Q&A
Liz
2
45 min
Karat
Online
3
45 min
Software/Systems Design
Imran
4
45 min
Coding/Algorithms/Data Structures
Meena / Matt
5
1hr
Lunch
6
45 min
BE/FE Software implementation
Jeff / Gopal
7
45 mins
Product & Culture Fit
Taylor / Mitch
There are no rows in this table

Types of Questions

Some examples of types of questions that are good tests of competencies:
Coding/Algorithms
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)
TODO: Question Template
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
0
Strong Hire
Hire this person now, I want to work with them
1
Hire
Solid hire, with some support / missing evidence. Other terms could be lean hire or soft hire to signal nuance in a decision.
2
No Hire
Will probably not be successful, will need a lot of help
3
Strong No Hire
Do not hire this person, likely negative impact
There are no rows in this table

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
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.