Katkat

practice a little every day, paws crossed ♡

Software Engineering Fundamentals Interview Questions

Practice 9403 coding, system design and machine learning questions from 546 companies, sorted by role, topic and interview round. Every question has step-by-step hints, a code runner that supports 8 languages and an AI mentor; members also get the full solution walkthrough.

9403
Questions
546
Companies
11
Topics
8
Languages

Showing 31–60 of 448 results

  • AndurilMediumSoftware Engineer
    Explain Hash Map Collisions and Operation Complexity

    Tests in-depth understanding of hash table internals, comparing collision resolution mechanisms, deletion strategies, dynamic resizing, and operation complexities under expected and adversarial conditions.

    Software Engineering FundamentalsOnsiteData StructuresHash MapsAlgorithms
  • AnthropicMediumSoftware Engineer
    Batch Image Resize and Rotate with Pillow: Exact Dimensions, Parallelism, Bad Files

    A 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.

    Software Engineering FundamentalsOnsite
  • AnthropicHardSoftware Engineer
    Batch-Apply Pillow Image Transforms, Then Parallelize: Processes vs Threads

    A 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.

    Software Engineering FundamentalsOnsite
  • AnthropicMediumSoftware Engineer
    Build a Resize-and-Rotate Image Pipeline with Multiprocessing

    Design a Pillow resize-and-rotate pipeline with explicit transform semantics, bounded multiprocessing, per-image failures, and safe output publication.

    Software Engineering FundamentalsOnsite
  • AnthropicMediumSoftware Engineer
    Compare Threads and Processes for Image Processing

    Tests operating system concurrency fundamentals, memory ownership models, IPC serialization overhead, and empirical benchmarking strategies for CPU-bound image processing pipelines.

    Software Engineering FundamentalsOnsiteconcurrencyoperating-systemsperformance
  • AnthropicHardSoftware Engineer
    Compute a Global Mode Across Distributed Partitions

    Compute an exact distributed mode with local frequency combining, key-based reducers, global winner selection, communication accounting, and skew-aware recovery.

    Software Engineering FundamentalsOnsite
  • AnthropicHardSoftware Engineer
    Compute an Exact Distributed Median with Limited Communication

    Compute an exact distributed median through global rank selection and count reductions, accounting for integer range, local search work, communication rounds, and even-size semantics.

    Software Engineering FundamentalsOnsite
  • AnthropicMediumSoftware Engineer
    Convert Sampled Call Stacks into Timestamped Function Start and End Events

    Convert 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.

    Software Engineering FundamentalsOnsite
  • AnthropicHardSoftware Engineer
    Debug Python LRU Cache-Key Construction

    Implement 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.

    Software Engineering FundamentalsOnsitepythonconcurrencycaching
  • AnthropicHardSoftware Engineer
    Debug Tokenization and Detokenization

    Implement 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.

    Software Engineering FundamentalsOnsitestring-algorithmstriesoftware-engineering
  • AnthropicMediumSoftware Engineer
    Design Distributed Sorting Around an Explicit Helper Contract

    Design 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.

    Software Engineering FundamentalsOnsitedistributed-systemsalgorithmssystem-design
  • AnthropicMediumMachine Learning Engineer
    Explain multithreading vs multiprocessing

    This 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.

    Software Engineering FundamentalsOnsiteConcurrencyPythonOperating Systems
  • AnthropicMediumSoftware Engineer
    Find Duplicate Files by Content in a Directory Tree and Explain CPU vs I/O Costs

    Walk 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.

    Software Engineering FundamentalsOnsite
  • AnthropicMediumSoftware Engineer
    Fix a Buggy LRU Cache, Then Make It Durable with a Write-Ahead Log

    Debug 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.

    Software Engineering FundamentalsOnsite
  • AnthropicHardSoftware Engineer
    Function-Call LRU Cache: Argument Key Generation and Crash Recovery from a Log

    A 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.

    Software Engineering FundamentalsOnsite
  • AnthropicHardSoftware Engineer
    How do you review a design document?

    This question assesses a candidate's ability to critically evaluate technical design documentation by identifying architectural risks, scalability bottlenecks, and gaps in operational planning.

    Software Engineering FundamentalsOnsiteSystem DesignCode ReviewReliability
  • AnthropicMediumSoftware Engineer
    Make a Web Crawler Concurrent with Thread-Safe Visited State

    Convert a sequential crawler to bounded concurrency using atomic URL reservation, explicit retry state, and completion detection that accounts for active fetches.

    Software Engineering FundamentalsOnsite
  • AnthropicMediumSoftware Engineer
    Mode, Median and Sort Across 10 Nodes with Send/Receive While Minimizing Traffic

    Integers 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.

    Software Engineering FundamentalsOnsite
  • AnthropicMediumSoftware Engineer
    Parallelize a Directory Walker With Thread-Safe Visited Tracking

    Turn 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.

    Software Engineering FundamentalsOnsiteconcurrencythreadingshared-state
  • AnthropicMediumSoftware Engineer
    Resolve a Package Dependency Graph with Concurrent Fetches

    Discover 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.

    Software Engineering FundamentalsOnsiteconcurrencythreadinggraph-traversal
  • AnthropicMediumSoftware Engineer
    Reuse Work Across Multiprocess Image Pipelines

    Implement a thread-safe pipeline execution engine that caches deterministic intermediate prefix results, deduplicates concurrent in-flight computations, and manages a bounded LRU cache.

    Software Engineering FundamentalsOnsiteconcurrencycachingsystem-design
  • AnthropicHardSoftware Engineer
    Review and Improve Four AI-Assisted TypeScript Pull Requests

    Tests code review rigor, ability to audit AI-generated code for subtle regressions and security/type soundness, and hands-on refactoring with test-driven verification.

    Software Engineering FundamentalsOnsiteTypeScriptCode ReviewConcurrency
  • AnthropicMediumSoftware Engineer
    Same-Host Web Crawler: Single-Threaded, Then Concurrent with a Thread-Safe Visited Set

    Build a web crawler that starts from one URL, follows links only on the same hostname, strips URL fragments and fetches each page once, first single-threaded and then concurrently. It tests graph traversal, URL normalization, a thread-safe visited set and correct termination of concurrent work.

    Software Engineering FundamentalsOnsite
  • AnthropicMediumSoftware Engineer
    Scale a Thumbnail-and-Watermark Pipeline With Worker Processes

    Design a batch pipeline that produces a resized thumbnail with a corner watermark for every uploaded photo, then extend it to run across a bounded pool of worker processes. Tests resource lifecycle, atomic output writes, per-item failure isolation, and what to pass between processes.

    Software Engineering FundamentalsOnsitemultiprocessingsystem-designpython
  • AppleHardSoftware Engineer
    ASIC Verification Fundamentals Across SystemVerilog UVM CDC and Architecture

    Review a broad ASIC verification set covering SystemVerilog semantics, UVM lifecycle and communication, random constraints, clock-domain crossing, FIFO sizing, timing, clock division, cache coherence, and pipeline hazards. Strong responses distinguish simulation from hardware, define assumptions, derive quantities, compare trade-offs, and use precise examples.

    Software Engineering FundamentalsOnsite
  • AppleHardSoftware Engineer
    Explain How TLS Secures a Connection: Handshake, Certificates and Keys

    Explain in detail how TLS establishes a secure connection and protects the data that follows: the handshake messages and round trips, certificate chain validation, ephemeral key exchange and key derivation, record encryption, forward secrecy, and how TLS 1.3 differs from TLS 1.2.

    Software Engineering FundamentalsOnsite
  • AppleHardSoftware Engineer
    Explain thermal and signal fundamentals

    This question tests the ability to bridge hardware constraints with firmware design, covering thermal management, signal integrity, communication protocol trade-offs, and data interpretation.

    Software Engineering FundamentalsOnsiteEmbedded SystemsHardware FundamentalsSignal Integrity
  • AppleMediumSoftware Engineer
    Implement a Five-Minute Hit Counter

    This problem tests your ability to design a high-throughput, time-series data structure that balances memory usage with query performance.

    Software Engineering FundamentalsOnsiteData StructuresConcurrencyTime-Series
  • AppleHardSoftware Engineer
    Implement a Mutual-Exclusion Lock Without Built-In Locks

    Implement a mutual-exclusion lock without any built-in lock, mutex or semaphore, relying only on atomic operations. Tests atomic read-modify-write, memory ordering, spinning versus sleeping waiters, fairness, reentrancy, and software-only mutual exclusion when atomic instructions are unavailable.

    Software Engineering FundamentalsOnsite
  • AppleHardSoftware Engineer
    Implement a Reusable Cyclic Barrier from a Mutex and Condition Variables

    Implement a reusable cyclic barrier from a mutex and condition variables, where a fixed number of threads block until all have arrived and are then released together. Tests round tracking for safe reuse, spurious wakeups, timeout and broken-barrier semantics, an atomics-only variant and concurrency testing.

    Software Engineering FundamentalsOnsite