Katkat

Topic

Software Engineering Fundamentals interview questions

1208 Software Engineering Fundamentals questions from 253 companies, with hints, runnable code and solution walkthroughs.

Questions1208

123 easy887 medium198 hard

Your progress0/1208

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

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 Screen
  • This 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 FundamentalsOnsite
  • Design 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 Screen
  • This 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 Screen
  • This 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 FundamentalsOnsite
  • Design 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 FundamentalsOnsite
  • Design 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 Screen
  • Design a throne inheritance system with an uninitialized monarch, handling dynamic root establishment, pre-order succession, and edge-case validation.

    SnowflakeSoftware EngineerSoftware Engineering FundamentalsTechnical Screen
  • Build 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 Screen
  • Design 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 Screen
  • This 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 Screen
  • This 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 Screen
  • Each 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 Screen
  • Return 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 Screen
  • This 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 FundamentalsOnsite
  • This 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 Screen
  • Design 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 FundamentalsOnsite
  • Nodes 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 Screen
  • This 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 Screen
  • Find 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 Screen
  • Implement 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 Screen
  • This problem tests your ability to implement an efficient sliding-window algorithm and design a robust testing strategy for a stateful component.

    SnowflakeSoftware EngineerSoftware Engineering FundamentalsOnsite
  • Build 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 Screen
  • Design 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 FundamentalsOnsite
  • Write 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 Screen
  • Implement 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 Screen
  • A 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 FundamentalsOnsite
  • Build 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 Screen
  • This 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 Screen
  • Implement 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

More topics