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 451–480 of 1208 results
Define and implement a precise windowing contract for two misaligned CPU-cycle time series using piecewise-linear interpolation, monotone scanning, explicit boundary behavior, and optional interval integration.
Gimlet LabsMember of Technical Staff, ML SystemsSoftware Engineering FundamentalsOnsitePair with an AI coding assistant to build a rate-limited Wikipedia crawler that first crawls pages whose title initial has not yet been covered, then crawls randomly once all 26 letters are done. Tests frontier design, link normalization, rate limiting and disciplined use of AI-generated code.
GleanMachine Learning EngineerSoftware Engineering FundamentalsOnsiteBuild a React social feed where upvotes and downvotes re-sort posts by score in descending order and pinned posts stay at the top. Tests state design and immutable updates, correct vote-toggle arithmetic, deterministic ordering, accessibility and optimistic persistence with rollback.
GleanFrontend EngineerSoftware Engineering FundamentalsOnsiteAn open-ended testing scenario: design a test strategy for a system that counts the leaves on a large tree. Tests clarifying an ambiguous system, finding a test oracle, functional and boundary cases, scale and robustness testing, and setting release criteria for counts that may be estimates.
GleanSoftware EngineerSoftware Engineering FundamentalsOnsiteThis problem evaluates your ability to design a comprehensive testing strategy for an ambiguous, real-world system where an exact 'ground truth' is difficult to obtain.
GleanSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenImplement the move logic of the 2048 sliding-tile game on a 4x4 board: slide and merge tiles for left, right, up and down swipes so each tile merges at most once, then decide when no swipe can change the board. Tests edge-case precision, code reuse across directions and a correct game-over rule.
GleanSoftware EngineerSoftware Engineering FundamentalsOnsiteA software engineer phone-screen coding exercise: implement the slide-and-merge move of a 2048-style tile board, first to the left with working tests, then for all four directions. It tests careful array manipulation, the single-merge rule, and the trade-off between rotating the board and remapping row and column indices.
GleanSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenImplement two-player Connect Four on a 6x7 board: drop discs into columns, detect four in a row in every direction, handle full columns and draws, and render a playable interface. Tests clean separation of game logic from UI, efficient win checks from the last move and careful edge handling.
GleanFrontend EngineerSoftware Engineering FundamentalsOnsiteImplement a byte-pair encoding tokenizer with train, encode and decode, where training repeatedly merges the most frequent adjacent token pair whose count reaches a threshold, breaking ties lexicographically. Tests precise reading of the merge rules, round-trip correctness and the complexity of training on long text.
GleanSoftware EngineerSoftware Engineering FundamentalsOnsiteThis problem tests your ability to write robust browser automation code using Selenium, focusing on handling dynamic content, timing issues, and basic error handling.
GleanSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenReturn the top k suggestions whose ngram starts with a query and whose department matches the user, from a static list that already fills half of the server's memory. Tests prefix indexing, top-k extraction without scanning all matches, and explicit memory accounting against latency.
GleanSoftware EngineerSoftware Engineering FundamentalsOnsiteThis question tests your understanding of data synchronization patterns between a React frontend and Firebase, specifically focusing on the trade-offs between real-time listeners and manual data fetching.
GofundmeSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenTests understanding of caching trade-offs (latency, freshness, memory overhead) and the implementation of a fixed-capacity Least Recently Used (LRU) cache supporting constant-time operations.
Goldman SachsSoftware EngineerSoftware Engineering FundamentalsOnsiteCompute the highest average score among students from name and score records, then extend the code for data larger than memory, negative scores, integer overflow and multithreaded processing. The question also covers what atomic operations are in Java and how synchronized differs from ReentrantLock.
Goldman SachsSoftware EngineerSoftware Engineering FundamentalsOnsiteStarting from a list of meeting time intervals, decide whether one person can attend them all, then find the minimum number of rooms without a sweep line, order the meetings without a library sort, handle a stream of meetings, and explain how a Kafka-style append-only log broker works. It tests heaps, sorting, streaming and log storage.
Goldman SachsSoftware EngineerSoftware Engineering FundamentalsOnsiteImplement a command dispatcher for a chat ops bot that resolves slash-separated commands with named arguments to a registered handler. Tests trie-based matching, precedence between literal and parameter segments, and handling of ambiguous or dead-end routes.
GoogleSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenImplement a thread-safe asynchronous promise/future primitive with chaining and an aggregate fan-in barrier (`all_of`) for parallel processing.
GoogleSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenA code review exercise built around a token bucket rate limiter written in Go and used as HTTP middleware. It tests finding the defects that matter in a production web service, deciding what blocks a merge, writing actionable review comments, and proposing a corrected limiter with tests that control time instead of sleeping.
GoogleSoftware EngineerSoftware Engineering FundamentalsOnsiteImplement methods to compute the recursive byte size of an entity in a hierarchical file system and validate the structural integrity of the file system graph.
GoogleSoftware EngineerSoftware Engineering FundamentalsOnsiteDesign both a batch algorithm and a streaming processor to deduplicate and chronologically order log records under different resolution policies, accounting for out-of-order delivery, late data, and bounded memory.
GoogleSoftware EngineerSoftware Engineering FundamentalsOnsiteDesign reusable spreadsheet sum, minimum, and maximum APIs with operator state, shared cell evaluation, error policies, and extensible aggregation.
GoogleSoftware EngineerSoftware Engineering FundamentalsOtherDesign interval membership with linear scans, predecessor binary search, or bounded-universe direct addressing, comparing insertion, memory, adjacency, inclusive boundaries, overflow safety, and workload fit.
GoogleSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenTests object-oriented design, separation of entity identity from physical layout, reference integrity during deletions, and optimistic concurrency for content updates.
GoogleSoftware EngineerSoftware Engineering FundamentalsOnsiteThis question evaluates object-oriented design skills by requiring a class decomposition of a room-assignment system, testing entity modeling, responsibility separation, and capacity-safe data structures. It is commonly used in software engineering interviews to assess practical OOD fluency and the ability to handle edge cases like demand exceeding supply.
GoogleSoftware EngineerSoftware Engineering FundamentalsOnsiteDesign a class that stores named variables and substitutes their values into text, where a stored value can reference other variables that must be expanded at any depth. It tests reference parsing, depth-first expansion with reuse of finished results, cycle detection with a clear error, and policies for undefined variables.
GoogleSoftware EngineerSoftware Engineering FundamentalsOnsiteDesign and implement the core of a dispatcher that assigns waiting customers to available support agents, then extend it for an agent who is interrupted mid-request to take a break. Tests state modeling, queue and data structure choices, fair re-queuing, stale events and per-event complexity.
GoogleSoftware EngineerSoftware Engineering FundamentalsOnsiteThis question evaluates a candidate's ability to implement timer scheduling, resource multiplexing, and concurrency control using constrained system primitives, testing understanding of timers, event handling, data structures, and correctness under race conditions.
GoogleSoftware EngineerSoftware Engineering FundamentalsOnline AssessmentThis question tests your ability to design a waitlist system using efficient data structures to handle insertions, removals, and lookup operations.
GoogleSoftware EngineerSoftware Engineering FundamentalsOnsiteThis problem tests your ability to design a dynamic waitlist using efficient data structures to support logarithmic time complexity for insertions, deletions, and ranking operations.
GoogleSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis problem tests your ability to handle overlapping intervals and state tracking using a sweep-line algorithm combined with a mapping structure.
GoogleSoftware EngineerSoftware Engineering FundamentalsOnsite