Topic
Software Engineering Fundamentals interview questions
1208 Software Engineering Fundamentals questions from 253 companies, with hints, runnable code and solution walkthroughs.
123 easy887 medium198 hard
Software Engineering Fundamentals interview questions by the numbers
Last updated
Katkat has 1,208 Software Engineering Fundamentals interview questions from 253 companies; the most come from OpenAI (5%), Stripe (4%) and Amazon (3%). By difficulty: 10% easy, 73% medium and 16% hard. The most common round is Technical Screen (52%). Frequent concepts include Data Structures, Concurrency, System Design and Algorithms.
Companies (253)
Difficulty
- Easy10% · 123
- Medium73% · 887
- Hard16% · 198
Interview rounds
- Technical Screen52% · 625
- Onsite37% · 448
- Online Assessment8% · 96
- HR Screen2% · 28
- Other1% · 11
Roles
- Software Engineer85% · 1026
- Frontend Engineer4% · 51
- Machine Learning Engineer2% · 30
- Backend Engineer2% · 25
- Data Scientist1% · 17
Frequent concepts
- Data Structures8% · 97
- Concurrency8% · 96
- System Design8% · 93
- Algorithms3% · 42
- API Design3% · 42
- Object-Oriented Design3% · 35
Most mentioned in interview experiences
- 1.Plant Infection Grid Simulation: Days to Stabilize, Immune Plants, Expiring Immunity5 reports
- 2.Bootstrap Service: Aggregate Downstream Services and Return the Right HTTP Status4 reports
- 3.Crawl an HTTP-served maze to its exit with 503 retries, dead ends and cycles4 reports
- 4.Find the Exit of an HTTP URL Maze Despite Flaky 503s and Bad JSON4 reports
- 5.In-Memory Workspace Credit System With Transfers, Top-K and Scheduled Transfers4 reports
- 6.Virtual Card Case Study: Trade-offs, Card Number Rule Checks, and Debugging a Filter4 reports
- 7.Virtual Card Numbers Case: Trade-offs, Payment Validation Rules, Debugging4 reports
- 8.Workspace Credit Ledger: Transfers, Top-K, Scheduled Transfers, Merges, Balance History4 reports
- 9.Build a UVM testbench: driver, monitor, scoreboard and coverage-driven closure3 reports
- 10.Debug a Layered Book Search Service Against Five Search Rules3 reports
Counted from 425 candidate interview experiences on Katkat. How we collect and count
Showing 91–120 of 1208 results
Given the abstract syntax tree of an arithmetic expression as a binary tree, write a traversal that returns an equivalent simplified tree using constant folding and algebraic identities. It tests recursive tree processing, cascading rewrites, correct handling of non-commutative operators and recursion-depth limits.
AmazonSoftware EngineerSoftware Engineering FundamentalsOnsiteImplement a static validation engine that inspects an Abstract Syntax Tree (AST) representation of AI-generated code to enforce security, safety, and complexity boundaries.
AmazonSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis problem tests your ability to identify state synchronization issues in nested class structures and implement a thread-safe extension to existing class logic.
AmericanSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenDesign an extensible object-oriented order pricing system for a pizzeria that models pizzas, applies four distinct discount policies with specific composition rules, and returns an itemized, explainable receipt.
AmericanSoftware EngineerSoftware Engineering FundamentalsOnline AssessmentDesign an object-oriented Minesweeper game engine featuring state management, board generation, flood-fill cell revealing, and testable boundaries.
AmperitySoftware EngineerSoftware Engineering FundamentalsTechnical ScreenTests your ability to identify common JavaScript memory leak patterns—such as detached DOM trees, uncleared event subscriptions, and unbounded closures—and verify resolution using browser heap profiling techniques.
AndurilFrontend EngineerSoftware Engineering FundamentalsOnsiteTests in-depth understanding of hash table internals, comparing collision resolution mechanisms, deletion strategies, dynamic resizing, and operation complexities under expected and adversarial conditions.
AndurilSoftware EngineerSoftware Engineering FundamentalsOnsiteA callback-based batching exercise: implement start_fetch(key, callback) so that lookups made within a 100 ms window are sent to a /get?keys= endpoint as one HTTP request, using only http_get_request and set_timeout. It tests timer scheduling, per-key callback bookkeeping and keeping overlapping in-flight batches apart on an event loop.
AnrokSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenA three-part Python image processing exercise: resize and rotate images with Pillow while predicting the exact printed dimensions, speed up a large batch with multiprocessing and a staged pipeline, then keep the batch running through corrupt, oversized and unsupported files. It tests API precision, parallelism and robustness.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsiteA Python coding exercise that applies a given sequence of Pillow transforms to a folder of cat images and then asks you to cut the total processing time. It tests clean per-image code, reasoning about CPU-bound work and the GIL, choosing between processes and threads, and sizing a worker pool.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsiteDesign a Pillow resize-and-rotate pipeline with explicit transform semantics, bounded multiprocessing, per-image failures, and safe output publication.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsiteTests operating system concurrency fundamentals, memory ownership models, IPC serialization overhead, and empirical benchmarking strategies for CPU-bound image processing pipelines.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsiteCompute an exact distributed mode with local frequency combining, key-based reducers, global winner selection, communication accounting, and skew-aware recovery.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsiteCompute an exact distributed median through global rank selection and count reductions, accounting for integer range, local search work, communication rounds, and even-size semantics.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsiteConvert a sampling profiler's timestamped call stacks into function start and end events for a trace viewer, explain why ends are emitted innermost first and starts outermost first, then redesign the converter for an unbounded stream. It tests stack diffing, recursion handling and streaming state.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsiteImplement and debug a thread-safe, bounded LRU memoization decorator that generates canonical cache keys across equivalent argument patterns, distinguishes conflicting types, and avoids caching exceptions.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsiteImplement and debug a prefix-based tokenizer and detokenizer class, ensuring deterministic longest-match greedy tokenization, strict vocabulary validation, explicit error handling for unencodable characters, and guaranteed round-trip fidelity.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsiteDesign and implement the coordination logic for a distributed range-based sort across multiple worker nodes, specifying the worker helper contract and handling key skew and duplicate values.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsiteThis problem tests your ability to design a thread-safe, parallelized image processing framework that handles neighborhood-based pixel operations without race conditions.
AnthropicSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis question evaluates understanding of CPU-bound versus I/O-bound workloads and their interaction with concurrency models such as multithreading, asynchronous I/O, and multiprocessing in Python, including the impact of the Global Interpreter Lock (GIL) and relevance to tasks like web crawling, parsing, and heavy computation.
AnthropicSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis question tests your conceptual understanding of how process-based and thread-based concurrency models leverage hardware resources and their respective trade-offs in the context of Python and high-performance ML workloads.
AnthropicMachine Learning EngineerSoftware Engineering FundamentalsOnsiteWalk a directory tree and report every group of files with identical contents, printing nothing when there are no duplicates. It tests staged filtering by size and hashes, streaming reads of large files, link and error handling, and reasoning about whether the job is CPU-bound or I/O-bound.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsiteDebug a flawed least-recently-used cache by finding each bug with a reproducing call sequence and fixing it, then make the cache durable across crashes with a write-ahead log and snapshots. It tests careful code reading, constant-time LRU design, crash-consistent persistence and recovery.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsiteA Python exercise that builds an LRU cache for memoizing function calls. Part one asks how to generate a reliable cache key from a function and its arguments; part two adds crash recovery through an append-only log file, testing record framing, durability, torn writes and replay of the cache state.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsiteThis question assesses a candidate's ability to critically evaluate technical design documentation by identifying architectural risks, scalability bottlenecks, and gaps in operational planning.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsiteImplement an efficient file system scanner that identifies duplicate files while minimizing disk I/O and gracefully handling filesystem errors.
AnthropicSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenConvert a sequential crawler to bounded concurrency using atomic URL reservation, explicit retry state, and completion detection that accounts for active fetches.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsiteIntegers are spread across 10 nodes that communicate only by sending and receiving messages. Write the per-node programs that compute the exact mode, the median and a globally sorted order while sending as little data as possible. It tests MapReduce-style aggregation, distributed selection, sample sort and message coordination.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsiteTurn a sequential directory walker into a bounded-concurrency one, using an atomic reserve-before-expand step so two worker threads that reach the same directory at once never process it twice.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsiteDiscover a package's transitive dependency graph from a slow, flaky registry, first with a sequential BFS and then with a bounded pool of worker threads. Tests atomic visited-set reservation, explicit retry state, and correct termination detection with in-flight work.
AnthropicSoftware EngineerSoftware Engineering FundamentalsOnsite