← Back

Technical Interview Practice — 16 Engineering Domains with Real Scoring Criteria

What Interviewers Are Really Testing in Technical Rounds

Technical interviews don't test whether you've memorized definitions. They test whether you understand the why behind your tools — why you'd pick a B-tree over a hash index, why eventual consistency is acceptable for a shopping cart but not a bank ledger, why a mutex isn't always the right synchronization primitive.

The shift in the last few years has been dramatic: from "do you know X" to "can you explain X to someone who doesn't." Companies discovered that candidates who can recite textbook definitions often can't apply those concepts to real systems. So now, the interview is a conversation — and the interviewer is listening for reasoning, not recall.

Seniority calibration follows a clear pattern. Junior candidates need correct answers — show you know the concept. Mid-level candidates need tradeoff reasoning — show you can weigh options. Senior candidates need experience-informed judgment — show you've seen what works and what breaks in production. The meta-skill across all levels: can you explain complex concepts clearly under time pressure?

The 16 Engineering Domains That Actually Get Tested

Python InternalsSystem DesignDatabases & SQLDistributed SystemsNetworking & HTTPCachingOperating SystemsData StructuresAPI DesignSecurityConcurrencyCloud & InfrastructureMonitoringTestingArchitecture PatternsJava

Core CS — Data Structures, Python Internals, Java, Operating Systems

The foundations. Interviewers probe these to check you're not just a framework user — that you understand what happens beneath the abstractions. Data structure questions test whether you know why a hash map is O(1) amortized, not just that it is. OS questions test whether you understand process scheduling, memory management, and I/O models. The trap: Candidates treat these as "junior topics" and skip them in senior prep, then stumble on a follow-up about how Python's GIL affects concurrency or how Java's garbage collector pauses affect latency-sensitive services.

Systems — System Design, Distributed Systems, Architecture Patterns

How things work at scale — increasingly the differentiator for senior roles. System design tests your ability to navigate from ambiguity to concrete architecture decisions. Distributed systems tests your understanding of consensus, replication, and failure modes. Architecture patterns tests whether you can pick the right pattern (event-driven, CQRS, microservices) for the right problem. The trap: Name-dropping technologies without justifying why they fit the specific problem.

Data — Databases & SQL, Caching

Storage, retrieval, and the tradeoffs between consistency and performance. Database questions test indexing strategies, normalization decisions, and the SQL vs. NoSQL decision framework. Caching tests invalidation strategies, consistency models, and when a cache makes things worse (low hit rate, write-heavy workloads). The trap: Adding a Redis cache to every design without discussing invalidation or quantifying the hit rate.

Infrastructure — Networking & HTTP, Cloud & Infrastructure, Security, Monitoring

The operational side — can you reason about what happens in production? Networking tests your understanding of TCP, DNS, TLS, and HTTP/2. Cloud tests deployment models, container orchestration, and infrastructure-as-code tradeoffs. Security tests authentication flows, encryption, and common vulnerabilities. Monitoring tests observability, alerting, and SLO definitions. The trap: Treating infrastructure as "someone else's problem" — senior engineers are expected to reason about the full stack.

Practice — Concurrency, API Design, Testing

Cross-cutting concerns that show up in every real system. Concurrency tests thread safety, deadlock prevention, and async patterns. API design tests REST vs. gRPC, versioning strategies, and backward compatibility. Testing tests pyramid strategy, integration vs. unit tradeoffs, and testing in distributed systems. The trap: Knowing the theory but having no opinion about how these concerns interact in real codebases.

Example Questions with Scoring Breakdown

"Explain the difference between optimistic and pessimistic locking in databases. When would you choose each?"

  • Strong answer covers: How pessimistic locking acquires locks before reading (SELECT FOR UPDATE), how optimistic locking uses version numbers to detect conflicts at write time, performance implications under high vs. low contention, and a concrete example for each (e.g., seat booking = pessimistic, wiki editing = optimistic).
  • Common miss: Describing the mechanisms without addressing the contention tradeoff — optimistic locking performs better under low contention but causes expensive retries under high contention.

"What happens when you type a URL in your browser? Walk through the full request lifecycle."

  • Strong answer covers: DNS resolution (recursive resolver, caching layers), TCP three-way handshake, TLS negotiation (certificate verification, key exchange), HTTP request/response, and rendering. Bonus: mention connection reuse (keep-alive) and HTTP/2 multiplexing.
  • Common miss: Stopping at "DNS resolves the domain." Interviewers want the full chain — each layer reveals how well you understand networking fundamentals.

"Explain the difference between a mutex and a semaphore. When would you use each?"

  • Strong answer covers: Mutex = binary lock for mutual exclusion (one thread at a time), semaphore = counting mechanism for limiting concurrent access. Ownership semantics (mutexes are owned by the locking thread, semaphores are not). Real examples: mutex for protecting a shared data structure, semaphore for connection pool limiting.
  • Common miss: Treating a binary semaphore as identical to a mutex — they differ in ownership and intended use.

"Design a URL shortening service. What are the key decisions?"

  • Strong answer covers: ID generation strategy (sequential vs. hash-based), the encoding scheme (base62), read-heavy access pattern implications (caching, read replicas), analytics requirements, and expiration/cleanup. Back-of-envelope math on storage and QPS.
  • Common miss: Jumping straight to architecture without discussing scale requirements. How many URLs per day? How long must they persist? These constraints change every downstream decision.

"What is CSRF and how do you prevent it? How does it differ from XSS?"

  • Strong answer covers: CSRF exploits the browser's automatic cookie attachment to forge requests on behalf of an authenticated user. Prevention: synchronizer tokens, SameSite cookies, origin header checks. XSS injects malicious scripts into pages viewed by other users. The key difference: CSRF exploits the server's trust in the browser, XSS exploits the user's trust in the site.
  • Common miss: Confusing the two attacks or describing prevention for one while naming the other.

"Compare event-driven architecture with request-response. When does event-driven make things worse?"

  • Strong answer covers: Decoupling benefits (producers don't wait for consumers), eventual consistency implications, debugging difficulty (distributed tracing becomes essential), when synchronous request-response is simpler and more appropriate (low-latency user-facing flows), and the operational cost of running message infrastructure.
  • Common miss: Presenting event-driven as universally superior. The best answers explain when the complexity isn't worth it.

Common Mistakes That Kill Your Score

  1. Studying breadth instead of depth. Knowing 16 topics shallowly is worse than knowing 8 topics deeply. Interviewers dig into your answers with follow-up questions — shallow knowledge collapses immediately. Pick your target domains and go deep enough to handle "why?" three levels down.
  2. Reciting definitions instead of explaining mechanisms. "A B-tree is a self-balancing tree data structure" is a definition. "A B-tree keeps data sorted and maintains balance by splitting nodes when they overflow, which guarantees O(log n) lookups even as the dataset grows" is an explanation. Interviewers can tell the difference instantly.
  3. Not connecting concepts to real systems you've worked on. When you explain caching, reference a caching problem you actually solved. When you discuss database indexing, mention a slow query you diagnosed. Concrete experience is what separates a senior answer from a textbook answer.
  4. Ignoring the "when NOT to use X" dimension. Every concept has failure modes. If you can only explain when to use something but not when to avoid it, you don't understand it well enough. Interviewers specifically test this: "When would you NOT use a microservices architecture?"
  5. Treating interview prep as memorization instead of understanding-building. You memorize that "CAP theorem says you can only have two of three." Then the interviewer asks for a concrete example where you'd sacrifice consistency for availability, and you freeze. Understanding means you can apply concepts to novel situations.

How to Study Technical Concepts Effectively

Cramming fails for technical interviews because the material is conceptual, not factual. You can't memorize your way through a follow-up question about why consistent hashing handles node failures better than modular hashing. You need durable understanding — and that requires spaced repetition.

If you have 1 week

Pick your 3 weakest domains and focus exclusively on those. For each, write a one-paragraph explanation of the 3-4 most important concepts. If you can't explain it without notes, you don't know it. Prioritize domains your target role emphasizes — backend roles weight databases and system design heavily.

If you have 2-4 weeks

Systematic coverage with the 60/40 rule: spend 60% of your time on active recall (practice questions, explaining concepts out loud, writing answers) and 40% on reading. Most people invert this ratio, reading for hours and practicing for minutes. Active recall is harder and less comfortable — which is exactly why it works. Cover 2-3 domains per week.

If you have 1 month+

Add practice explanations: write or speak your answers, don't just think them. Record yourself explaining a concept for 2 minutes, then listen back. You'll catch gaps you didn't notice while thinking silently. This is the closest simulation of interview conditions you can do solo. At this stage, also practice connecting concepts across domains — how caching interacts with consistency, how API design decisions affect system scalability.

What to read per domain cluster

Core CS: "Introduction to Algorithms" (CLRS) for data structures, official Python/Java docs for language internals, "Operating Systems: Three Easy Pieces" (free online) for OS concepts. Systems: "Designing Data-Intensive Applications" (DDIA) by Martin Kleppmann — the single best technical interview resource. Data: "Use the Index, Luke" (free online) for database indexing, Redis documentation for caching patterns. Infrastructure: "High Performance Browser Networking" (free online) for networking, OWASP Top 10 for security. Practice: "Java Concurrency in Practice" for concurrency, company engineering blogs for real-world API and testing decisions.

Technical Interview Prep: What's Out There

GeeksforGeeks is comprehensive reference material but passive — reading articles doesn't build the recall you need under pressure. LeetCode covers coding interview questions well but doesn't touch the conceptual domains (databases, networking, security, cloud). Educative.io has good courses with interactive exercises, but no spaced practice to ensure retention. Textbooks like DDIA are deep and essential reading, but again passive — you need to actively test yourself on the material.

GrindQuestionsAI fills the gap between passive learning and active practice. Open-ended questions across all 16 domains, graded by AI against expert-defined criteria, with spaced repetition scheduling so concepts stick past your interview date.

Frequently Asked Questions

How many domains does technical interview practice cover?

16 engineering domains, from foundational computer science (data structures, operating systems) to applied practice (API design, testing, concurrency). The breadth matters because real interviews cross domain boundaries — a system design question might probe your database knowledge, networking understanding, and security awareness in a single conversation.

What do interviewers actually test in technical rounds?

Whether you understand the "why" behind your tools. Junior candidates need correct answers. Mid-level candidates need tradeoff reasoning. Senior candidates need experience-informed judgment. The common thread: can you explain complex concepts clearly, connect them to real systems, and handle follow-up questions that go deeper?

Should I study all 16 domains or focus on a few?

Focus on 6-8 domains that matter for your target role, and go deep. A backend role needs strong databases, distributed systems, caching, and system design. A full-stack role needs API design, security, and networking depth. Check FAANG interview prep for company-specific emphasis.

How is this different from coding interview practice?

Coding interviews test implementation skill — can you solve the problem? Technical interviews test conceptual understanding — can you explain how and why the solution works? Both are tested in most interview loops, and the conceptual round increasingly determines seniority calibration.

Can AI grading really evaluate technical depth?

Each question has expert-defined scoring criteria covering the specific points a senior interviewer would expect. The AI evaluates whether your answer covers key concepts, demonstrates real understanding (not keyword matching), and addresses tradeoffs. An AI interview coach then probes gaps with follow-up questions — the same way a human interviewer would.

Start practicing for free

Free assessment with AI grading. No signup required.

Start Free Assessment
GrindQuestionsAITechnical interview assessment
TermsPrivacyAboutBlog
Interview PrepCoding QuestionsBehavioral QuestionsSystem Design InterviewFAANG PrepAI Interview CoachAI Mock InterviewSTAR Method