Topic
Software Engineering Fundamentals interview questions
1208 Software Engineering Fundamentals questions from 253 companies, with hints, runnable code and solution walkthroughs.
123 easy887 medium198 hard
Software Engineering Fundamentals interview questions by the numbers
Last updated
Katkat has 1,208 Software Engineering Fundamentals interview questions from 253 companies; the most come from OpenAI (5%), Stripe (4%) and Amazon (3%). By difficulty: 10% easy, 73% medium and 16% hard. The most common round is Technical Screen (52%). Frequent concepts include Data Structures, Concurrency, System Design and Algorithms.
Companies (253)
Difficulty
- Easy10% · 123
- Medium73% · 887
- Hard16% · 198
Interview rounds
- Technical Screen52% · 625
- Onsite37% · 448
- Online Assessment8% · 96
- HR Screen2% · 28
- Other1% · 11
Roles
- Software Engineer85% · 1026
- Frontend Engineer4% · 51
- Machine Learning Engineer2% · 30
- Backend Engineer2% · 25
- Data Scientist1% · 17
Frequent concepts
- Data Structures8% · 97
- Concurrency8% · 96
- System Design8% · 93
- Algorithms3% · 42
- API Design3% · 42
- Object-Oriented Design3% · 35
Most mentioned in interview experiences
- 1.Plant Infection Grid Simulation: Days to Stabilize, Immune Plants, Expiring Immunity5 reports
- 2.Bootstrap Service: Aggregate Downstream Services and Return the Right HTTP Status4 reports
- 3.Crawl an HTTP-served maze to its exit with 503 retries, dead ends and cycles4 reports
- 4.Find the Exit of an HTTP URL Maze Despite Flaky 503s and Bad JSON4 reports
- 5.In-Memory Workspace Credit System With Transfers, Top-K and Scheduled Transfers4 reports
- 6.Virtual Card Case Study: Trade-offs, Card Number Rule Checks, and Debugging a Filter4 reports
- 7.Virtual Card Numbers Case: Trade-offs, Payment Validation Rules, Debugging4 reports
- 8.Workspace Credit Ledger: Transfers, Top-K, Scheduled Transfers, Merges, Balance History4 reports
- 9.Build a UVM testbench: driver, monitor, scoreboard and coverage-driven closure3 reports
- 10.Debug a Layered Book Search Service Against Five Search Rules3 reports
Counted from 425 candidate interview experiences on Katkat. How we collect and count
Showing 991–1020 of 1208 results
Implement a class that stores shirt sales records and builds pivot tables summing shirts sold by any row field and column field, then extend it with running totals and grand totals along both axes. It tests object-oriented structure, aggregation with dictionaries, deterministic layout, and consistency between cells and totals.
SigmacomputingSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis question tests a software engineer's depth in web networking fundamentals, covering real-time communication protocols and the OSI and TCP/IP models. It assesses practical knowledge of WebSocket, SSE, and long polling trade-offs, as well as understanding of how modern transport protocols like QUIC differ from TCP in multiplexing, handshake latency, and connection migration.
SnapchatSoftware EngineerSoftware Engineering FundamentalsOnsiteDesign an `O(1)` LRU cache and extend it with clear thread-safety semantics. The solution covers hash-map and doubly linked-list invariants, boundary cases, linearization points, single-lock correctness, sharding trade-offs, eviction callbacks, and concurrent testing.
SnapchatSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis problem tests iterative directory traversal techniques, efficient file hashing strategies to handle large data, and the ability to manage edge cases like file system inconsistencies or symbolic links.
SnapchatSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis question tests the ability to build a responsive, performance-optimized grid interface in iOS using modern frameworks like SwiftUI, focusing on layout constraints, state management, and navigation flow.
SnapchatSoftware EngineerSoftware Engineering FundamentalsOnsiteDesign and implement an in-memory component that assigns each record of a data stream to an existing or a new cluster and returns the maximum value of every cluster. Follow-ups probe read and write optimizations, concurrent ingestion, and how to report each cluster's median.
SnapchatSoftware EngineerSoftware Engineering FundamentalsOnsiteDesign an in-memory key-value store supporting point-in-time snapshots, sparse version histories, binary-search historical reads, tombstones, and write coalescing.
SnorkelSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenDesign a throne inheritance system with an uninitialized monarch, handling dynamic root establishment, pre-order succession, and edge-case validation.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenBuild an in-memory rate limiting service in Python where clients belong to tiers such as free, pro and enterprise, tier limits change at runtime without a restart, and clients with missing or invalid tiers fall back to a global default policy. Follow-ups probe algorithm trade-offs, deterministic tests for refill timing, and a distributed design.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenDesign and implement a performant React Kanban board in TypeScript with normalized state and accessible arrow controls for shifting tasks across ordered columns at scale.
SnowflakeFrontend EngineerSoftware Engineering FundamentalsTechnical ScreenThis problem tests tree traversal techniques and recursive state management by requiring the pruning of an N-ary tree nodes based on a depth constraint while maintaining valid structural connectivity.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis problem tests your ability to design a distributed protocol that ensures eventual consistency and message idempotency in a tree-based network without global synchronization.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenEach node of a tree is a separate process that can only send asynchronous messages and block on receive; write the logic that lets the root learn how many nodes exist. Follow-ups cover lost and duplicated messages, retries and idempotency, and how to structure a result that may be incomplete.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenReturn a deep copy of a singly linked list in which every node also has a random pointer to any node or to nothing, so that the copy shares no node with the original. It tests mapping original nodes to copies, pointer wiring and constant-space alternatives.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis problem tests your ability to design a thread-safe task scheduler that handles duplicate task IDs while ensuring each unique task is executed exactly once based on priority and submission time.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsOnsiteThis problem tests the ability to design a thread-safe, flexible rate-limiting system that handles multiple constraints, atomic permit management, and graceful error handling.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenDesign and implement a rate limiter in an AI-assisted coding round: choose and defend an algorithm against its alternatives, direct an AI assistant to write the code, review it and test it. It tests rate-limiting algorithm trade-offs, concurrency, time handling and critical review of generated code.
SnowflakeMachine Learning EngineerSoftware Engineering FundamentalsOnsiteNodes of a directed acyclic graph carry allow and deny permission lists that are inherited along its edges; compute every node's final permissions. It tests topological processing, settling an unstated conflict rule between allow and deny, cycle detection and incremental updates.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis question assesses the evolution of React component patterns, specifically focusing on the transition from class-based lifecycles to functional hooks, and the management of stateful side effects.
SnowflakeFrontend EngineerSoftware Engineering FundamentalsTechnical ScreenFind the fewest link clicks between two wiki pages when each page's links come from a slow fetch call, returning the path. Follow-ups cover parallel level-by-level search, bidirectional search with a correct stopping rule, and caching fetched link lists across searches.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenImplement a breadth-first search to find the shortest URL click path between two pages using a fallible link-fetching API with retry and tie-breaking logic.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis problem tests your ability to implement an efficient sliding-window algorithm and design a robust testing strategy for a stateful component.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsOnsiteBuild an in-memory key-value store with get, set and delete plus nested begin, commit and rollback, aiming for constant-time operations. Follow-ups extend it to concurrent threads, keys with a time to live, and reads of a key's value at an earlier point in time.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenDesign a collection of integers that allows duplicates and supports insert, remove and a random pick weighted by occurrence count, each in average constant time. Tests array and hash map bookkeeping, careful handling of moved elements during removal, and how to test randomized behavior.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsOnsiteWrite a web crawler that visits every page reachable from a start URL through a slow link-fetching API, first with BFS or DFS, then with multiple threads, then with retries when the API fails. It tests visited-set safety, termination detection, backoff and failure reporting.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenImplement a rate limiter using a token bucket or sliding window, then support client tiers whose limits change while the service runs, several rules checked on one request, and deterministic tests with a mock clock. It tests algorithm choice, safe configuration swaps and thread-safe all-or-nothing checks.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenA two-part coding question that asks you to pack a list of arbitrary strings, which may contain any character, into a single string and rebuild the identical list from that string alone. It tests unambiguous format design, empty-string edge cases, linear-time parsing and a reasoned comparison of alternative encoding schemes.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsOnsiteBuild a key-value store that keeps every timestamped value of a key and returns the value in effect at a given time, then a counter that answers how many events occurred in a time window. It tests binary search over histories, window semantics and memory bounds.
SnowflakeSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis question evaluates understanding of Java runtime memory management (generational garbage collection, marking, compaction), software design patterns (Singleton), and object-oriented design and SOLID principles, testing competencies in performance reasoning, concurrency and thread-safety considerations, design trade-offs, and maintainability.
SoFiSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenImplement a thread-safe in-memory payment queue supporting atomic message consumption, visibility timeouts, receipt-handle validation to prevent stale ACKs, and idempotent submissions.
SocureSoftware EngineerSoftware Engineering FundamentalsTechnical Screen