Katkat

practice a little every day, paws crossed ♡

Software Engineering Fundamentals 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 451–480 of 1208 results

  • Gimlet LabsMediumMember of Technical Staff, ML Systems
    Design CPU-Cycle Window Alignment for Misaligned Time Series

    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.

    Software Engineering FundamentalsOnsite
  • GleanMediumMachine Learning Engineer
    AI-Paired Rate-Limited Wikipedia Crawler That Prioritizes Unseen Title Initials

    Pair 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.

    Software Engineering FundamentalsOnsite
  • GleanMediumFrontend Engineer
    Build a React Social Feed with Upvote/Downvote Re-Sorting and Pinned Posts

    Build 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.

    Software Engineering FundamentalsOnsite
  • GleanMediumSoftware Engineer
    Design a Test Strategy for a System That Counts the Leaves on a Large Tree

    An 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.

    Software Engineering FundamentalsOnsite
  • GleanMediumSoftware Engineer
    How Would You Test a System That Counts the Leaves on a Tree?

    This 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.

    Software Engineering FundamentalsTechnical ScreenSoftware TestingQA StrategyComputer Vision
  • GleanMediumSoftware Engineer
    Implement 2048 Board Tilts in Four Directions with Merging and Game-Over Detection

    Implement 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.

    Software Engineering FundamentalsOnsite
  • GleanMediumSoftware Engineer
    Implement 2048-Style Tile Slides and Merges for All Four Board Directions

    A 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.

    Software Engineering FundamentalsTechnical Screen
  • GleanMediumFrontend Engineer
    Implement Two-Player Connect Four on a 6x7 Board with Win and Draw Detection

    Implement 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.

    Software Engineering FundamentalsOnsite
  • GleanMediumSoftware Engineer
    Implement a Byte-Pair Encoding Tokenizer: Threshold Training, Encode and Decode

    Implement 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.

    Software Engineering FundamentalsOnsite
  • GleanMediumSoftware Engineer
    Robust Selenium Code to Extract Text from Two Elements

    This problem tests your ability to write robust browser automation code using Selenium, focusing on handling dynamic content, timing issues, and basic error handling.

    Software Engineering FundamentalsTechnical ScreenSeleniumTest AutomationPython
  • GleanMediumSoftware Engineer
    Serve Top-k Prefix Suggestions Filtered by Department Within a Tight Memory Budget

    Return 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.

    Software Engineering FundamentalsOnsite
  • GofundmeEasySoftware Engineer
    Explain React and Firebase data interaction

    This 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.

    Software Engineering FundamentalsTechnical ScreenReactFirebaseFrontend
  • Goldman SachsEasySoftware Engineer
    Cache Trade-offs and a Constant-Time Least-Recently-Used Cache

    Tests 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.

    Software Engineering FundamentalsOnsitelru-cachehash-tabledoubly-linked-list
  • Goldman SachsMediumSoftware Engineer
    Highest Average Student Score: Out-of-Memory Input, Overflow and Thread Safety in Java

    Compute 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.

    Software Engineering FundamentalsOnsite
  • Goldman SachsMediumSoftware Engineer
    Overlapping Meetings and Minimum Rooms: No Sweep Line, No Library Sort, Streams, Logs

    Starting 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.

    Software Engineering FundamentalsOnsite
  • GoogleMediumSoftware Engineer
    Build a ChatOps Command Dispatcher That Matches Named Arguments

    Implement 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.

    Software Engineering FundamentalsTechnical Screentriedata-structuresapi-design
  • GoogleMediumSoftware Engineer
    Build a Custom CompletableFuture: Async Primitive and Parallel Array Processing

    Implement a thread-safe asynchronous promise/future primitive with chaining and an aggregate fan-in barrier (`all_of`) for parallel processing.

    Software Engineering FundamentalsTechnical Screenconcurrencymultithreadingdesign-pattern
  • GoogleMediumSoftware Engineer
    Code Review of a Go Token Bucket Rate Limiter Used as HTTP Middleware

    A 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.

    Software Engineering FundamentalsOnsite
  • GoogleMediumSoftware Engineer
    Compute Entity Size and Validate a Hierarchical File System

    Implement 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.

    Software Engineering FundamentalsOnsiteGraphTreeDFS/BFS
  • GoogleMediumSoftware Engineer
    Deduplicate and Order Batch and Streaming Logs

    Design 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.

    Software Engineering FundamentalsOnsiteStreamingDeduplicationData Structures
  • GoogleMediumSoftware Engineer
    Design Extensible Spreadsheet Aggregation APIs

    Design reusable spreadsheet sum, minimum, and maximum APIs with operator state, shared cell evaluation, error policies, and extensible aggregation.

    Software Engineering FundamentalsOther
  • GoogleMediumSoftware Engineer
    Design Interval Membership Queries with Linear, Logarithmic, and Constant-Time Options

    Design interval membership with linear scans, predecessor binary search, or bounded-universe direct addressing, comparing insertion, memory, adjacency, inclusive boundaries, overflow safety, and workload fit.

    Software Engineering FundamentalsTechnical Screen
  • GoogleMediumSoftware Engineer
    Design a Bookshelf with Book CRUD and a Stable Bookmark

    Tests object-oriented design, separation of entity identity from physical layout, reference integrity during deletions, and optimistic concurrency for content updates.

    Software Engineering FundamentalsOnsiteObject-Oriented DesignData StructuresConcurrency
  • GoogleMediumSoftware Engineer
    Design a Dormitory Room-Assignment System (OOD)

    This 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.

    Software Engineering FundamentalsOnsite
  • GoogleEasySoftware Engineer
    Design a Variable Store With Nested Reference Substitution and Cycle Detection

    Design 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.

    Software Engineering FundamentalsOnsite
  • GoogleMediumSoftware Engineer
    Design a customer support agent dispatcher that handles mid-request breaks

    Design 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.

    Software Engineering FundamentalsOnsite
  • GoogleMediumSoftware Engineer
    Design a multi-timer using single underlying timer

    This 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.

    Software Engineering FundamentalsOnline Assessment
  • GoogleEasySoftware Engineer
    Design a waitlist manager

    This question tests your ability to design a waitlist system using efficient data structures to handle insertions, removals, and lookup operations.

    Software Engineering FundamentalsOnsiteData StructuresHash MapLinked List
  • GoogleMediumSoftware Engineer
    Design a waitlist system with top/bottom K

    This problem tests your ability to design a dynamic waitlist using efficient data structures to support logarithmic time complexity for insertions, deletions, and ranking operations.

    Software Engineering FundamentalsTechnical ScreenData StructuresDesignComplexity Analysis
  • GoogleMediumSoftware Engineer
    Design an Employee Coverage Timeline

    This problem tests your ability to handle overlapping intervals and state tracking using a sweep-line algorithm combined with a mapping structure.

    Software Engineering FundamentalsOnsiteSweep-lineIntervalsAlgorithms