← Back to Directory

sesame

Small

Sesame is an AI company focused on developing lifelike conversational voice technology and voice-based AI assistants. It is known for its natural-sounding, expressive voice models and is also working on lightweight wearable devices to enable always-available AI companions.

3 interview notes · updated Jul 2026

sesame·Software Engineer·Onsite - System Design / Architecture

Jul 2026
System design round at Sesame for a software engineer role. The whole session was basically one big networking question dressed up as a product feature, which I wasn't fully expecting.
  • Design a TCP-based chat server where multiple clients can connect, messages get broadcast to all other clients, and the server handles clients joining and leaving without crashing. Walk through your concurrency model, how you'd frame messages on the byte stream, and how you'd do a clean shutdown.

“I started with thread-per-connection because it's the obvious answer, but they pushed back pretty fast on what happens at 10k clients.”

View Post

sesame·Software Engineer·Onsite - System Design / Architecture

Jun 2026
Sesame had me design a full voice chatbot pipeline from scratch, end-to-end, which sounds like a fun problem until you realize how many moving parts they actually expect you to cover in one session.
  • Design a voice chatbot system end-to-end, covering speech-to-text, intent and dialog understanding, state management, response generation, text-to-speech, and audio streaming back to the user. Also address latency budgets per stage, barge-in and interruption handling, scaling for concurrent calls, and observability.

“This is a beast of a question and I did not pace myself well.”

View Post

sesame·Software Engineer·Technical Phone Screen

May 2026
Sesame software engineering interview that went deep into low-level systems design pretty fast. The core problem was about an in-memory filesystem backed by fixed-size node arrays, and it escalated into a broader design conversation I wasn't fully ready for.
  • You have an in-memory filesystem stored as a list of fixed-size nodes, where each node is a fixed-size character array. Implement a print method that correctly traverses these nodes and outputs the full stored content.
  • How do you handle file boundaries when files can start or end in the middle of a node, or span across multiple nodes?
  • How would you generalize this design to support read and write operations, not just printing?

“The example they gave was two nodes like ['a','b','c','d','e','f','g','h'] and ['i','j','k','l','m','n','o','p'] so the output should be the full concatenated string.”

View Post