Skip to content
Preptima

Top 17 Performance Interview Questions

Browse 17 real-world technical and behavioral interview questions about Performance. Review scenarios, edge cases, and architectural best practices.

How do you architect a serving system for a 70B parameter LLM to maximize GPU throughput without violating strict time-to-first-token (TTFT) latency SLAs?

An authoritative deep dive into LLM inference optimization, exploring continuous batching, paged attention for KV cache memory management, and tensor parallelism scheduling.

hardscenario

Your Node service has low CPU but latency spikes for every request at the same moment. What is happening?

Node.js event loop blocking happens when synchronous JavaScript, JSON work, crypto, regex or CPU-heavy code occupies the shared thread. The signal is every endpoint slowing together while event loop delay rises.

mediumscenario

How do you execute a global CDN cache invalidation for a critical security patch without melting your origin servers under a thundering herd?

A cynical look at global cache invalidation, the necessity of origin shielding, and why relying on manual purges is an architectural anti-pattern. Use this distributed systems answer to show the decision, trade-off, and evidence rather than a memorised definition. It also connects caching to the point an interviewer is testing.

hardscenario

A read-only endpoint that returns fifty thousand rows is slow and memory-heavy in EF Core. What is the context doing?

The context snapshots every entity it loads so it can work out what changed at save time, which is useful for a handful of entities and pure overhead for a read. AsNoTracking removes the snapshot, and the same mechanism explains why a stray mutation on a tracked entity gets written even though you never called Update.

mediumconcept

A Compose screen with a long list is janky while scrolling - walk through how you'd find and fix the recomposition problem causing it.

Jank in a Compose list is usually excessive or unstable recomposition, caused by unstable parameter types, reading state too high in the tree, or lambdas that break skipping, found with the Layout Inspector's recomposition counts and fixed by narrowing what each composable reads.

mediumconcept

Walk me through the phases of the Node event loop.

Node.js event loop phases explain callback ordering across timers, poll, check, nextTick and promise microtasks. Correct answers separate macro-task phases from microtasks instead of memorising one log order.

mediumconcept

This table has fourteen indexes and writes have got slower. How do you work out which ones to drop?

Decide from evidence, not intuition: per-index scan counts read against the date the statistics were reset, redundancy judged by leading columns, and the constraints and foreign keys that need an index whether or not anything ever scans them. Then make the drop reversible.

hardscenario

How does the .NET garbage collector decide what to collect, and how would you make a hot path allocate less?

The GC segregates the heap into generations on the assumption that most objects die young, collecting gen0 often and gen2 rarely, with large objects on a separate heap that is not compacted by default. Allocating less means removing boxing and using Span<T> over pooled or stack memory.

hardconcept

Walk me through how you read a PostgreSQL execution plan.

Read the plan tree innermost-node-first, remember that EXPLAIN only estimates while EXPLAIN ANALYZE executes, multiply each node's actual rows by its loops, and treat a large gap between estimated and actual rows as the primary finding.

mediumconcept

How do you resolve unacceptable INP degradation caused by massive, synchronous JavaScript execution blocking the main thread?

Evaluate the candidate's understanding of the JavaScript event loop, rendering pipeline, and modern techniques for yielding to the main thread to improve INP. Use this frontend answer to show the decision, trade-off, and evidence rather than a memorised definition. It also connects performance to the point an interviewer is testing.

hardscenario

Mobile CI/CD build times have degraded to over 45 minutes. How would you diagnose the bottlenecks and architect advanced caching, modular parallelisation, and test sharding to reduce the feedback loop by 50%?

Evaluate the candidate's expertise in profiling build systems, configuring distributed caching, and optimising CI/CD pipelines for large-scale mobile projects.

hardscenario

How do you resolve severe performance bottlenecks in a complex React Native application caused by heavy bridge traffic, and how do you evaluate a migration to the JavaScript Interface (JSI)?

Assess the candidate's understanding of the React Native architecture, bridge performance limitations, profiling techniques, and modern solutions like JSI and the New Architecture. Use this MOBILE answer to show the decision, trade-off, and evidence rather than a memorised definition. It also connects cross platform to the point an interviewer is testing.

hardscenario

How do you architect a React Server Components migration without accidentally forcing the entire component tree back to the client?

React Server Components differ from SSR because they keep server-only work out of the client bundle instead of only rendering HTML on the server. The migration works when the use client boundary stays low and data fetching stays on the server.

hardscenario

A hot path allocates heavily and garbage collection is showing up in your profile. What does Span give you that a substring does not?

Span is a stack-only view over memory you already have, so slicing it costs nothing while Substring allocates a new string and copies. It removes allocations rather than making them faster, which is the right lever in a runtime where the cost is collection pressure rather than the allocation itself.

hardconcept

Your SwiftUI screen redraws constantly and scrolling stutters - how would you find out why, and what state-management mistake usually causes it?

A re-render storm usually comes from one large ObservableObject whose @Published properties fan out too widely, so any single field change invalidates every view reading the object rather than just the row that changed. Use this swiftui answer to show the decision, trade-off, and evidence rather than a memorised definition. It also connects state management to the point an interviewer is testing.

mediumconcept

Walk me through what happens between the source you write and the instructions the CPU runs, and where does a JIT fit into that?

Source is tokenised, parsed, checked, lowered to an intermediate representation, optimised and emitted - either ahead of time to machine code or to bytecode executed by a runtime. A JIT compiles hot bytecode at run time using profiles, which is why managed programs get faster after warm-up. Use this compilers answer to show the decision, trade-off, and evidence rather than a memorised definition.

mediumconcept

A query has an index on the filtered column but the plan shows a sequential scan. Walk me through how you would diagnose it.

Work outward from the plan: confirm the index is actually usable for the predicate as written, then check whether the optimiser is choosing to ignore it because of selectivity, stale statistics, or a type or collation mismatch that makes the predicate non-sargable.

hardscenario