Perplexity

Perplexity Software Engineer Interview Questions

17+ questions from real Perplexity Software Engineer interviews, reported by candidates.

17
Questions
4
Round Types
8
Topic Areas
2025
Year Range

Round Types

Phone Screen 3 Phone 3 OA 3 System Design 1

Top Topics

Questions

It's not easy for older programmers to find jobs again; they're waiting for the results. Please send blessings and add rice (a Chinese internet slang term for virtual currency) Position: Staff SWE Rou

Given a string and a list of stop words, return the string up to the first stop word. What if the input string is a stream? The entire string cannot be loaded into memory.

The topic is Embedding Model Server. The following content requires a score higher than 189. You can already view it. Provide an Embedding Model class. You need to implement a service to use this mode

The Challenge You need to build a task management system for AI agents. The system handles tasks that have different states (like `READY` or `BLOCKED`) and dependencies (some tasks wait for others)

Problem Statement You have a stream of strings (text) that arrive one by one. Some strings might appear more than once. Your task is to write a program that reads these strings and removes any dupl

Problem Statement You are building a system for a rental car service. You have a specific coordinate (longitude and latitude). You need to check if this location is inside a "surge pricing" area (w

Problem Requirements You have a stream of numbers (Data Stream) that is very large or infinite. You do not know how many numbers there are in total. You cannot fit all the numbers into your compute

SYSTEM DESIGN - Mint.com

System Design 2025

The Challenge Design a personal finance system like [Mint.com](https://mint.intuit.com/). The system must help users manage their money by doing the following: - Connect to various bank accounts an

Problem Requirements You are given a stream of text characters. This stream might be infinite, or just too large to hold in your computer's memory at once. You are also given a list of "stop words"

Byte Tokenizer Interview Challenge ## Challenge Summary This assessment asks you to build and improve a **byte-level tokenizer**. This is similar to Byte Pair Encoding (BPE), which is a method used

Credit Tracker with Expiring Credits ## Problem Statement We need to create a `CreditTracker` class. This class manages credits that are only valid for a specific time window. When we spend (subtrac

Problem Statement: Perplexity Discover Feed ## The Goal We need to design a **recommender system** for the Perplexity "Discover" page. This system acts as a bridge between content creators and reade

Temporal Key-Value Store (Online Assessment) ## Overview This Perplexity OA is a two-part CoderPad exercise built around a **temporal key-value store**. * **Part 1** asks you to implement point-in-t

Hi Folks, Got an online assessment for Perplexity Full Stack role. Wanted to ask what to expect from this assessment. It says the test is about assessment backend development frameworks like Python.

## Problem You have `n` servers and a list of request assignments `(server_id, request_weight)`. A distribution is considered "balanced" if the maximum total weight on any server minus the minimum total weight is at most `threshold`. Write a function that checks whether a given assignment is balanced and, if not, returns the servers causing the imbalance. ```python def check_distribution( n: int, assignments: list[tuple[int, float]], threshold: float ) -> tuple[bool, list[int]]: """Return (is_balanced, list_of_imbalanced_server_ids).""" pass ``` ``` Input: n=3, threshold=5.0 assignments = [(0,10),(1,8),(2,20),(0,5),(1,7)] # Server totals: 0->15, 1->15, 2->20 # max-min = 20-15 = 5 <= 5 -> balanced Output: (True, []) assignments = [(0,10),(1,3),(2,20)] # Totals: 0->10, 1->3, 2->20. max-min=17 > 5 Output: (False, [1, 2]) ``` ## Follow-ups 1. Define "imbalanced server" clearly — is it servers above average, below average, or at both extremes? 2. How would you rebalance by moving the minimum number of requests? 3. Extend to a real-time streaming version where `check_distribution` is called after each new assignment. 4. How would you write a SQL query to find imbalanced servers if assignments are stored in a table?

## Problem Validate a dependency graph for cycles or ordering conflicts, using topological sort. ## Likely LeetCode equivalent Similar to LC 207 Course Schedule. ## Tags coding, graph, topological_sort, phone

## Problem Given a list of text documents and a stopword list, remove all stopword occurrences from each document. Matching is case-insensitive. Preserve original word casing for non-stopwords. Return the filtered documents. ```python def remove_stopwords( documents: list[str], stopwords: list[str] ) -> list[str]: pass ``` ``` Input: documents = ["The quick brown fox", "A dog and a cat"] stopwords = ["the", "a", "and"] Output: ["quick brown fox", "dog cat"] # Extra spaces collapsed, original case preserved for kept words. Input: documents = ["IS THIS WORKING"] stopwords = ["is", "this"] Output: ["WORKING"] ``` ## Follow-ups 1. What data structure do you use for stopword lookup, and why? 2. How do you handle punctuation attached to words (e.g., `"fox,"` where `"fox"` is a stopword)? 3. For a corpus of 10 million documents, how would you parallelize this pipeline? 4. Extend to support language-specific stopword lists that are selected based on detected document language.

See All 17 Perplexity Software Engineer Questions

Full question text, answer context, and frequency data for subscribers.

Get Access