Technical interview questions are only useful when they match the role, seniority level, and specific technical domain you're evaluating. A raw list of algorithm puzzles doesn't serve most engineering interviews — it tests LeetCode preparation more than actual engineering ability. This guide organizes 200+ questions by topic and role, with evaluation notes for each category, so you can build a question set that generates real signal for the specific hire you're making.

According to Glassdoor's 2025 Hiring Insights report, 58% of hiring managers report that their technical interview questions don't reliably predict on-the-job performance. The primary reason: questions are chosen based on habit and convention rather than the specific competencies required for the role. This guide addresses that directly.

How to Use This Guide

Before selecting questions, define the three to five competencies that matter most for the specific role. A senior backend engineer needs different competencies than a frontend engineer, a data engineer, or a DevOps lead. Start by answering:

  1. What does this person build in the first 90 days?
  2. What technical decisions will they make independently?
  3. What system context (scale, reliability requirements, team size) will they work in?
  4. What is the primary failure mode in this role — what does a bad hire look like technically?

Select questions that test those specific competencies, not a generalized set of "hard" technical questions. For an overview of the research on why structured approaches outperform unstructured ones, see structured vs unstructured interviews.

Key principle: Two deep questions with extensive probing and follow-ups produce more signal than ten shallow questions with binary pass/fail evaluation.

Data Structures and Algorithms Questions

Algorithm questions test abstract problem-solving and computational thinking. Use them for roles where performance optimization, algorithm design, or complex data manipulation is a regular job function — not as a generic bar for all engineering roles.

For an approach to evaluate coding skill beyond algorithm puzzles, see how to evaluate coding skills.

Arrays and Strings (Junior–Mid)

  1. Given an array of integers, find two numbers that sum to a target value. Discuss the time and space complexity of your approach.
  2. Reverse a string without using built-in reverse functions. What are the edge cases?
  3. Given a sorted array, remove duplicates in place. What happens if the array is unsorted?
  4. Write a function to determine if a string is a palindrome, accounting for non-alphanumeric characters.
  5. Given two strings, determine if one is an anagram of the other. Optimize for large strings.
  6. Find the maximum subarray sum (Kadane's algorithm variant). Trace through a failing case.
  7. Given a matrix, rotate it 90 degrees in place. What is the minimum number of operations required?
  8. Find all permutations of a string. At what string length does this become computationally infeasible and why?

What to evaluate: Candidates should recognize the time-space tradeoff clearly. A candidate who arrives at a working solution without discussing complexity has a gap worth probing. Ask "can you do this in O(n)?" or "what if the input is 10 billion elements?" to test depth.

Linked Lists and Trees (Mid–Senior)

  1. Reverse a linked list iteratively and recursively. Which approach is more memory-efficient and why?
  2. Detect a cycle in a linked list. Explain the two-pointer approach without using extra memory.
  3. Merge two sorted linked lists. What happens at the boundary conditions?
  4. Find the lowest common ancestor of two nodes in a binary tree.
  5. Implement a binary search tree with insert, delete, and search operations. Discuss the worst-case performance.
  6. Given a binary tree, return all paths from root to leaf where the path sum equals a target.
  7. Serialize and deserialize a binary tree. What format would you use for a production system?
  8. Implement a trie for efficient string prefix matching. Where would you use this in a real system?

What to evaluate: Tree problems reveal recursive thinking and the ability to decompose complex traversal into base cases and recursive cases. A candidate who cannot articulate the base case is a yellow flag for roles requiring systems reasoning.

Dynamic Programming (Mid–Senior)

  1. Explain dynamic programming in one sentence. When does it apply? Give a real-world example.
  2. Solve the coin change problem with minimum coins. Derive the recurrence relation before coding.
  3. Find the longest common subsequence of two strings.
  4. The 0/1 knapsack problem: explain why it can't be solved greedily and what that implies about the problem class.
  5. Solve the climbing stairs problem. What pattern does this share with Fibonacci?
  6. Given a grid, find the minimum path sum from top-left to bottom-right.

What to evaluate: DP is the right test for candidates claiming strong algorithmic foundations. Candidates should demonstrate they can identify overlapping subproblems before jumping to implementation.

Sorting and Searching (Mid–Senior)

  1. When would you use merge sort over quicksort in production code? What are the practical tradeoffs?
  2. Implement binary search on a rotated sorted array.
  3. Given a list of intervals, merge overlapping ones.
  4. Find the kth largest element in an unsorted array — discuss multiple approaches and their tradeoffs.
  5. Explain the intuition behind quickselect. When does it degrade to O(n^2) and how do you prevent it?

For questions specifically related to take-home format, see our analysis of take-home coding assignments.

System Design Questions

System design questions assess a candidate's ability to design scalable, reliable software systems — the primary work of senior engineers. These questions have no single correct answer; they evaluate reasoning, tradeoff analysis, and architectural judgment. For a comprehensive approach, see the system design interview guide.

Classic System Design Problems

  1. Design a URL shortener (e.g., bit.ly). Start with requirements clarification. How would you handle 100M URLs?
  2. Design a rate limiter for an API. What algorithms would you consider? How does your answer change at different scales?
  3. Design a distributed key-value store. What consistency guarantees does it provide?
  4. Design a notification system that handles email, SMS, and push notifications at scale.
  5. Design a news feed for a social network. How do you handle users following 10,000 people?
  6. Design a distributed cache. How do you handle cache invalidation and thundering herd?
  7. Design a search autocomplete system. What data structures would you use? How would you prioritize results?
  8. Design a ride-sharing service backend. What are the core data models?
  9. Design a metrics collection system that needs to store and query billions of time-series data points.
  10. Design a multi-region file storage system with eventual consistency.

What to evaluate: The candidate should begin with requirements clarification (not jump to implementation). Listen for: scale estimation (how many requests per second, how much data), component identification (what services, databases, caches), data model decisions, and explicit discussion of tradeoffs. A candidate who presents a "perfect" design without acknowledging tradeoffs should be pushed: "What breaks first at 10x current scale?"

Advanced System Design (Senior–Staff)

  1. How would you design a globally distributed database with strong consistency? What are the CAP theorem implications?
  2. Design a system for real-time collaborative editing (like Google Docs). How do you handle conflict resolution?
  3. Design a fraud detection system that must make decisions in under 100ms. What is your approach to model serving?
  4. You're seeing 1% of requests fail in production with a generic 500 error. Walk me through your investigation approach.
  5. Design an A/B testing framework that handles feature flags, user segmentation, and result analysis.

Backend Engineering Questions

APIs and Web Services

  1. What's the difference between REST, GraphQL, and gRPC? When would you choose each?
  2. How do you design an API that needs to be backward compatible over years of product evolution?
  3. Explain idempotency. How do you implement it for a payment API?
  4. What is the N+1 query problem? How do you detect and fix it?
  5. How do HTTP caching headers work? What's the difference between Cache-Control: max-age and ETag?
  6. Design a webhook delivery system that guarantees at-least-once delivery.
  7. What is CORS, why does it exist, and how do you configure it securely?
  8. How do you version a REST API? What are the tradeoffs of each approach?

Databases

  1. When do you use a relational database versus a document database? Give a concrete example where you'd choose each.
  2. Explain database indexing. What are the tradeoffs of adding indexes to a table?
  3. What is the difference between INNER JOIN, LEFT JOIN, and CROSS JOIN? Write a query using each.
  4. Explain ACID properties. Which NoSQL databases sacrifice which properties and why?
  5. How do you handle database migrations in a zero-downtime deployment?
  6. What is a deadlock? How do you detect and prevent it in PostgreSQL?
  7. Explain the difference between a clustered and non-clustered index.
  8. When would you use a message queue instead of a direct database write?

Concurrency and Performance

  1. Explain the difference between a thread and a process. When would you use each?
  2. What is a race condition? Describe a scenario where it could occur in a payment system.
  3. Explain optimistic vs. pessimistic locking. When does each approach fail?
  4. How does connection pooling work? What happens without it at scale?
  5. Profile this endpoint that is slow: (provide a representative code sample). What would you look at first?
  6. Explain the difference between synchronous and asynchronous processing. Give a use case where each is appropriate.
  7. What are the tradeoffs of event-driven architecture? Where does it fail?

Frontend Engineering Questions

JavaScript and Browser Fundamentals

  1. Explain the JavaScript event loop. How does it enable non-blocking I/O?
  2. What is a closure? Give a practical example from a real UI component.
  3. Explain promises and async/await. What is the difference in error handling?
  4. What is the virtual DOM? How does React's reconciliation algorithm work?
  5. Explain the difference between null, undefined, and an undeclared variable.
  6. What is prototype-based inheritance? How does ES6 class syntax relate to prototypes?
  7. How do you prevent memory leaks in a long-running SPA?
  8. Explain event delegation. Why is it important for dynamically created elements?
  9. What is a Web Worker? When would you use one?
  10. Explain the critical rendering path. What is render-blocking?

React-Specific

  1. When would you use useCallback versus useMemo? What are the performance implications?
  2. Explain the rules of hooks. What happens if you conditionally call a hook?
  3. What is the component lifecycle in React? How do hooks map to lifecycle methods?
  4. How do you manage global state in a large React application? Compare Context, Redux, and Zustand.
  5. What is code splitting and how do you implement it in a Next.js application?
  6. Explain React's Suspense API. What problem does it solve?
  7. How would you implement optimistic UI updates? What is the rollback strategy?
  8. How do you test a React component? What's the difference between unit testing and integration testing in the frontend context?

Performance and Accessibility

  1. What is the Lighthouse performance score measuring? Which metrics matter most?
  2. How do you optimize the loading of a page that has 50+ images?
  3. Explain Core Web Vitals: LCP, FID/INP, and CLS. How do you improve each?
  4. What is ARIA? Explain three ARIA attributes and when you'd use them.
  5. How do you implement keyboard navigation in a custom dropdown component?

DevOps and Cloud Engineering Questions

Infrastructure and Deployment

  1. What is immutable infrastructure? Why is it preferable to mutable servers for production workloads?
  2. Explain blue-green deployment. What are the tradeoffs versus a rolling update?
  3. What is a container? How does Docker differ from a virtual machine?
  4. Explain Kubernetes: what problem does it solve and what are its core concepts?
  5. What is infrastructure as code? What problem does it solve compared to manual server configuration?
  6. How do you design a zero-downtime deployment pipeline?
  7. What is a 12-factor app? Which factors do you find most commonly violated in practice?
  8. How do you handle secrets in a containerized application? What should never go in environment variables?

Observability and Reliability

  1. What is the difference between monitoring and observability? Why does the distinction matter?
  2. Explain the three pillars of observability: metrics, logs, and traces. Give a scenario where you'd use each.
  3. Design an alerting strategy for a payment processing service. What would you alert on? What would you NOT alert on?
  4. What is SLO, SLA, and error budget? How do they inform operational decisions?
  5. Walk through a production incident where you had to diagnose a problem under pressure. What was your approach?
  6. What is chaos engineering? How would you introduce it to a team that has never done it?

Behavioral Interview Questions

Behavioral questions for engineers should target specific competencies that predict on-the-job performance. Use the STAR format (Situation, Task, Action, Result) and push for specifics — vague answers signal either limited experience or inability to reflect accurately on their own work. For a comprehensive question bank by competency, see behavioral interview questions for engineers.

Technical Judgment and Decision-Making

  1. Tell me about a significant technical decision you made that turned out to be wrong. What did you learn?
  2. Describe a time you had to make an architectural decision with incomplete information. How did you decide?
  3. Tell me about a time you pushed back on a technical approach championed by a senior person. How did it resolve?
  4. Describe a system you designed that later needed major refactoring. What would you do differently?
  5. Tell me about a time you chose to ship imperfect code due to time pressure. What were the consequences?

Collaboration and Communication

  1. Describe a time you had to explain a complex technical problem to a non-technical stakeholder. What was your approach?
  2. Tell me about a conflict with a teammate over a technical approach. How was it resolved?
  3. Describe a time you helped a junior engineer grow. What was the outcome?
  4. Tell me about a time you had to escalate a problem to your manager. What made you decide to escalate?

Delivery and Execution

  1. Describe the most technically complex thing you've built. What made it complex and how did you manage it?
  2. Tell me about a production incident you caused. What happened and what did you change afterward?
  3. Describe a project that slipped its deadline. What were the causes and what would you do differently?
  4. Tell me about a time you had to learn a completely new technology quickly to solve a problem.

Engineering Manager Questions

For Engineering Manager roles, technical questions should assess both technical credibility and the specific EM competencies: people management, project delivery, and technical vision. Detailed hiring guidance is available in the full hiring guide for engineering leaders.

Technical Leadership

  1. How do you decide when to refactor versus rewrite a legacy system?
  2. How do you ensure technical quality when you're no longer writing code every day?
  3. Describe your approach to technical debt management. How do you prioritize it?
  4. How do you make architectural decisions that will outlast your tenure at the company?
  5. How do you evaluate the technical capabilities of an engineer you're hiring when you no longer do deep technical work yourself?

People Management

  1. How do you handle a strong technical performer who is having a negative impact on team dynamics?
  2. Describe your approach to performance management for an engineer who is underperforming.
  3. How do you retain engineers who receive competing offers?
  4. What does a 1:1 with a direct report look like in your approach?
  5. How do you think about career development for a senior engineer who doesn't want to move into management?

Delivery and Planning

  1. How do you estimate project timelines when the scope is not fully defined?
  2. How do you handle feature requests from product that are technically infeasible in the requested timeframe?
  3. Describe how you've managed a project through a significant scope change midway through execution.
  4. How do you decide when to hire versus redistribute work to existing team members?
  5. How do you structure your team's relationship with other teams (product, design, QA, data)?

Building an Evaluation Rubric

A question without a rubric is just a conversation — it doesn't reliably produce hiring decisions that are consistent across interviewers or defensible after the fact. Building rubrics before interviews start is the single highest-leverage improvement most engineering hiring processes can make.

Rubric Structure

For each question, define four levels:

LevelDescriptionExample for System Design
**Strong Yes**Exceeds expectations for the levelIndependently identifies scale requirements, names tradeoffs explicitly, adjusts design when constraints change
**Lean Yes**Meets expectations, some gapsProduces working design with prompting, acknowledges main tradeoffs, doesn't volunteer edge cases
**Lean No**Below expectations, significant gapsProduces a design but cannot explain why choices were made, misses major failure modes
**Strong No**Significantly below expectationsCannot approach the problem, or solution is fundamentally incorrect

For a ready-to-use template, see the interview scorecard template.

Before the Interview Starts

  1. Share the question with interviewers at least 24 hours in advance
  2. Require each interviewer to independently record their rating before the debrief
  3. In the debrief, have each person share their rating and top two evidence points FIRST — before discussion
  4. This prevents the first vocal opinion from anchoring everyone else's assessment

For guidance on training your hiring team to use this approach consistently, see how to train hiring managers on interviews.

How Nextmantra AI Approaches This

The core problem with technical interview questions isn't the list — it's who delivers them and whether follow-up questions actually probe depth. A static question bank gives the same experience to every candidate regardless of what they've claimed on their resume. "Tell me about your experience with distributed systems" means something very different coming from a candidate claiming 10 years versus 2 years, and the right follow-up question is different in both cases.

Nextmantra AI generates interview questions dynamically: it reads the job description, parses the candidate's resume, and constructs a question sequence that specifically targets the experience and skills they've claimed. When a candidate says they designed a microservices architecture, the AI doesn't move on — it asks follow-up questions that probe the depth of that claim, escalating complexity until it finds where the candidate's knowledge actually stops. The result is an evaluation report that shows not just whether a candidate "passed" a first round, but exactly where their technical depth ends and what they can and cannot do. See how Nextmantra AI works in practice

Frequently Asked Questions

What are the most common technical interview questions for software engineers?

The most commonly asked technical interview questions cluster around four areas: data structures and algorithms (array manipulation, linked list traversal, tree problems, hash tables), system design (design a URL shortener, design a rate limiter, design a news feed), database and SQL (query optimization, index design, joins), and coding fundamentals (object-oriented design, recursion, time and space complexity analysis). The specific questions matter less than having a rubric to evaluate answers at the right seniority level.

How do you evaluate answers to technical interview questions?

Good technical answers have three components: correctness (does the solution work?), reasoning (can the candidate explain why they chose this approach?), and adaptability (can they adjust when constraints change?). A candidate who produces a correct solution but can't explain their reasoning is less valuable than one who produces an imperfect solution but walks through a coherent mental model. Build an explicit rubric before interviews start: define what a strong, acceptable, and weak answer looks like for each question, independent of who is answering.

Should you ask algorithm questions for all engineering roles?

No. Algorithm questions are appropriate for roles where algorithmic thinking is a core job function — core infrastructure engineers, performance-critical systems, data structure-heavy applications. For most product engineers, data engineers, frontend engineers, and DevOps engineers, algorithm questions test LeetCode preparation more than job-relevant skill. More signal comes from code review exercises, debugging sessions, and system design problems that reflect the actual work.

How many technical questions should you ask per interview round?

Depth beats breadth. Two or three questions with extensive probing produces far more signal than eight to ten questions with shallow coverage. A candidate who solves one system design problem thoroughly — explaining tradeoffs, handling edge cases, adjusting to changing requirements — tells you more about their engineering ability than five quick questions where surface-level answers pass.

What behavioral questions should you ask software engineers?

The most predictive behavioral questions for engineers use the STAR format and target specific competencies: technical leadership (describe a significant architectural decision and how it turned out), handling failure (describe a production incident you caused and how you resolved it), cross-functional collaboration (tell me about a time you had to push back on a product requirement), and learning agility (describe the most technically complex thing you've learned in the last year).

What's the difference between junior and senior technical interview questions?

Junior questions focus on: specific language syntax and idioms, fundamental data structures, basic algorithm implementation, and debugging a provided snippet. Senior questions focus on: architectural tradeoffs, system design at scale, leading technical decisions under uncertainty, and mentoring or reviewing others' work. The most common mistake is asking senior-level questions to junior candidates (setting them up for failure) or asking junior questions to senior candidates (failing to assess what matters at that level).

How do you avoid bias in technical interview questions?

Use the same questions for all candidates at the same level — do not improvise per candidate. Use structured scoring rubrics defined before the interview. Separate technical evaluation from culture or personality assessment in different rounds with different interviewers. Require interviewers to submit independent ratings before group discussion to prevent anchoring. Avoid questions requiring cultural knowledge or life experience unrelated to the role.

Are take-home assignments better than live coding interviews?

Take-home assignments better replicate real work conditions — candidates can use their tools, reference documentation, and work at their own pace. This reduces the performance-under-pressure factor that disadvantages skilled engineers who interview poorly. The tradeoffs: completion rate drops significantly for candidates with active job searches, and some companies worry about AI-generated completions. The most reliable approach combines a short async component to verify basic ability, followed by a live discussion of the candidate's reasoning and decision-making.

Conclusion

Technical interview questions work when they're selected for a specific role and evaluated with a consistent rubric. The goal is not to find the candidate who can solve the hardest algorithm problem — it's to find the engineer who will succeed in the specific job context you're hiring for. Define the competencies first, select questions that test those competencies, build a rubric before the first interview starts, and evaluate answers at the right depth.

The 200+ questions in this guide are starting points. Adapt them to your specific role, your tech stack, and the seniority level you're hiring. A junior backend engineer interview should look substantially different from a senior distributed systems engineer interview — both in the questions asked and in what constitutes a strong answer.

Ready to remove the first-round burden from your engineering team? [See Nextmantra AI in practice](https://nextmantra.ai/platform)

Sources: Glassdoor Hiring Insights Report 2025; SHRM Talent Acquisition Benchmarking Report 2024; LinkedIn Global Talent Trends 2025; Stack Overflow Developer Survey 2025