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 301–330 of 1026 results

  • 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
  • CrestaMediumSoftware Engineer
    Search a Directory Tree for a File and Return Its Absolute Path in Python

    Write a Python function that searches a directory and all of its subdirectories for a file matching a requirement and returns the file's absolute path. It tests practical use of os and pathlib, deterministic handling of multiple or missing matches, relative roots, symbolic links and unreadable directories.

    Software Engineering FundamentalsOnline Assessment
  • CrowdstrikeMediumSoftware Engineer
    Implement an In-Memory Key-Value Cache with Expiry, Then Sketch a Redis-Like Server

    Implement an in-memory key-value cache in the spirit of Redis, with get, set, delete and per-key expiry, then briefly discuss how a Redis-like server is built and where caches fit in a system. It tests data structure choices, expiry and eviction logic, thread safety, and practical knowledge of caching patterns.

    Software Engineering FundamentalsOnsite
  • CrowdstrikeMediumSoftware Engineer
    Review a Sample Python Function Aloud and Label Every Finding by Severity

    Review a short hypothetical Python function that builds a user profile from a database query and a billing-service call, narrating your reasoning aloud. The exercise tests how you read unfamiliar code and whether every comment is clearly labeled as must-fix, could-improve or a personal preference.

    Software Engineering FundamentalsOnsite
  • 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
    Add Sliding-Window Get and Put Activity Metrics to a Key-Value Store

    Design and implement an in-memory key-value store that tracks read and write throughput (operations per second) over configurable sliding windows.

    Software Engineering FundamentalsOnsitedata-structuressliding-windowsystem-design
  • DatabricksMediumSoftware Engineer
    Build a Durable Key-Value Cache

    This question tests the ability to design a crash-recoverable key-value store by implementing a write-ahead log (WAL) to ensure data durability and system integrity after an unexpected failure.

    Software Engineering FundamentalsOnsiteSystems DesignDurabilityLogging
  • DatabricksHardSoftware Engineer
    Design Snapshot Set Iteration and Clarify Durable Writes

    Design a memory-efficient snapshotting set supporting concurrent mutations and isolated iteration, and define the reliability and persistence contracts required for durable writes.

    Software Engineering FundamentalsOnsitemvccconcurrencystorage-engines
  • DatabricksHardSoftware Engineer
    Design a Cache with Hit Counts

    This question tests the ability to design a thread-safe, high-performance cache that maintains frequency metadata alongside data, requiring an understanding of efficient data structures and concurrency control.

    Software Engineering FundamentalsOnsiteConcurrencyData StructuresHash Maps
  • 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
  • DatabricksHardSoftware Engineer
    Design a Key-Value Store with Hit Counting

    Design a concurrent, in-memory key-value store that tracks read-access frequency using a sliding-window hit counter per key while keeping memory footprint bounded.

    Software Engineering FundamentalsOnsiteconcurrencysliding-windowsystem-design
  • DatabricksHardSoftware Engineer
    Design a Write-Ahead Log Writer with Batch Writes

    Design and implement a concurrent write-ahead log (WAL) engine featuring group commit, monotonic sequence assignment, torn-tail crash recovery, and explicit durability promises.

    Software Engineering FundamentalsOnsitestorage-enginesconcurrencysystems-programming
  • DatabricksMediumSoftware Engineer
    Design a multithreaded event logger

    This problem tests your ability to design a thread-safe, high-throughput logging system that balances memory efficiency with I/O performance under concurrent load.

    Software Engineering FundamentalsOnsiteConcurrencyMultithreadingDesign Patterns
  • DatabricksMediumSoftware Engineer
    Explain storing files to disk with concurrency

    This question tests your understanding of OS-level file I/O operations, the risks of concurrent writes to the same file descriptor, and how to implement robust thread-safe mechanisms to maintain file integrity.

    Software Engineering FundamentalsOnsiteConcurrencyFile I/OOS Fundamentals
  • DatabricksMediumSoftware Engineer
    Implement Column Pruning and Filter Pushdown on a Query Plan Tree

    Given a SQL query represented as a tree of scan, filter, project and join nodes, write runnable rewrites that prune unused columns from every scan and push filter conditions down toward the tables. Tests query-optimizer fundamentals, recursive tree rewriting and preserving query results.

    Software Engineering FundamentalsOnsite
  • DatabricksMediumSoftware Engineer
    Implement a Concurrent Buffered File Logger

    Design and implement a thread-safe, buffered logger that aggregates concurrent writes across multiple threads and flushes them to disk efficiently with documented ordering guarantees.

    Software Engineering FundamentalsOnsiteConcurrencyMultithreadingObject-Oriented Design
  • DatabricksMediumSoftware Engineer
    Integer Set with O(1) Snapshot Iterators Unaffected by Later Changes

    Design a set of integers with amortized constant-time add and remove whose iterators capture the exact contents at creation time without copying, stay independent of later changes and of each other, and fit in linear total space. Also compares a shared history log with per-key logs.

    Software Engineering FundamentalsOnsite
  • 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