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 691–720 of 1026 results

  • OpenAIHardSoftware Engineer
    Implement a Set with Readable Snapshots

    Design and implement a versioned set data structure that supports membership modifications, instant snapshotting, and historical point-in-time queries efficiently.

    Software Engineering FundamentalsOnsiteData StructuresDesignBinary Search
  • OpenAIMediumSoftware Engineer
    Implement a Simple Memory Allocator

    This question evaluates low-level memory management and allocator design skills, including block header layout, free-list/data-structure choices, pointer arithmetic, fragmentation concepts, and analysis of time/space complexity.

    Software Engineering FundamentalsOnsite
  • OpenAIMediumSoftware Engineer
    Implement a fault-tolerant work queue that never loses tasks when workers fail

    Implement an in-process work queue that never loses a task when the worker holding it crashes, stalls or reports an error. It tests task state tracking, detecting silent workers, rejecting late reports from workers that lost a task, bounded retries for tasks that always fail, thread safety, and deterministic tests built on an injected clock.

    Software Engineering FundamentalsTechnical Screen
  • OpenAIMediumSoftware Engineer
    Implement an Extensible Chatbot App

    This question evaluates a candidate's ability to design extensible object-oriented systems, covering interface-based architecture, dependency injection, per-conversation state management, and decoupled dispatch logic.

    Software Engineering FundamentalsTechnical Screen
  • OpenAIHardSoftware Engineer
    Implement malloc and free over Fixed Memory, Then Make Both Logarithmic

    Implement malloc and free for a fixed range of memory in Python, first with a simple list of blocks and then with logarithmic-time operations backed by a third-party sorted container. It tests block splitting and merging, choosing ordered indexes for allocation and neighbor lookup, and keeping parallel structures consistent.

    Software Engineering FundamentalsTechnical Screen
  • OpenAIHardSoftware Engineer
    In-Memory Key-Value Store with Crash Recovery from a Log and Concurrent Access

    Implement an in-memory key-value store, make it recover from a log file after a crash, including a half-written final record, and make it correct and fast under many concurrent threads. It tests write-ahead logging, crash consistency, compaction, and lock design with group commit.

    Software Engineering FundamentalsOnsite
  • OpenAIHardSoftware Engineer
    Indexed Vector as a Linked List with Checkpoints Every k Nodes

    Implement an indexed dynamic sequence of strings, in the sense of an array list, that supports inserting at a position and reading by position. Starting from a plain singly linked list, build a linked list with a checkpoint every k nodes so reads cost O(k), and keep the checkpoints correct as insertions shift positions.

    Software Engineering FundamentalsOnsite
  • OpenAIHardSoftware Engineer
    Key-Value Store Persistence: Length-Prefixed Bytes, Size-Capped Chunks, Thread Safety

    A three-part key-value store exercise: serialize keys, values and their lengths into bytes and persist them on shutdown, split the saved data into chunks of a given maximum size, and discuss making the existing code safe for multithreaded use. It tests byte-level encoding, correct restore and concurrency reasoning.

    Software Engineering FundamentalsTechnical Screen
  • OpenAIHardSoftware Engineer
    Lab Robot Job Dispatcher with Backoff, Quarantine and Prereqs

    Implement an in-memory job dispatcher where failed jobs wait out a per-job backoff, keep their original queue position, and get quarantined after repeated failures, then add prerequisite jobs with cascading quarantine. Tests state modeling, dual-heap scheduling, and online topological ordering.

    Software Engineering FundamentalsTechnical Screenheapschedulingstate-machine
  • OpenAIMediumSoftware Engineer
    Lease-Based Job Queue for Flaky Render Workers

    Build an in-process job queue that hands out time-limited leases. A job is never lost when a worker crashes, hangs or fails, and jobs that always fail are dead-lettered after a retry limit. Tests state machines, fencing tokens, thread safety and clock-injected tests.

    Software Engineering FundamentalsTechnical Screenconcurrencyqueuesfault-tolerance
  • OpenAIHardSoftware Engineer
    Model particle hits on a screen

    This question evaluates geometric reasoning and probability theory skills, specifically transformation of random variables and derivation of CDF/PDF from angular sampling, together with practical competence in Monte Carlo simulation and interpretation of numerical and visualization artifacts; domain: Software Engineering Fundamentals.

    Software Engineering FundamentalsOnsite
  • OpenAIHardSoftware Engineer
    Plant Infection Grid Simulation: Days to Stabilize, Immune Plants, Expiring Immunity

    A progressive grid simulation: infection spreads daily between adjacent plants, and you compute how many days the garden takes to stabilize, then add permanently immune plants and immunity that expires after a countdown. It tests multi-source breadth-first search, Dijkstra-style waiting times and precise day counting.

    Software Engineering FundamentalsOnsite
  • OpenAIHardSoftware Engineer
    Print Shop Job Queue: Retries, a Poison Queue and Job Prerequisites

    Implement an in-memory job queue for a print shop where workers reserve, complete, or fail jobs, failed jobs retry up to a limit before landing in a poison queue, and a second part adds job prerequisites with cascading failure.

    Software Engineering FundamentalsTechnical Screenqueuesstate-machinesretries
  • OpenAIMediumSoftware Engineer
    Reactive Budget Notebook With Live Formulas and Cycle Rejection

    Build a small reactive calculator where named variables hold integers or formulas that reference other variables, values stay correct as inputs change, and any definition that would create a circular dependency is rejected. Tests graph modeling, cache invalidation, cycle detection, and writing tests live.

    Software Engineering FundamentalsOnsitedependency-graphcycle-detectioncaching
  • OpenAIHardSoftware Engineer
    Reason About Binary Search with One-Call-Delayed Feedback

    Implement and analyze binary search under a 1-step delayed-feedback protocol where each query response evaluates the previous guess.

    Software Engineering FundamentalsTechnical Screenbinary-searchinteractivealgorithms
  • OpenAIMediumSoftware Engineer
    Refactor a Chatbot into Clean Object-Oriented Components

    Tests object-oriented design and refactoring skills by decoupling a monolithic chatbot script into modular, testable, and extensible components adhering to SOLID principles.

    Software Engineering FundamentalsTechnical ScreenObject-Oriented DesignRefactoringDesign Patterns
  • OpenAIMediumSoftware Engineer
    Serialize and Restore an In-Memory Key-Value Store

    Design and implement a deterministic binary serializer and strict deserializer for a string key-value store, ensuring robust input validation against corruption, truncation, duplicate keys, and trailing data.

    Software Engineering FundamentalsTechnical Screenbinary-serializationsystemsdata-encoding
  • OpenAIMediumSoftware Engineer
    Sliding-Window Chat Analytics: Recent Counts, Live Sessions, Out-of-Order Events

    A three-part coding exercise: build an in-memory chat analytics service that counts each chat's interactions in a closed 15-minute sliding window, tracks each user's live sessions from touch and close events, and stays correct when events arrive out of order. It tests bounded-memory eviction, efficient updates and queries, and exact window and ordering semantics.

    Software Engineering FundamentalsOnsite
  • OpenAIMediumSoftware Engineer
    Sliding-Window Forklift Telemetry: Pings, Shifts, Late Events

    Build an in-memory telemetry service that counts a forklift's recent pings in a 15-minute window, tracks which forklifts are currently on an active shift, and stays correct when pings arrive late and out of order. Tests bounded-memory eviction and exact window semantics.

    Software Engineering FundamentalsOnsitesliding-windowstreamingdata-structures
  • OpenAIMediumSoftware Engineer
    Social Graph with Follow/Unfollow, Snapshots, History Queries and Recommendations

    A software engineer phone-screen coding problem: build an in-memory social graph that supports follow and unfollow, point-in-time snapshots, queries of who followed whom as of an earlier snapshot, and recommendations of users to follow. It tests data-structure choice, versioned history, and deterministic ranking.

    Software Engineering FundamentalsTechnical Screen
  • OpenAIMediumSoftware Engineer
    Spreadsheet engine with setCell/getCell, cell references, and cycle detection

    Build a small spreadsheet engine with setCell and getCell, where formulas reference other cells and a write that would create a circular dependency must be detected. The exercise also asks for live unit tests, probing data modeling, dependency graphs, cache invalidation and test design.

    Software Engineering FundamentalsOnsite
  • OpenAIHardSoftware Engineer
    Text Editor in Four Stages: Buffer, Undo/Redo, Trie Autocomplete, Collaborative OT

    Build a text editor in four stages: a buffer with insert, delete and read, undo and redo with two stacks, trie-based autocomplete ranked by word frequency, and real-time collaborative editing with operational transformation. It tests data structure choice, reversible operations, top-k retrieval and concurrency correctness.

    Software Engineering FundamentalsOnsite
  • OpenAIMediumSoftware Engineer
    Three-Card Game: Deal Hands, Rank Them, Then Add a Flush Category

    A two-part card game coding exercise: deal three cards to each player from one deck, show every hand and pick the winner using three of a kind, pair and high card, then add a flush category between them. It tests hand representation, within-category comparison, tie handling and code that extends cleanly when a rule changes.

    Software Engineering FundamentalsTechnical Screen
  • OpenAIHardSoftware Engineer
    Toy Language Types: Render Types and Signatures, Infer Generic Return Types

    Model the types of a toy programming language, with primitives, generic type variables and nested tuples, render types and function signatures as strings, then infer a call's concrete return type by binding generics consistently across arguments. It tests recursive data modeling, exact formatting and type inference with clear errors.

    Software Engineering FundamentalsOnsite
  • OpenAIHardSoftware Engineer
    Wildfire Grid: Days Until Quiet with Expiring Firebreaks

    Simulate a wildfire spreading through a forest grid to find how many days until it stops spreading, then extend the model with fire-resistant trees and firebreaks that only hold for a limited number of days before the protected tree becomes flammable.

    Software Engineering FundamentalsOnsitebfsgraphssimulation
  • OpenAIMediumSoftware Engineer
    eSIM Data Wallet with Expiring Bundles and Late Usage Records

    Implement a prepaid data wallet where usage draws from the soonest-expiring bundle first and records arrive out of timestamp order, then add checkpointing so balance queries do not replay the full history. Tests event-sourced thinking, heap-based priority consumption, and cache invalidation.

    Software Engineering FundamentalsOnsiteheapevent-sourcingout-of-order
  • OptiverMediumSoftware Engineer
    Design a Multi-Level Expiring Item Store

    Design an in-memory multi-level key-value store where items are stored at specific priority levels with individual expiration timestamps, supporting query fallback and expiration cleanup.

    Software Engineering FundamentalsOnline AssessmentData StructuresDesignHash Table
  • OptiverHardSoftware Engineer
    Design a News Subscription Processing Engine

    Design and implement an in-memory news subscription processing engine that supports attribute-based filtering, deduplication, unsubscription, and unacknowledged delivery tracking.

    Software Engineering FundamentalsOnline AssessmentLow-Level DesignPub-SubConcurrency
  • OptiverMediumSoftware Engineer
    Design an object-oriented queue and compare implementations

    Design an object-oriented queue and compare implementations evaluates engineering fundamentals, trade-offs, examples, pitfalls, and operational implications 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
  • OptiverHardSoftware Engineer
    Implement Expiration-Aware Retrieval Across Storage Levels

    Design and implement a multi-level storage system that purges expired items, filters for under-utilized storage tiers, and deterministically retrieves the highest-weight item.

    Software Engineering FundamentalsHR ScreenData StructuresDesignHeap