Katkat

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 541–570 of 1026 results

  • LyftMediumSoftware Engineer
    Wrapper Over a Paginated Page API That Fetches the Next N Words

    A coding question that wraps an external paginated API, where each page returns a variable number of words, behind a fetch(n) method that returns the next n words in order. It tests handling words left over between calls, requests that span several or empty pages, lazy fetching, the end of the content, and API failures.

    Software Engineering FundamentalsOnsite
  • MathWorksMediumSoftware Engineer
    Compare Core Networking and Language Runtime Concepts

    Compare pointer ownership and storage duration, HTTP with HTTPS, and TCP with UDP using concrete technical examples. Strong responses separate guarantees from common implementations, connect concepts to production failures, and avoid simplistic claims about memory or network speed.

    Software Engineering FundamentalsOnsite
  • MercorMediumSoftware Engineer
    Charge-Then-Save: Making a Checkout Handler Safe Under Retries

    Review a ticket-checkout handler that bills a card through a remote gateway and then saves an order row, explain every way it breaks when calls fail or are retried, and redesign it. Tests reasoning about partial failure, idempotency, and reconciliation.

    Software Engineering FundamentalsTechnical Screenidempotencydistributed-systemspayments
  • MercorMediumSoftware Engineer
    Code Review: A Ride Fare Method That Charges a Card Then Logs the Trip

    Review a Java method that charges a rider's card through an external processor and then writes a trip record, and explain what goes wrong if the caller fails mid-call and how to fix it.

    Software Engineering FundamentalsTechnical Screencode-reviewidempotencydistributed-systems
  • MercorEasySoftware Engineer
    Code Review: Find the Problems in a Python Dict-Based Memoization Cache

    A Python code review question about a function that memoizes an expensive computation in a module-level dictionary. It tests whether a candidate can find correctness, memory, concurrency and key-equality problems in simple caching code and propose fixes with clear trade-offs.

    Software Engineering FundamentalsTechnical Screen
  • MercorMediumSoftware Engineer
    Code Review: Improve a Java Method That Builds a CSV String

    A Java code-reading question: review a short method that concatenates a list of rows into a CSV string and propose improvements. It tests knowledge of string-building performance, separator and escaping rules for CSV, null handling, streaming output for large exports, and risks when files are opened in spreadsheets.

    Software Engineering FundamentalsTechnical Screen
  • MercorMediumSoftware Engineer
    Code Review: Partial Failure in a Java Payment Method That Charges Then Records

    A Java code-reading question about a payment method that charges an external provider and then inserts a database record, focused on what happens when the client fails in the middle of the call. It tests reasoning about partial failures, retries, idempotency keys, payment states, and reconciliation with the provider.

    Software Engineering FundamentalsTechnical Screen
  • MercorMediumSoftware Engineer
    Code Review: Thread Safety of a Python Compute-and-Cache Function

    Review a Python function that checks a dictionary cache, runs an expensive computation on a miss, and stores the result, assuming concurrent callers. It probes thread safety under simultaneous misses, making the computation run once per input, where to place a lock without serializing cache hits, and how Python dictionaries behave under concurrent reads and writes.

    Software Engineering FundamentalsTechnical Screen
  • MercorHardSoftware Engineer
    Compare Merge Sort with Factorial and Randomized Inefficient Sorts

    Tests deep understanding of sorting algorithms, contrasting optimal divide-and-conquer strategies (Merge Sort and its adaptive variants) against factorial and randomized paradigms (Permutation Sort and Bogo Sort) across worst-case and expected complexity bounds.

    Software Engineering FundamentalsTechnical ScreenDivide and ConquerSortingComplexity Analysis
  • MercorMediumSoftware Engineer
    Compare processes and threads in Linux and Python

    This question evaluates understanding of operating-system level concurrency versus language-level concurrency, specifically distinctions between processes and threads on Linux, the Global Interpreter Lock in Python, and trade-offs between Python threading and multiprocessing for performance.

    Software Engineering FundamentalsTechnical Screen
  • MercorMediumSoftware Engineer
    Debug a Java CSV Export Function for Output and Performance Bugs

    A debugging exercise on a small Java function that converts rows of string fields into CSV text for import by another system. You find what is wrong with its output and why it slows down sharply on large exports, then fix it. It tests string handling, the cost of building strings in loops, and edge-case tests.

    Software Engineering FundamentalsTechnical Screen
  • MercorEasySoftware Engineer
    Design a Deliberately Inefficient Sorting Algorithm and Analyze Its Complexity

    An algorithms discussion question that asks for a deliberately inefficient but correct sorting algorithm and a careful analysis of its running time. It tests complexity reasoning about extremely fast-growing costs, worst-case versus expected time, and how such a sort compares with the lower bound for comparison sorting.

    Software Engineering FundamentalsTechnical Screen
  • MercorMediumSoftware Engineer
    Design the Worst Correct Sorting Algorithm and Analyze Its Complexity

    Asks you to propose the worst sorting algorithm that is still correct, explain how it works, argue that it always terminates with sorted output, and analyze its best-case and worst-case time and space. It tests counting arrangements, reasoning about factorial growth and stating what makes such a question well defined.

    Software Engineering FundamentalsTechnical Screen
  • MercorMediumSoftware Engineer
    Explain what happens when opening a website

    This question evaluates understanding of the end-to-end web request lifecycle, including DNS resolution, TCP/TLS handshakes, HTTP(S) exchanges, CDN and load balancer behavior, server-side handling, and the browser rendering pipeline.

    Software Engineering FundamentalsTechnical Screen
  • MercorMediumSoftware Engineer
    Find the Production Bugs in a Dictionary Cache Around an Expensive Computation

    Review a short Python function that caches the results of an expensive computation in a dictionary, and identify what breaks in a long-running, concurrent production service. Tests reasoning about memory growth, eviction policy, concurrent cache misses, error handling, and input validation.

    Software Engineering FundamentalsTechnical Screen
  • MercorMediumSoftware Engineer
    Make a Dict-Based Memoization Cache Safe for Concurrent Threads

    A memoization cache built on a plain Python dictionary wraps an expensive function and is now called from many threads at once. The question asks what goes wrong and how to fix it, testing race-condition analysis, lock scope and its throughput cost, duplicate-work prevention, and exception handling for waiting callers.

    Software Engineering FundamentalsTechnical Screen
  • MercorMediumSoftware Engineer
    Review a Hand-Rolled Python CSV Serializer for Correctness and Performance Bugs

    A code review question on a short Python function that turns a table of rows into CSV text. Candidates must find its correctness and performance problems and write a fixed version, which tests delimiter handling, string building in Python, non-string cells, CSV quoting and escaping rules, and how to verify the fix.

    Software Engineering FundamentalsTechnical Screen
  • MercorHardSoftware Engineer
    Review an Asynchronous Cache for Races, Memory Growth, and Thread Safety

    Tests understanding of asynchronous race conditions, memory leaks, and eviction in single-threaded event loops versus multithreaded synchronization in languages like C++.

    Software Engineering FundamentalsTechnical ScreenConcurrencyAsync/AwaitCaching
  • MercorMediumSoftware Engineer
    Sorting Complexity: Beating O(n^2), Quicksort's Worst Case, and a Slower Sort

    A verbal sorting-theory discussion: explain how to sort faster than quadratic insertion sort, identify quicksort's worst case, count the non-empty subsequences and the permutations of an n-element array, and design a correct sort that is deliberately slower than O(n^2). It tests asymptotic analysis, recurrence reasoning, and basic combinatorics.

    Software Engineering FundamentalsTechnical Screen
  • MercorMediumSoftware Engineer
    Stripe Payment Integration: Error Handling, Idempotent Retries and Payment Storage

    Explain how to add a Stripe payment integration to a backend service: how to handle errors and retries without charging a customer twice, what payment data to store, and which database to use given ACID and availability needs. Tests idempotency, failure handling, and data modeling for payments.

    Software Engineering FundamentalsTechnical Screen
  • MercorMediumSoftware Engineer
    The Worst Possible Sorting Algorithm and How to Enumerate Every Permutation

    A verbal algorithms question: name the worst sorting algorithm that still always sorts correctly, analyze its running time, and explain how you would compute every permutation of the input exactly once. It tests reasoning about factorial complexity and knowledge of permutation enumeration methods.

    Software Engineering FundamentalsTechnical Screen
  • MergeMediumSoftware Engineer
    Design a Common Data Class to Normalize Different API Responses

    Design a common data class that can hold API responses describing the same kind of record but differing in field names, nesting, ID types and timestamp formats, plus the code that maps each response into it. It tests data modeling, normalization, handling of missing and extra fields, and how the records would be stored in a database.

    Software Engineering FundamentalsTechnical Screen
  • MergeMediumSoftware Engineer
    Org Chart from a Reporting List: Count Orgs, Print by Level, Find a Common Manager

    Given a company's employees as (id, title, reports_to) tuples with heads reporting to None, count the separate orgs, print employees level by level, and find the first manager two employees share. It tests building a tree from manager pointers, level-order traversal, ancestor queries and edge cases under a tight time limit.

    Software Engineering FundamentalsTechnical Screen
  • MetaHardSoftware Engineer
    Analyze Minimum Completion Time for Target Courses in a Prerequisite DAG

    Analyze the minimum time needed to finish target courses and only their transitive prerequisites in a DAG. Distinguish total study effort from elapsed time with parallel courses, count shared prerequisites once, exclude unrelated nodes, and detect reachable cycles.

    Software Engineering FundamentalsOnsite
  • MetaMediumSoftware Engineer
    Design a Concurrent, Memory-Bounded Tally Service

    This problem tests the ability to design a high-throughput, memory-efficient data structure for time-series counting that balances concurrency, accuracy, and storage constraints.

    Software Engineering FundamentalsTechnical ScreenConcurrencyTime-SeriesData-Structures
  • MetaEasySoftware Engineer
    Design a String Calculator with Explicit Grammar and Evaluation Rules

    This problem tests the ability to implement a parser for basic mathematical expressions, specifically focusing on handling operator precedence and parentheses using a stack-based approach.

    Software Engineering FundamentalsTechnical ScreenStacksParsingAlgorithms
  • MetaEasySoftware Engineer
    Design a Trade Ledger Class

    This problem evaluates your ability to design a class interface that maintains an ordered collection of events and allows efficient retrieval based on time-based criteria.

    Software Engineering FundamentalsTechnical ScreenData StructuresAPI DesignBinary Search
  • MetaMediumSoftware Engineer
    Design an Expected O(1) Randomized Container

    Design a distinct-element container with expected constant-time insertion and uniformly random removal. The discussion covers mutation invariants, uniformity, empty-state behavior, expected complexity, deterministic randomness tests, and how duplicate or concurrent variants would change the contract.

    Software Engineering FundamentalsOnsite
  • MetaHardSoftware Engineer
    Design and Evaluate a Solver for a 36-Card Sum-Fifteen Game

    Tests state-space search (DFS with memoization), heuristic design, and simulation benchmarking for a deterministic 36-card solitaire game.

    Software Engineering FundamentalsOnsiteBacktrackingGame TheoryHeuristics
  • MetaMediumSoftware Engineer
    Diagnose a Single-Server Crash with Concrete Linux Evidence

    Walk through a single-server crash investigation using Linux service, kernel, memory, disk, and boot evidence while planning safe recovery.

    Software Engineering FundamentalsTechnical Screen