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 661–690 of 1208 results
Analyze and compare the behavior of JavaScript's `Promise.all`, `Promise.any`, and `Promise.allSettled` across resolution semantics, failure handling, result ordering, and empty inputs, then apply them to real-world distributed service orchestration.
Micro1Software EngineerSoftware Engineering FundamentalsOnline AssessmentThis problem tests your understanding of concurrency control by asking you to design a locking strategy for a multi-threaded key-value store, focusing on the trade-offs between throughput and latency.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis question evaluates understanding of binary classification evaluation metrics (precision and recall) and competency in handling unreliable API behavior for robust metric computation, testing both conceptual understanding and practical application.
MicrosoftMachine Learning EngineerSoftware Engineering FundamentalsTechnical ScreenAn AI-assisted debugging exercise set in a multi-file A/B testing analytics codebase with five reported issues, centered on a numerical underflow that makes a sequential test stall on large experiments. It tests triage under a time limit, numerical root-cause analysis, and judging when an AI agent's proposed fix is wrong.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsOnsiteThis question evaluates a candidate's competency in diagnosing performance regressions in distributed systems and understanding of observability signals, latency and throughput trade-offs, and cross-component interactions within the Software Engineering Fundamentals domain.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsOnline AssessmentImplement your own doubly linked list whose nodes also carry a special pointer to any node in the list, then write a deep clone without using a built-in list type or adding fields to the node class. It tests pointer handling, mapping nodes by identity, edge cases such as null or self pointers, and proving the copy is fully independent.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsOnsiteDesign a heterogeneous dictionary with explicit type-aware equality, hashing, collision resolution, variable-length ownership, resizing, and persistence boundaries.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsOnsiteLow-level design and concurrency question: design and implement a fixed-size thread pool with task submission, futures that return results or errors, and graceful or cancelling shutdown. It tests lock and condition variable use, lost wake-ups, policies for rejected work, pool sizing and deadlocks between dependent tasks.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsOtherThis question evaluates understanding of concurrency control (mutexes and synchronization), memory alignment and layout, object-oriented polymorphism, and idempotent operations, encompassing key Software Engineering Fundamentals and systems-level concepts.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsOnsiteThis question evaluates object-oriented design and API release engineering competencies, covering identification of core domain objects, separation of orchestration from business rules, testability and extensibility of backend logic, and safe modification of public APIs including backward compatibility, versioning, testing, rollout, monitoring, and client communication, and it is categorized under Software Engineering Fundamentals. It is commonly asked because employers need assurance that engineers can both conceptually design maintainable, extensible systems and practically apply release processes and testing strategies to evolve public interfaces without disrupting clients.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis question tests your understanding of language runtimes, memory management strategies, and the trade-offs between managed environments like Python and JVM-based languages like Java.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsOnsite- Explain a project deeplyMedium
This question assesses the candidate's depth of ownership over a previous machine learning project, specifically testing their ability to articulate system design choices, technical trade-offs, and operational resilience.
MicrosoftMachine Learning EngineerSoftware Engineering FundamentalsOnsite This question evaluates understanding of deadlocks, concurrency control, and resource synchronization in concurrent programming, testing competency in identifying the necessary conditions for deadlock, analyzing concrete scenarios including circular waits, and considering engineering approaches for prevention, detection, and recovery.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenThis question evaluates understanding of hash map internals and related competencies in data structures, algorithmic complexity, and concurrent programming within the Software Engineering Fundamentals domain, covering collision handling, load factor and resizing, deletion semantics, worst-case behavior, iteration order, and thread-safety concerns.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsOnline AssessmentTests code review, debugging, and refactoring skills by identifying flaws in an AI-generated in-memory URL shortener and implementing a robust, thread-safe replacement.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenDesign and implement a thread-safe, bounded task executor that guarantees sequential execution per key while enforcing a global concurrency limit across all keys.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenData structures question that asks you to build a priority queue from scratch with insert, peek, remove-top and size operations, a caller-supplied ordering and stable ties. It tests the choice of underlying structure, invariant-preserving insertion and removal, complexity analysis and edge-case handling.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsOtherImplement per-key FIFO task execution with thread-safe submission, bounded global concurrency, ready-key scheduling, and exception-safe slot release.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsOnsiteA low-level engineering exercise to implement the Linux cp command in C++ and then explain what happens beneath it. It tests system calls, short writes and error handling, the page cache and kernel-assisted copying, and RAII-based management of file descriptors.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsOnsiteLive troubleshooting scenario for a senior reliability role: a public-facing service shows very high CPU, and you must keep answering what you would check next. It tests impact-first triage, separating traffic growth from per-request regressions, profiling, and weighing rollback, scaling, throttling and asynchronous queueing.
MicrosoftSite Reliability EngineerSoftware Engineering FundamentalsOnsiteLow-level design question about an in-process logging library that many threads call at the same time. It tests class modeling for loggers, records, formatters and output destinations, plus thread safety, the hand-off to a background writer, ordering, overflow behavior, failure isolation and clean shutdown.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsOtherThis problem tests the ability to model lexicographical constraints as a directed graph and determine if a valid ordering of unique characters exists using topological sorting.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsTechnical ScreenRespond to a post-deployment latency or reliability regression with scoped diagnosis, safe rollback decisions, customer-impact measurement, and prevention.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsOnsiteA rapid-fire software engineering fundamentals round covering what makes code thread-safe, what a deadlock is, the main ways to prevent, avoid or recover from deadlocks, and how arrays and linked lists compare. It tests precise definitions, concrete examples and practical trade-offs such as lock ordering and cache locality.
MicrosoftSoftware EngineerSoftware Engineering FundamentalsOnsiteReliability engineering discussion question: explain your philosophy on automating operational work to free engineers for development, your bar for good-enough versus excellent automation, and where automation stops being worth it. It tests toil measurement, cost-benefit reasoning, safety guardrails and concrete examples.
MicrosoftSite Reliability EngineerSoftware Engineering FundamentalsOnsiteUnderstand C++ atomics, relaxed counters, acquire-release publication, lost updates, and when multi-field invariants still require a mutex.
MillenniumSoftware EngineerSoftware Engineering FundamentalsOnsiteThis question evaluates understanding of asynchronous programming in Python, including event loop management and async I/O semantics, and is categorized under Software Engineering Fundamentals with a focus on practical application of concurrency concepts.
MillenniumSoftware EngineerSoftware Engineering FundamentalsOnsiteThis problem tests the ability to design an automated evaluation framework for an agentic system that transitions from rule-based to LLM-driven decision-making, focusing on decoupling metrics and ensuring safety.
MillenniumData ScientistSoftware Engineering FundamentalsTechnical ScreenCompare GCC, Clang, and LLVM compilation stages, optimization trade-offs, undefined behavior, and methods for investigating generated-code differences.
MillenniumSoftware EngineerSoftware Engineering FundamentalsOnsiteExplain C++ mutex ownership, memory visibility, RAII locking, contention, and deadlock prevention with a shared-counter example.
MillenniumSoftware EngineerSoftware Engineering FundamentalsOnsite