Why .NET interviews feel harder than they are
We have coached hundreds of candidates through .NET hiring loops at startups and enterprise teams. The pattern is consistent: strong developers stumble not because they lack skills, but because they prepare randomly. You might drill LeetCode for two weeks while ignoring dependency injection, or memorize SOLID definitions without tying them to code you actually wrote. In 2025, interviewers expect you to connect language features, framework choices, and trade-offs in the same breath.
This guide is the sequence we use internally at Toolliyo when someone asks, "I have three weeks—what do I focus on?" Follow it in order if you are starting from scratch, or jump to weak sections if you already have experience.
Week 1: C# and .NET fundamentals that always come up
Value types, reference types, and memory
Expect questions on struct vs class, boxing, stack vs heap, and when readonly struct matters. You should explain why passing large structs by value can hurt performance and when records (record class, record struct) simplify immutable models.
public record OrderLine(Guid ProductId, int Quantity, decimal UnitPrice)
{
public decimal LineTotal => Quantity * UnitPrice;
}
Interviewers often follow with: "What happens if you mutate a record?" Know that positional records give you value-based equality and concise syntax, but you still need to understand copy semantics.
Async/await and threading
Never say "async makes code faster." Say: async frees threads while waiting on I/O. Be ready to discuss ConfigureAwait(false) in library code, deadlocks from blocking on .Result, and why Task.Run is not a fix for blocking database calls.
- Explain the thread pool and why ASP.NET Core handles concurrent requests without one thread per request.
- Describe cancellation tokens and where you pass
CancellationTokenin EF Core and HttpClient calls. - Mention
IAsyncEnumerable<T>for streaming large result sets.
LINQ, IEnumerable, and IQueryable
Know deferred execution. A classic trap: filtering in memory after materializing an entire table. Practice explaining when EF translates LINQ to SQL and when it does not.
Week 2: ASP.NET Core, APIs, and security
Request pipeline and middleware
Draw the pipeline from Kestrel through routing, authentication, authorization, and endpoints. Interviewers love "where would you add correlation IDs?" or "how do you handle global exceptions?" Have a concrete answer: custom middleware or IExceptionHandler in .NET 8+.
Dependency injection lifetimes
Memorize the three lifetimes and one anti-pattern:
- Transient — new instance every resolution; good for lightweight stateless services.
- Scoped — one per HTTP request; use for DbContext and unit-of-work patterns.
- Singleton — one for app lifetime; must be thread-safe; never inject scoped into singleton.
Captive dependency (singleton holding scoped) is a common follow-up. Explain how you would detect it in logs or with validation at startup.
Authentication vs authorization
JWT bearer tokens, cookie auth, OpenID Connect—pick the stack you have used and go deep. For APIs, cover token validation, refresh strategies, and why you store secrets in Azure Key Vault or similar, not appsettings in source control.
Week 3: Data access, SQL, and system thinking
Entity Framework Core essentials
You do not need to be an EF guru, but you must explain migrations, tracking vs no-tracking queries, N+1 problems, and when raw SQL or Dapper is appropriate. Walk through fixing an N+1 with .Include() or projection with .Select().
SQL skills interviewers still test
Indexes, clustered vs non-clustered, execution plans at a high level, JOIN types, and window functions for reporting queries. Write a query that returns the second-highest salary per department—then explain whether your index strategy supports it.
Light system design for mid-level roles
Practice one design: "Build a URL shortener" or "Design an order processing API." Cover REST boundaries, idempotency keys, message queues for slow work, and caching with clear invalidation rules. You are not expected to design Netflix at most .NET mid-level loops—show structured thinking.
Behavioral and culture rounds
Use STAR (Situation, Task, Action, Result) but sound like a human. Prepare three stories: a production incident you helped resolve, a disagreement about technical direction, and a time you improved code quality or delivery speed. Quantify results when possible: "Reduced p95 latency from 800ms to 220ms by adding a read-through cache and fixing two N+1 queries."
Mock interview checklist
- Explain a recent project architecture in five minutes without jargon overload.
- Live-code a small API endpoint with validation and proper HTTP status codes.
- Debug a snippet with a DI lifetime bug or async deadlock.
- Whiteboard database schema for a feature you shipped.
- Ask the interviewer two thoughtful questions about team practices and on-call expectations.
Resources we actually recommend
Official Microsoft docs for ASP.NET Core and EF Core, Jon Skeet's C# in Depth for language depth, and one structured course for gaps—not twelve random YouTube playlists. Pair reading with building a small portfolio API deployed to Azure or Docker so you can speak from shipped code.
Interview prep is a project with a deadline. Block daily time, record yourself answering aloud, and fix weak answers the same day. You already know more than you think; the job is to make that visible in forty-five minutes.