← Back to Directory

Karat

Small

Karat is a company that provides technical interviewing services, offering on-demand interview engineers who conduct structured technical assessments for hiring companies. It is known for helping organizations scale and standardize their engineering hiring processes.

4 interview notes · updated Jul 2026

Karat·Software Engineer·Technical Phone Screen

Jul 2026
Karat screen for a Software Engineer role, just one coding problem the whole time. The question was a password validator where you return every rule that gets broken. Seemed manageable at first but there were enough edge cases to keep you honest.
  • Given a password string and a set of three special characters, validate the password against five rules and return a list of all the rules it violates. Rules cover minimum length (over 15 chars), absence of the substring 'password' (case-insensitive), presence of both upper and lowercase letters, at least one of the given special characters, and no character repeating more than four times consecutively.

“The consecutive repeat rule is where I fumbled a bit.”

View Post

Karat·Software Engineer·Technical Phone Screen

Jul 2026
Took a Karat technical screen for a senior engineering role and came out not really knowing where I stood. Solid on most of it but had one coding problem that I didn't fully finish, which is now living rent-free in my head.
  • A set of general technical knowledge questions covering a range of engineering concepts.
  • A debugging task where you identify and fix issues in a given piece of code.
  • A coding problem requiring a complete working solution from scratch.
  • A second, more complex coding problem requiring a complete implementation.

“Got 3 out of 5 right.”

View Post

Karat·Software Engineer·Technical Phone Screen

May 2026
Karat screen for a software engineer role, one problem the whole time. It was a multi-table join puzzle dressed up as a coding question and I spent way too long second-guessing the matching logic instead of just writing the thing.
  • You're given three tables as 2D arrays (customers, orders, products) with no headers. Write code to produce a mapping from userId to customerName by joining them. Orders may have a null email field, in which case you need to infer the customer by matching orderTotal against quantity times unitPrice from the other tables.

“The email path was easy enough, just a lookup.”

View Post

Karat·Software Engineer·Technical Phone Screen

May 2026
Karat screen for a software engineer role, all TypeScript, all about a little obstacle course race tracker. Three connected problems that built on each other, which I actually appreciated once I stopped panicking about the simulation part.
  • You have a RunCollection class with a broken personalBest() method. Fix it so it only considers complete runs when computing the minimum total time.
  • Implement bestOfBests(): for each obstacle position, find the minimum time recorded across all runs (including incomplete ones), then return the sum of those per-obstacle minimums.
  • Implement chanceOfPersonalBest(inProgressRun) using Monte Carlo simulation with 10,000 trials. For each remaining obstacle, sample uniformly from historical times at that position, simulate a finish, and return the fraction of trials that beat or match the personal best.

“The bug was subtle enough that I almost missed it.”

View Post