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 EngineerJob 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 EngineerSearch 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 EngineerImplement 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 EngineerReview 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 EngineerDesign 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 EngineerDesign 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 EngineerBuild 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 EngineerBuild 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 EngineerHash 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 EngineerImplement 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 EngineerImplement 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 EngineerImplement 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 EngineerAdd 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 EngineerBuild 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 EngineerDesign 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 EngineerDesign 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 EngineerDesign 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 EngineerDesign 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 EngineerDesign 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 EngineerDesign 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 EngineerExplain 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 EngineerImplement 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 EngineerImplement 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 EngineerInteger 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 EngineerImplement 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 EngineerCursor-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 EngineerText 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 EngineerWord 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 EngineerAdd 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 EngineerDeliver 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