I applied through an employee referral. I interviewed at ServiceTitan (New York, NY) in Aug 2023
Interview
Intro call with recruiter and then a second call with an engineer. It was all about Promises and callbacks. Recreate Promise.all, what console logs occur first in the Promise and setTimeout chain, how do you chain Promise calls, etc. but you aren't allowed to use async or await
Interview questions [1]
Question 1
Recreate Promise.all function. How do you return a new Promise.
Started off with a phone call with the recruiter - basic questions like "Introduce yourself" and "Why do you want to work for ServiceTitan?"
Coding round 1 (~90 min) - was broken up into three tasks, once you pass the first one you can move onto the next.
Task 1: determine the output based on when a set of promises and timeouts are called - you'll definitely want to study up on the event loop, microtask queue and macrotask queue for this one
Task 2: manually implement promise.all()
Task 3: create a reusable higher order component that awaits promise props and passes the resolved values to the underlying component
Coding round 2 (~90min) - you're given a boilerplate React ToDo app and you must complete a list of requirements. For example, "Add a new item to the list", Remove an item from the list", "Use local storage to get and store items". Once you're done all the requirements, you'll be asked to review your own code so make sure it's code you would commit to prod! Afterwards, you may be expected to answer other various React questions, like "How does React render work", "What are some examples of hooks". Also wouldn't hurt to learn more about memoization for functions and components.
Didn't pass the second coding round but overall an OK experience.
Interview questions [1]
Question 1
Coding round 1: Timeouts and promises, HoC components
Coding round 2: ToDo app
I applied through a recruiter. I interviewed at ServiceTitan
Interview
I applied for a senior frontend position. After an initial phone screen, I did 3 technical rounds that spanned about 5 hours over 2 months. They’re a mix of JS data structure / algorithm and React coding questions. To my knowledge, I solved everything correctly (the unit tests given all passed) except for one about CSS where I ran out of time. Unfortunately, the engineers still felt that I wasn’t at the senior level.
The recruiter asked if I’d instead consider a mid-level full stack role, which is 1 level down. After a final interview (which I’m told went well) they offered the bottom of the salary range for that lower level. With 10+ years of experience, and what seemed like successful technical interviews, going through all of this just to be offered the lowest possible salary was frustrating.
I also learned that this role would essentially be dev, QA, and product all in one, with on call rotations. This made it feel like even more of a lowball offer, given the responsibilities.
The engineers are mostly nice and helpful during the interviews, but don’t expect them to ask about your own experience or resume until the 5th and final interview, after you’ve passed all 3 technical rounds. At least the recruiter is friendly and keeps you informed throughout the process.
Interview questions [1]
Question 1
Timeouts and promises, HoC components, ToDo app, CSS layout, maps, high level design
An initial call with the recruiter, then had a technical screening interview. It had 3 parts - describe the output based on the event loop in JavaScript runtimes, then implement promiseAll and the last one was to implement a HOC that awaits promise props and passes their resolved values to your component.