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 631–660 of 1208 results
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.
MercorSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenTests 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.
MercorSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis 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.
MercorSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenA 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.
MercorSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenAn 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.
MercorSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenAsks 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.
MercorSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis 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.
MercorSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenReview 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.
MercorSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenA 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.
MercorSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenA 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.
MercorSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenTests understanding of asynchronous race conditions, memory leaks, and eviction in single-threaded event loops versus multithreaded synchronization in languages like C++.
MercorSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenA 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.
MercorSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenExplain 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.
MercorSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenA 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.
MercorSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenDesign 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.
MergeSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenGiven 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.
MergeSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenAnalyze 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.
MetaSoftware EngineerSoftware Engineering FundamentalsOnsiteThis problem tests the ability to design a high-throughput, memory-efficient data structure for time-series counting that balances concurrency, accuracy, and storage constraints.
MetaSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis 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.
MetaSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis 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.
MetaSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenDesign 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.
MetaSoftware EngineerSoftware Engineering FundamentalsOnsiteTests state-space search (DFS with memoization), heuristic design, and simulation benchmarking for a deterministic 36-card solitaire game.
MetaSoftware EngineerSoftware Engineering FundamentalsOnsiteWalk through a single-server crash investigation using Linux service, kernel, memory, disk, and boot evidence while planning safe recovery.
MetaSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis problem tests the ability to design an execution engine that manages task dependencies using a directed acyclic graph (DAG), respects concurrency limits, and handles task failures.
MetaSoftware EngineerSoftware Engineering FundamentalsOnsiteThis question evaluates a candidate's knowledge of database transactions, the ACID properties (Atomicity, Consistency, Isolation, Durability), and common isolation levels (Read Uncommitted, Read Committed, Repeatable Read, Serializable), testing competency in concurrency control and data consistency.
MetaSoftware EngineerSoftware Engineering FundamentalsOnsiteThis interview question evaluates requirements, scale assumptions, API/data design, architecture, trade-offs, failure modes, and rollout in a realistic interview setting. A strong answer for Implement paginated, sortable dynamic table component states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.
MetaSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenImplement, Debug, and Optimize a React Table evaluates requirements, assumptions, structured reasoning, trade-offs, and verification in a realistic interview setting. A strong answer states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.
MetaSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis question evaluates a candidate's competency in observability, incident response, and Linux/server operations, including troubleshooting production outages, isolating latency causes, identifying running processes and services, and recognizing finite resource bottlenecks.
MetaSite Reliability EngineerSoftware Engineering FundamentalsTechnical ScreenThis question tests your systematic approach to diagnosing a production service outage caused by resource exhaustion and your ability to implement short-term and long-term mitigation strategies.
MetaSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis question evaluates a developer's familiarity with AI-assisted development tools, practical experience integrating them into workflows, and understanding of associated governance, security, and data-handling concerns.
MetropolisSoftware EngineerSoftware Engineering FundamentalsTechnical Screen