40 targeted questions for software engineering roles — split across technical fundamentals, system design, and behavioural competencies. Each includes what a strong answer sounds like.
Updated May 2026 · For IC2–Staff level roles
Technical Fundamentals
Q01 · Technical
What is the difference between a process and a thread?
Tests OS fundamentals — relevant for any backend or infrastructure role.
Follow-up probeWhen is spawning a new process preferable to a new thread? What are the trade-offs in your most recent project?
Q02 · Technical
Explain the difference between TCP and UDP. When would you choose one over the other?
Networking fundamentals. Critical for distributed systems, APIs, and real-time applications.
Follow-up probeHave you used UDP in production? What problem did it solve that TCP couldn't?
Q03 · Technical
What is a deadlock? How do you detect and prevent it?
Concurrency fundamentals. Important for backend engineers working with databases or multithreaded code.
Follow-up probeDescribe a deadlock you encountered or prevented in production. What was the resolution?
Q04 · Technical
Explain the SOLID principles. Which do you find hardest to apply in practice and why?
Tests both knowledge and practical judgment. The "hardest" part surfaces whether they've actually applied this.
Follow-up probeShow me an example of code in your current codebase that violates one of these — and how you'd fix it.
Q05 · Technical
What is the difference between SQL and NoSQL databases? When would you choose each?
Database fundamentals — relevant for almost any backend role.
Follow-up probeIn your last project, what database did you use and why? What would you change in hindsight?
Q06 · Technical
What is an index in a database? When does an index hurt performance?
Database performance — a common interview gap that separates developers who've dealt with scale from those who haven't.
Follow-up probeDescribe a slow query you've optimised. What was the root cause?
Q07 · Technical
What is the difference between synchronous and asynchronous programming? What problems can async patterns introduce?
Core concept for modern backend and frontend. Tests whether they understand the pitfalls, not just the benefits.
Follow-up probeHave you encountered callback hell, promise chaining issues, or async/await bugs? How did you solve them?
Q08 · Technical
Explain REST vs. GraphQL. What are the trade-offs for a team consuming your API?
API design maturity. Strong engineers can articulate consumer-side trade-offs, not just technical differences.
Follow-up probeHave you migrated between the two or supported both simultaneously? What was the hardest part?
System Design
Q09 · System Design
Design a URL shortening service (like bit.ly). Walk me through your architecture.
Classic system design question. Tests scalability thinking, hashing, caching, and database design.
Follow-up probeHow would your design change if the service needed to handle 10 billion requests per day? Where does your current design break?
Q10 · System Design
Explain the CAP theorem. Give an example of a real system that makes each trade-off.
Distributed systems fundamentals. Strong candidates connect theory to real-world technology choices.
Follow-up probeIn your last distributed system, what consistency model did you choose? What were the consequences?
Q11 · System Design
How would you design a rate limiter for an API? What algorithms would you consider?
Tests understanding of token bucket, leaky bucket, sliding window, and distributed coordination.
Follow-up probeHow does your design handle rate limiting across multiple server instances? What happens if Redis goes down?
Q12 · System Design
Walk me through how you'd design a notification system that sends 10 million push notifications per day.
Tests message queuing, fan-out patterns, retry logic, and delivery guarantees.
Follow-up probeHow do you handle notification failures? What's your strategy for at-least-once vs exactly-once delivery?
Q13 · System Design
How would you design a system to detect duplicate transactions in a payment processor?
Idempotency, distributed locking, and consistency in financial systems. High stakes, good signal.
Follow-up probeWhat happens if your deduplication store goes down mid-transaction? How do you recover?
Code Quality & Engineering Practices
Q14 · Technical
What does "technical debt" mean to you? How do you decide when to pay it down?
Engineering judgment. Strong engineers balance shipping vs. maintainability and communicate trade-offs clearly.
Follow-up probeGive me a specific example of technical debt you inherited. What did you do with it?
Q15 · Technical
How do you approach writing unit tests for code you didn't write?
Testing discipline and ability to work with legacy codebases.
Follow-up probeWhat's the hardest thing you've ever tried to test? How did you approach it?
Behavioural & Situational
Q16 · Behavioural
Tell me about a critical production incident you were responsible for. How did you handle it?
High-signal question. Tests composure, debugging process, communication, and post-mortem discipline.
Follow-up probeWhat changed in your team's process or code after the incident? How did you communicate it to the business?
Q17 · Behavioural
Describe a technical decision you made that you now think was wrong. What would you do differently?
Tests intellectual honesty and learning agility. Candidates who can't answer this are a flag.
Follow-up probeDid anyone on the team raise concerns at the time? How did you respond to them?
Q18 · Behavioural
How do you handle a code review where a senior engineer disagrees with your approach?
Collaboration and constructive conflict. Reveals whether they can hold a position with evidence vs. defer by default.
Follow-up probeGive me a specific example where you pushed back and were right — and one where you pushed back and were wrong.
Q19 · Behavioural
Tell me about the most complex feature you've shipped end-to-end. What made it complex?
Tests ownership, scoping, cross-team coordination, and delivery.
Follow-up probeWhat was the hardest technical problem inside it? How long did it take? What would you change?
Q20 · Behavioural
How do you stay current with new technologies? How do you decide what's worth learning?
Learning agility and judgment. Engineers who chase every trend are as risky as those who never learn anything new.
Follow-up probeWhat's something you evaluated, decided not to adopt, and why? What was the outcome?
Generate questions tailored to your JD
Nasiya reads your actual job description and generates targeted interview questions based on what matters for your specific role — plus cross-examination probes for each CV claim.