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 391–420 of 625 results

  • OpenAIMediumSoftware Engineer
    Design a social network with snapshots

    This problem tests your ability to design a memory-efficient versioned graph structure that supports efficient edge retrieval at arbitrary points in time.

    Software Engineering FundamentalsTechnical ScreenGraphData StructuresVersioning
  • OpenAIHardMachine Learning Engineer
    Design an In-Memory Key-Value Cache

    Implement a thread-safe in-memory key-value cache supporting capacity bounds, LRU eviction, and per-key time-to-live (TTL) expiration.

    Software Engineering FundamentalsTechnical ScreenData StructuresConcurrencyLRU Cache
  • OpenAIMediumSoftware Engineer
    Dispatch Parcels to Delivery Drones That May Go Silent Mid-Flight

    Build an in-process dispatcher that hands delivery parcels to drones, reclaims a parcel when its drone goes silent, rejects stale reports from a drone that already lost its parcel, and quarantines parcels that fail too many times.

    Software Engineering FundamentalsTechnical Screenconcurrencystate-machinereliability
  • OpenAIHardSoftware Engineer
    Durable Session Cache: Byte Checkpoints, Segments, Thread Safety

    A three-part exercise building a durable in-memory session cache: serialize entries to length-prefixed bytes and checkpoint them to disk, split the checkpoint into size-capped segments that reassemble by concatenation, then discuss making the class thread-safe. Tests byte-level encoding, exact round-tripping, and concurrency reasoning.

    Software Engineering FundamentalsTechnical Screenserializationpersistenceconcurrency
  • OpenAIMediumSoftware Engineer
    Expiring GPU Credit Ledger with Out-of-Order Events and Point-in-Time Balance

    A two-part coding exercise to build a GPU credit ledger with expiring grants, usage deducted earliest-expiration-first, out-of-order events and balance queries at any timestamp, then avoid replaying from time zero on every query. It tests event ordering, heap use, checkpointing and invalidation when late events arrive.

    Software Engineering FundamentalsTechnical Screen
  • OpenAIHardSoftware Engineer
    Fault-Tolerant Task Queue with Retries, a Dead-Letter Queue and Task Dependencies

    Implement an in-memory fault-tolerant task queue with enqueue, reserve, complete and fail operations, retries up to a configurable attempt limit, and a dead-letter queue for tasks that keep failing. A second part adds dependencies between tasks, testing state-machine design, efficient readiness tracking and handling of failed dependencies.

    Software Engineering FundamentalsTechnical Screen
  • OpenAIHardSoftware Engineer
    Fault-Tolerant Task Queue with Retry Cooldowns, a Dead-Letter Queue and Dependencies

    Implement an in-memory fault-tolerant task queue with enqueue, reserve, fail and a dead-letter queue, where each failed task waits out its own cooldown measured from the failure time and returns in its original enqueue order. A second part adds task dependencies, testing state modeling, efficient scheduling and careful edge-case handling.

    Software Engineering FundamentalsTechnical Screen
  • OpenAIMediumiOS Engineer
    Implement A Mobile Chat Interface In An Existing Codebase

    Tests your ability to design and implement a streaming chat interface state manager in an existing mobile codebase, focusing on async token streaming, state modeling, cancellation, and error handling.

    Software Engineering FundamentalsTechnical ScreeniOSSwiftConcurrency
  • OpenAIMediumSoftware Engineer
    Implement a Recoverable In-Memory Key-Value Store

    This problem tests your understanding of durability, logging, and data persistence in an in-memory system.

    Software Engineering FundamentalsTechnical ScreenSystemsConcurrencyPersistence
  • 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
    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
  • OpenAIMediumMachine Learning Engineer
    Model Infection, Immunity, Delayed Death, and Burn Interventions on a Grid

    Design and implement a discrete grid simulation modeling a five-stage disease progression with state countdowns, immunity, delayed mortality, and external burn interventions.

    Software Engineering FundamentalsTechnical Screensimulationmatrixstate-machine
  • 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
  • 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
    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
    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
  • 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
  • OptiverMediumData Scientist
    Prove a Tight Lower Bound on a Latin Square's Lower-Triangle Sum

    This question evaluates combinatorial reasoning and discrete optimization skills—specifically understanding permutations in Latin squares, triangular-sum inequalities, and construction of extremal examples—within the Software Engineering Fundamentals domain for a Data Scientist position, and it primarily probes conceptual understanding with a constructive application component. Such problems are commonly asked to assess the ability to derive global bounds from local constraints and to exhibit matching constructions, signaling mathematical maturity and facility with combinatorial identities.

    Software Engineering FundamentalsTechnical Screen
  • OptiverHardSoftware Engineer
    Reviewing a Freight-Scheduler Codebase: Bugs, Data Structures, and Concurrency

    This question evaluates a candidate's ability to perform code review and debugging on a large codebase, testing understanding of data structures, algorithmic complexity, deterministic allocation policies, capacity accounting, and concurrency correctness.

    Software Engineering FundamentalsTechnical Screen
  • OracleEasySoftware Engineer
    Implement a Paginated Medical-Record Filter Without Guessing an Ambiguous Rule

    This problem tests your ability to handle ambiguous business logic through requirement clarification and implement a robust, paginated filtering system for sensitive data.

    Software Engineering FundamentalsTechnical ScreenPaginationRequirementsData-Validation
  • ParadromicsMediumSoftware Engineer
    Compare RDBMS vs NoSQL and containers

    Evaluates mastery of data storage and scaling trade-offs (RDBMS vs NoSQL), virtualization and containerization concepts (VMs, Docker), orchestration features (Kubernetes), and language-level performance optimization (Python vs C++).

    Software Engineering FundamentalsTechnical Screen
  • PayPalMediumSoftware Engineer
    Detect memory leaks in C++

    This interview question evaluates engineering fundamentals, trade-offs, examples, pitfalls, and operational implications in a realistic interview setting. A strong answer for Detect memory leaks in C++ states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.

    Software Engineering FundamentalsTechnical Screen
  • PerceptyxMediumSoftware Engineer
    Demonstrate a Project and Defend Its Design

    Tests your ability to present an end-to-end software project you built or led, defend key technical design decisions and trade-offs, and architect a forward-looking feature extension under live questioning.

    Software Engineering FundamentalsTechnical ScreenSystem DesignArchitectureProject Walkthrough
  • PerplexityMediumSoftware Engineer
    In-Memory File System: Add cd and Relative Path Support

    A multi-part coding exercise that builds an in-memory file system with directories, files and listings over absolute paths, then adds a cd command and relative path support to every operation. It tests tree data structures, path normalization with dot and dot-dot components, consistent error handling and safely refactoring earlier code.

    Software Engineering FundamentalsTechnical Screen