Katkat

practice a little every day, paws crossed ♡

Software Engineer 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 631–660 of 1026 results

  • NVIDIAMediumSoftware Engineer
    Implement a Thread-Safe Reference-Counted Smart Pointer in C++

    Implement a reference-counted smart pointer class template in C++ from scratch, with copy and move construction and assignment, reset, dereferencing and a use count. It tests ownership rules, self-assignment and exception safety, atomic reference counting with correct memory ordering, and extensions such as weak pointers, base-class conversion and reference cycles.

    Software Engineering FundamentalsOnsite
  • NVIDIAMediumSoftware Engineer
    Implement and Explain a C++ Smart Pointer

    Tests understanding of C++ memory management, RAII, explicit ownership semantics, and the Rule of Five by implementing a reference-counted shared smart pointer.

    Software Engineering FundamentalsTechnical ScreenC++Memory ManagementRAII
  • NVIDIAMediumSoftware Engineer
    Optimize a small-string C++ class

    This question evaluates low-level C/C++ systems programming skills, including memory management, data layout, small-string optimization, efficient copying semantics, alignment/padding, and cache-aware performance reasoning.

    Software Engineering FundamentalsOnsite
  • NVIDIAMediumSoftware Engineer
    Reason About Endianness, Ring Buffers, and Stack Behavior in Firmware

    Tests firmware-level engineering concepts across low-level binary data parsing, lock-free ring buffer design for ISR-to-thread communication, and static/runtime stack depth analysis under nested interrupts.

    Software Engineering FundamentalsTechnical ScreenFirmwareEmbedded SystemsConcurrency
  • NVIDIAMediumSoftware Engineer
    Streaming Top-K Frequent Elements with O(1) Updates Instead of a Heap

    Design a structure that consumes an unbounded stream and reports the K most frequent elements at any time, first with a heap and then with constant-time updates after the interviewer rejects the heap. It tests per-operation cost analysis, data-structure invariants, deterministic tie handling, and extensions to sliding windows, approximate counting, and sharded streams.

    Software Engineering FundamentalsOnsite
  • NVIDIAHardSoftware Engineer
    Verification Plan for a FIFO, a Round-Robin Arbiter and a Valid/Ready Handshake

    A hardware design-verification interview question: plan how to verify a FIFO, a round-robin arbiter and a valid/ready handshake interface. It tests testbench architecture with scoreboards and reference models, constrained-random stimulus, corner cases, SystemVerilog assertions and functional coverage.

    Software Engineering FundamentalsOnsite
  • NVIDIAEasySoftware Engineer
    Write SQL to sum city population by name

    Assesses SQL proficiency in relational joins and aggregation by asking for a total population computed from ZIP-level data and evaluates reasoning about duplicate entity names.

    Software Engineering FundamentalsTechnical Screen
  • NVIDIAEasySoftware Engineer
    Write a Tiny Linux Resource Reporter That Flags Usage Spikes

    Write a small Linux agent that reads live CPU, memory and disk usage from kernel-exposed files, reports them as JSON to a collector endpoint over HTTP, and adds a rolling-window check that only flags a sustained resource spike rather than a single noisy reading.

    Software Engineering FundamentalsOnsitelinuxsystemshttp
  • NetflixMediumSoftware Engineer
    Design Prefix-Aware Deduplication for Homepage Content Rows

    Implement prefix-aware content row deduplication where protected row prefixes cannot share items across rows, while suffixes and exempt rows only enforce row-internal uniqueness.

    Software Engineering FundamentalsTechnical ScreenArraysHash TableData Manipulation
  • NetflixHardSoftware Engineer
    Design a concurrent latency percentile tracker

    This problem tests your ability to design a high-throughput, thread-safe data structure capable of tracking request latencies and calculating arbitrary percentiles (e.g., p99) within a sliding time window.

    Software Engineering FundamentalsTechnical ScreenConcurrencyData StructuresMetrics
  • NetflixMediumSoftware Engineer
    Design a thread-safe key-value store

    This question evaluates knowledge of concurrent programming and thread-safety, including the choice of in-memory data structures for a key–value store and synchronization techniques that ensure atomic put/get/delete operations without internal corruption.

    Software Engineering FundamentalsTechnical Screen
  • NetflixEasySoftware Engineer
    Implement a Key-Value Cache with Per-Entry Expiration

    This problem tests the ability to design an in-memory storage system that combines fixed-capacity constraints with time-based invalidation logic.

    Software Engineering FundamentalsTechnical ScreenHash MapLinked ListConcurrency
  • NetflixMediumSoftware Engineer
    Implement an in-memory key-value store with per-key TTL expiration and tests

    A coding interview question that asks you to implement an in-memory key-value store whose entries expire after a per-key time-to-live, explain the design as you go, and test it. It tests expiry semantics, overwrite handling, reclaiming memory from keys that are never read again, complexity trade-offs and deterministic tests with a controllable clock.

    Software Engineering FundamentalsTechnical Screen
  • NetflixMediumSoftware Engineer
    Model Direct-Sold DSP Orders

    This Software Engineering Fundamentals question evaluates data and domain modeling skills for ad-technology order management, focusing on entities such as advertisers, agencies, orders, line items, targeting, creatives, delivery constraints, tracking events, reporting needs, and configuration versioning.

    Software Engineering FundamentalsOnsite
  • NetflixMediumSoftware Engineer
    Movie Playlist With Live Score Updates and No Repeats per Loop, Plus Thread Safety

    Implement an in-memory movie playlist in which get returns the highest-scoring movie not yet served in the current loop, starting a new loop once every movie has been served, while scores can change at any time. A follow-up asks where to add locks when many threads call it concurrently.

    Software Engineering FundamentalsTechnical Screen
  • NetflixMediumSoftware Engineer
    Plan Eviction and Cleanup for a Production Cache

    This problem tests the design of an in-memory caching system, focusing on memory management, eviction strategies, and concurrency control to ensure high performance and stability.

    Software Engineering FundamentalsTechnical ScreenSystem DesignConcurrencyCaching
  • NetflixMediumSoftware Engineer
    Reason About a Movie Billboard Rotation Component

    This problem tests the ability to manage dynamic scheduling and priority updates using balanced binary search trees (ordered maps) while handling concurrency and system scalability.

    Software Engineering FundamentalsOnsiteData StructuresConcurrencySystem Design
  • NetflixMediumSoftware Engineer
    Recommend New Friends from a Mutual-Friendship Graph and Scale the Approach

    A problem-solving question about recommending new friends from a mutual friendship graph, worked mostly through discussion with a little code and pseudocode. It tests candidate generation and scoring with deterministic tie-breaks, cost in terms of node degree, handling highly connected users, and precomputing and refreshing suggestions at scale.

    Software Engineering FundamentalsOther
  • NetflixMediumSoftware Engineer
    Session Token Cache With Per-Entry Expiry and a Test Suite

    Implement an in-memory cache whose entries expire individually, reclaim memory for keys that are never read again, and prove it with deterministic tests using an injected clock. Tests expiry semantics, stale-entry handling and test design.

    Software Engineering FundamentalsTechnical Screendata-structuresheapcaching
  • NextdoorMediumSoftware Engineer
    Design In-Memory Transactions with Snapshots and Savepoints

    Tests your ability to design an in-memory key-value store supporting nested transactions, named savepoints, and reliable rollback semantics using undo logs or snapshotting.

    Software Engineering FundamentalsTechnical ScreenData StructuresSystem FundamentalsDesign
  • NgrokMediumSoftware Engineer
    Support String Membership and Random Sampling

    Design an immutable in-memory string collection with exact membership checks and uniform random sampling over stored values. Combine complementary indexing and positional storage, analyze time and memory, and compare the approach with a trie for prefix sharing and future mutations.

    Software Engineering FundamentalsTechnical Screen
  • NielsenMediumSoftware Engineer
    Spring Boot Internals and Java 21 Features Behind a Machine Coding Solution

    A machine coding follow-up that drills into a Spring Boot service built during the round: startup, auto-configuration, dependency injection and proxies, then the Java 21 features that could improve it, such as sealed types with pattern matching and virtual threads. It tests framework depth and version-aware modern Java knowledge.

    Software Engineering FundamentalsOther
  • NikeMediumSoftware Engineer
    Choose a Sorting Algorithm from Workload Constraints

    Tests your ability to evaluate classical sorting algorithms against concrete workload constraints such as memory access patterns, worst-case guarantees, stability, and streaming limits.

    Software Engineering FundamentalsTechnical ScreenSortingAlgorithmsData Structures
  • NotionMediumSoftware Engineer
    Design a Todo List Object Model

    Tests object-oriented design, domain modeling, and API design skills by implementing an extensible, hierarchical Todo list model with task dependency management and filtering.

    Software Engineering FundamentalsOnsiteObject-Oriented DesignAPI DesignDesign Patterns
  • NotionMediumSoftware Engineer
    Implement Recursive React JSON Viewer with Collapse

    Implement Recursive React JSON Viewer with Collapse evaluates requirements, assumptions, structured reasoning, trade-offs, and verification in a realistic interview setting. A strong answer states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.

    Software Engineering FundamentalsTechnical Screen
  • NuroMediumSoftware Engineer
    Build a Concurrent Recurring Job Scheduler

    This problem tests your ability to design a thread-safe, concurrent task scheduling system that manages recurring executions while handling lifecycle events like cancellation and graceful shutdown.

    Software Engineering FundamentalsTechnical ScreenConcurrencyMultithreadingDesign Patterns
  • NuroHardSoftware Engineer
    Build a Thread-Safe Video Playback Loop at 25 FPS

    Design and implement a thread-safe video playback engine that decodes and renders frames at a steady 25 frames per second using bounded buffering and precise monotonic scheduling.

    Software Engineering FundamentalsTechnical ScreenConcurrencyMultithreadingSystems Design
  • NuroHardSoftware Engineer
    C++ K-Way Merge of Timestamped Records with Clean Class Design and Hand-Written Tests

    Merge k input sequences of timestamped records, each already sorted by timestamp, into one ordered sequence in C++. The exercise stresses defining the record type, the merging class's state and interface, deterministic handling of equal timestamps, and writing your own C++ test cases without a judge harness.

    Software Engineering FundamentalsTechnical Screen
  • NuroHardSoftware Engineer
    Compare Locks and MVCC in a Versioned Store

    Tests deep understanding of concurrency control paradigms by comparing pessimistic locking against Multi-Version Concurrency Control (MVCC) in a versioned key–value storage engine, focusing on version lifecycle, garbage collection, and read/write trade-offs.

    Software Engineering FundamentalsOnsiteStorage EnginesConcurrency ControlMVCC
  • NuroHardSoftware Engineer
    Coordinate Video Reading and Rendering at 25 Frames per Second

    Design a 25fps video player with serialized unsafe APIs, bounded producer-consumer buffering, deadline pacing, and explicit timing feasibility limits.

    Software Engineering FundamentalsTechnical Screen