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 151–180 of 625 results

  • CoinbaseMediumSoftware Engineer
    Implement a blog feed with fetching and state

    This problem tests your ability to handle asynchronous data fetching, state synchronization, and UI interactions in React, specifically managing a list of blog posts with optimistic updates and sorting.

    Software Engineering FundamentalsTechnical ScreenReactFrontendAsync
  • CoinbaseMediumSoftware Engineer
    Implement debounced async autocomplete input

    Implement debounced async autocomplete input 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
  • CoinbaseMediumSoftware Engineer
    Implement debounced autocomplete component

    This interview question evaluates requirements, scale assumptions, API/data design, architecture, trade-offs, failure modes, and rollout in a realistic interview setting. A strong answer for Implement debounced autocomplete component states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.

    Software Engineering FundamentalsTechnical Screen
  • CoinbaseHardSoftware Engineer
    Pick Mempool Transactions for a Block with Parent Dependencies and CPFP

    A multi-part coding problem about filling a block of capacity 100 from a large, unsorted mempool of transactions with fees and sizes, where speed matters more than optimality. Later parts add parent transactions that must be included first, child-pays-for-parent across multi-level chains, and an optional minimum fee for a new child.

    Software Engineering FundamentalsTechnical Screen
  • Color HealthMediumSoftware Engineer
    Build and Review an Employee Expense Reimbursement Application

    This problem tests your ability to design a simple RESTful API and implement core CRUD operations with server-side validation for an expense tracking system.

    Software Engineering FundamentalsTechnical ScreenAPI DesignCRUDValidation
  • ConfluentHardSoftware Engineer
    Explain variadic functions

    Explain variadic functions 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
  • CoreweaveEasySoftware Engineer
    Build a Resilient Concurrent Python CLI for Local-Service Lookups

    Design a Python CLI for serial-number lookups with timeout, HTTP, and JSON handling, bounded thread-pool concurrency, and ordered results.

    Software Engineering FundamentalsTechnical Screen
  • CoreweaveMediumSoftware Engineer
    Coordinate Basic Threads and Inspect Them on Linux

    Use basic Python threading primitives for bounded concurrent function calls, exception capture and joining, then inspect native threads with Linux tools.

    Software Engineering FundamentalsTechnical Screen
  • CoreweaveMediumSoftware Engineer
    Design a predicate structure and filter records with comparison, AND and OR

    Design a data structure for predicates that combine greater-than and less-than comparisons with AND and OR, then implement filter(data, predicate) to return the matching items. Tests recursive structure design, extensibility to new operators, evaluation with early exit, and handling of missing fields and type mismatches.

    Software Engineering FundamentalsTechnical Screen
  • CostcoMediumSoftware Engineer
    Debug a Google Cloud Web App Where 80% of Users See Only a Loading Spinner

    A production debugging scenario: a web app deployed on Google Cloud loads for only 20% of users while the other 80% see a loading spinner forever. It tests a systematic walkthrough that scopes the failure, gathers browser and server evidence, and tests explanations for the split one at a time.

    Software Engineering FundamentalsTechnical Screen
  • Credit GenieMediumSoftware Engineer
    Implement FastAPI CRUD endpoints from skeletons

    This question evaluates a candidate's ability to implement RESTful CRUD endpoints with FastAPI, focusing on API contract consistency, HTTP status codes and idempotency, input validation and exception handling, and unit testing.

    Software Engineering FundamentalsTechnical Screen
  • CrestaMediumSoftware Engineer
    Job Dispatcher with Least-Loaded, Round-Robin Assignment and Executor Removal

    A coding exercise to implement Executor and JobDispatcher classes that send each integer job ID to the executor with the fewest pending jobs, breaking ties round-robin, while executors join and leave. It tests precise tie-break semantics, consistent load tracking, reassigning a removed executor's queued jobs, and edge cases.

    Software Engineering FundamentalsTechnical Screen
  • CrowdstrikeMediumBackend Engineer
    Implement a Risk-Score Priority DetectionStore With Put and GetNext in C++

    Implement a C++ DetectionStore whose Put stores security detections with an id, an unsigned risk score and a payload, and whose GetNext removes and returns the next detection by risk score as a unique_ptr. Tests priority-structure choice, ownership semantics, tie and duplicate-id policies, and thread safety.

    Software Engineering FundamentalsTechnical Screen
  • CubistMediumSoftware Engineer
    Design a class to submit jobs with dependencies and track their status

    Design and implement a job tracker class that accepts job submissions with dependencies, hands out jobs that are ready to run, and reports each job's status. It tests state-machine design, dependency-graph bookkeeping, handling of failures and cycles, and thread safety when several workers call the class at once.

    Software Engineering FundamentalsTechnical Screen
  • CubistMediumSoftware Engineer
    Design a reusable event-driven framework for trading strategies

    Design a reusable, event-driven framework for trading strategies that a team can keep extending after a take-home handoff. It tests event modeling and dispatch ordering, strategy interfaces, backtest and live parity, order and risk management, and the tests and documentation that make a framework maintainable.

    Software Engineering FundamentalsTechnical Screen
  • CursorMediumSoftware Engineer
    Build a Merkle Tree over a Directory with Hash Lookup and Tree Diff

    Implement a Merkle tree over a real directory in Python, with N-ary directory nodes, a build method, a hash lookup by path, and a diff that compares two trees, and write the tests yourself. It tests deterministic hashing design, file-system traversal, pruning identical subtrees, and disciplined testing under time pressure.

    Software Engineering FundamentalsTechnical Screen
  • CursorHardSoftware Engineer
    Build a Streaming Markdown Code Fence Parser

    Tests streaming string processing, finite state machine design, and edge-case handling for incrementally received Markdown code fences.

    Software Engineering FundamentalsTechnical ScreenStreamingFinite State MachineParsing
  • CursorMediumSoftware Engineer
    Hash a Repository with a Merkle Tree and Find Changed Files

    Hash a repository with canonical Merkle nodes, compare changed subtrees, report file changes, and account for symlinks, cached hashes, and snapshot limits.

    Software Engineering FundamentalsTechnical Screen
  • CursorMediumSoftware Engineer
    Implement Deterministic Merkle Hashing for a Repository

    Implement an incremental, deterministic Merkle tree for a virtual repository file system with stable serialization, child ordering, and ancestor cache invalidation.

    Software Engineering FundamentalsTechnical ScreenMerkle TreeData StructuresFile Systems
  • CursorMediumSoftware Engineer
    Implement a Merkle Tree for Repository Contents

    Implement a Merkle tree to model repository file systems and efficiently compute differences between two repository states using subtree hashes.

    Software Engineering FundamentalsTechnical ScreenMerkle TreeTreesHashing
  • CursorMediumSoftware Engineer
    Implement and Explain a Merkle Tree

    Tests understanding of cryptographic hash trees (Merkle trees), including tree construction, odd-node handling, proof generation, and verification.

    Software Engineering FundamentalsTechnical Screencryptographydata-structurestrees
  • DatabricksMediumSoftware Engineer
    Design a Customer Revenue Index with Referrals and Threshold Queries

    Tests designing an in-memory index that tracks direct and referral revenue across customers and efficiently supports threshold-bounded minimum revenue queries using balanced search trees.

    Software Engineering FundamentalsTechnical ScreenDesignBalanced BSTHash Table
  • DatadogMediumSoftware Engineer
    Implement DeleteTree With Limited Filesystem APIs

    Implement a robust recursive tree-deletion algorithm using a restricted set of filesystem primitives. This question tests post-order traversal, managing call-stack and heap memory across deep and wide directory structures, and handling edge cases cleanly.

    Software Engineering FundamentalsTechnical Screentreestackdfs
  • DatologyaiHardSoftware Engineer
    Cursor-Based Text Editor: Typing, Backspace, and Four-Way Cursor Movement

    Implement a TextEditor class with a single cursor that supports typing a character, backspace, and rendering the text with a | at the cursor, then extend it with left/right and up/down cursor movement. Tests choice of representation, per-operation cost, and boundary handling across lines of different lengths.

    Software Engineering FundamentalsTechnical Screen
  • DatologyaiEasySoftware Engineer
    Text Editor with a Cursor: Typing, Backspace, and Four-Way Cursor Movement

    Implement a text editor class that types characters at a cursor, deletes with backspace, and renders the text with a bar marking the cursor. Follow-ups add left/right and then up/down cursor movement, testing the choice of data structure for cheap edits, boundary handling, and line-aware navigation.

    Software Engineering FundamentalsTechnical Screen
  • DatologyaiEasySoftware Engineer
    Word Count and Multiset Intersect Using Only a Mock Spark RDD API

    Given a minimal mock of a Spark RDD with only flatMap, groupByKey, union and collect, implement a word count function and a duplicate-preserving intersect of two RDDs. Tests composing transformations without map or reduce, tracking which input an item came from, and reasoning about the cost of grouping.

    Software Engineering FundamentalsTechnical Screen
  • DecagonHardSoftware Engineer
    Add Nested Begin, Commit, and Abort Semantics to a Shopping Cart

    Design and implement an in-memory shopping cart that supports nested transactions via begin, commit, and abort operations with proper scope isolation.

    Software Engineering FundamentalsTechnical ScreenTransactionsData StructuresDesign Patterns
  • DecagonMediumSoftware Engineer
    Deliver Messages in Fixed Batches with Per-Message Retry Delays

    Send a list of outbound messages to a provider that only accepts five per call, then retry failed messages only after the provider's own per-message cooldown has elapsed. Tests chunking, scheduling retries by readiness time instead of busy-waiting, and handling partial batch failures cleanly.

    Software Engineering FundamentalsTechnical Screenschedulingretriesqueues
  • DecagonHardSoftware Engineer
    Design a Space-Efficient Versioned Recipe Shopping Cart

    Design an in-memory versioned shopping cart that aggregates recipe ingredients for bulk discounts, supports atomic mutations, and allows rolling back and checking out earlier cart snapshots efficiently.

    Software Engineering FundamentalsTechnical Screendata-structuresdesignevent-sourcing
  • DecagonMediumSoftware Engineer
    Send Requests in Batches of Five and Retry Failures After a Per-Request Delay

    A practical coding exercise: send a list of requests to an API that accepts at most five per call, then retry failed requests only after the per-request delay returned by the API. It tests batching, retry scheduling with timestamps, waiting without busy loops and clean handling of partial failures.

    Software Engineering FundamentalsTechnical Screen