.NET Developer Interview Questions | Kore BPO
Nearshore Hiring

.NET Developer Interview Questions: What to Ask at Each Stage

August 17, 2026
9 min read
Last updated: August 17, 2026
Engineering manager conducting video interview with .NET developer candidate on laptop in modern office
Quick Answer
What are the best .NET developer interview questions?
The best .NET developer interview questions test C# language depth (async/await, LINQ, pattern matching), ASP.NET Core architecture decisions (middleware ordering, DI scopes), and Entity Framework Core query optimization. For nearshore roles specifically, they also test English communication quality, since async written communication determines daily collaboration effectiveness.
Test actual C# version fluency, not generic OOP trivia
Include one live coding exercise, not just verbal questions
Ask about specific EF Core versions and migration patterns used in production
See full interview guide at korebpo.com/nearshore-net-developers/

Last updated: August 17, 2026

Most .NET developer interviews default to the same recycled OOP quiz: explain the four pillars of object-oriented programming, what is the difference between an abstract class and an interface, describe the SOLID principles. These are fine surface checks. However, they do not predict whether a developer will ship clean ASP.NET Core APIs, write performant Entity Framework Core queries, or communicate effectively across a Costa Rica to US time zone gap.

The questions below are organized by interview stage. Each stage tests a different dimension of the hire, from C# language depth to real-time English, to system design judgment. For nearshore .NET roles specifically, the communication screen comes first, not last. It is the most predictive factor for long-term team integration, and it is also the easiest to schedule.


Why Standard Interview Questions Fail for .NET Roles

The .NET ecosystem spans an unusually wide range of developer experience levels. A developer who has spent five years maintaining a legacy WCF service on .NET Framework 4.7 is not the same hire as someone building minimal APIs on .NET 8. Generic OOP questions do not surface this distinction. Instead, they produce false positives: candidates who answer confidently because they memorized the same interview prep content your previous 12 candidates studied.

Version fluency separates the real hires. Ask specifically about the C# version they worked with most recently, what language features they use day to day, and what they read when a new .NET version releases. Developers who are genuinely current will mention specific C# 10, 11, or 12 features. Developers who are not will speak in generalities. This single line of questioning cuts through more noise than a two-hour verbal quiz on design patterns.

Framework depth matters as much as language depth. ASP.NET Core’s middleware pipeline, dependency injection lifetime scopes, and minimal API routing are not interchangeable knowledge with MVC controller patterns. A developer who has only worked in controller-based routing will stumble on middleware ordering questions. As a result, they will need significant ramp time on a team that has moved to minimal APIs. Know your stack before you build the interview.

For nearshore roles, communication is a technical skill. A .NET developer on a Costa Rica-based nearshore team writes more than they speak. They communicate through pull request comments, Jira updates, Slack threads, and async messages that their US counterparts read at 9 AM the next morning. Poor written communication in a nearshore context does not show up in a video interview, where you carry most of the conversation. So you have to design for it.


Stage 1: English and Communication Screen

Run this before the technical screen. It takes 20 to 30 minutes and it saves everyone time if the communication quality is not there. This is not an English proficiency test in the academic sense. Instead, you are evaluating whether the developer can explain a technical decision clearly in writing. You are also checking whether they ask a clarifying question without prompting and structure a response so you can follow it without needing a follow-up for every sentence.

Live Communication Questions

Communication Question
Tell me about a .NET project you worked on recently. What was the business problem, what did you build, and what would you do differently now?
Tests: spoken English clarity, ability to explain technical context to a non-expert, and self-awareness about technical decisions. Strong candidates structure their answer: problem first, solution second, reflection third. Candidates who describe the technology stack in detail before explaining the business problem are showing a communication pattern. It surfaces later as hard-to-read PR descriptions and context-free Slack messages.
Communication Question
You are blocked on a ticket and cannot reach your US-based team lead until tomorrow morning. Walk me through exactly what you would do.
Tests: async communication behavior and initiative. Strong candidates describe a specific action: document what they tried, what the blocker is, and what they need in a Jira comment or Slack message. Then they pivot to a parallel task they can make progress on. Candidates who say “I would wait” or “I would send a message and stop working” are showing a pattern instead, and that pattern costs nearshore teams entire lost days of output.
Communication Question
How do you handle a situation where you think a technical requirement is unclear or possibly wrong?
Tests: proactivity and written communication behavior. Good answers describe asking a specific, concise clarifying question in writing before starting work. They also cover what information the candidate includes so the team lead can answer without needing a back-and-forth. Candidates who say they would start building their best interpretation and show it later are creating rework that did not need to happen.

Written Communication Assessment

Async Writing Test
Send this as a written exercise before the technical stage: Describe an ASP.NET Core architectural decision you made in a real project. What trade-offs did you consider, and what would you do differently with what you know now? Give the candidate 24 hours and a 300-word limit.
Tests: written English quality, technical reasoning depth, and self-awareness. The word limit matters. It forces candidates to prioritize. Strong responses are structured with clear sentences, specific technical detail, and honest reflection. Vague responses full of buzzwords with no concrete detail tell you exactly how this person will write Jira tickets and PR descriptions on your team.

Stage 2: C# Language and OOP Questions

This stage belongs in the first 30 to 45 minutes of the technical screen. The goal is to establish that the candidate’s C# fundamentals are current enough for a modern production codebase, without constant re-education. Strong candidates answer quickly and often add context you did not ask for. By contrast, hesitation on the fundamentals questions at mid-senior level is a signal worth noting.

Core Language Fundamentals

Software developer working through C# technical coding exercise on laptop during .NET interview
C# Question
Explain the difference between Task and ValueTask. When would you use one over the other?
Tests: async/await depth and performance awareness. Good answers explain that Task is a heap-allocated reference type appropriate for most async operations. ValueTask, by contrast, is a struct designed for high-frequency, hot-path methods that often complete synchronously, like cache lookups. The performance benefit only materializes in the synchronous completion case. Candidates who say “they are basically the same” are missing the context that matters for high-throughput APIs.
C# Question
When would you use a struct instead of a class? What are the risks?
Tests: value type vs. reference type understanding. Good answers cover the stack allocation advantage for small, short-lived data, such as coordinates, color values, or measurement units. They also cover the risk of accidental copying in method calls and collections, and the requirement that structs be immutable by design when used as value types. Mid-senior candidates should also know about readonly struct and the Span<T> context where struct performance really matters.
C# Question
Walk me through a real example of pattern matching you have used in production C# code.
Tests: modern C# feature adoption and practical application. The “in production” qualifier is important. Good answers reference switch expressions, property patterns, or positional patterns applied to a real domain problem, such as routing command types or mapping discriminated union-style results. Candidates who only know the basic is type check from C# 7 have not kept pace with the language evolution from C# 8 through 12.

Advanced Type System Questions

C# Question
What is the difference between IEnumerable<T> and IQueryable<T>? Where does this matter most?
Tests: LINQ and ORM fundamentals, which are essential for Entity Framework Core. Good answers explain that IEnumerable<T> executes in memory after data is fetched. IQueryable<T>, on the other hand, builds an expression tree that gets translated into SQL by the ORM provider. Calling Where() on an IEnumerable after a database fetch means the entire table loaded into memory before filtering happened. This is one of the most common sources of N+1 and over-fetch bugs on .NET teams.
C# Question
How does C#’s nullable reference type system (introduced in C# 8) change how you write and review code?
Tests: null safety awareness and code quality habits. Good answers explain that enabling nullable reference types makes nullability part of the type system. As a result, the compiler warns when you dereference a potentially null reference without checking. Mid-senior candidates describe how they approach enabling it incrementally on an existing codebase using the nullable directive, and how they use null-forgiving operators sparingly. Developers who have never thought about this are writing code that defers null reference exceptions to runtime.
C# Question
Explain how generics work in C# and give a real use case where you created a generic type or method.
Tests: language depth and reusability thinking. Good answers cover type safety without boxing, constraints (where T : class, where T : IComparable), and a concrete example like a generic result wrapper, a repository interface, or a reusable validator. Candidates who have only consumed generic collections but never written a generic type have not pushed their C# skills past the tutorial level.

Skip the Screening Overhead

Kore BPO pre-screens nearshore .NET developers through 5 technical stages before you interview. Costa Rica profiles in 2 to 5 business days.

See Screened Candidates

Stage 3: ASP.NET Core and API Design Questions

ASP.NET Core is deep. The framework has changed substantially from the MVC-centric .NET Framework days to the minimal API, top-level program model of .NET 6 through 8. Consequently, these questions test whether the candidate understands how the framework actually works, not just how to copy a controller template from a tutorial.

Framework Fundamentals

ASP.NET Core Question
Explain the ASP.NET Core middleware pipeline. How does middleware ordering affect request processing?
Tests: framework fundamentals. Good answers explain that the pipeline is a sequence of middleware components, each deciding whether to call the next component or short-circuit the response. Ordering matters concretely. For example, authentication middleware must run before authorization middleware, and exception handling middleware should be registered first so it wraps the entire pipeline. Candidates who cannot explain why the order matters have not debugged a real middleware misconfiguration.
ASP.NET Core Question
Explain the difference between Singleton, Scoped, and Transient service lifetimes in ASP.NET Core DI. What goes wrong when you get this wrong?
Tests: dependency injection depth and production bug awareness. Good answers cover Singleton (one instance for the application lifetime), Scoped (one instance per HTTP request), and Transient (new instance every time). The real test, however, is whether they know the captive dependency problem. Injecting a Scoped service into a Singleton is a bug that causes data leakage across requests, and ASP.NET Core’s DI container validates this in development mode. Candidates who say “it is about performance” are missing the correctness dimension.
ASP.NET Core Question
How does minimal API routing in .NET 6+ differ from controller-based MVC routing? When would you choose one over the other?
Tests: modern .NET awareness and architectural judgment. Good answers explain that minimal APIs reduce ceremony by mapping endpoints directly in Program.cs without controller classes. This improves startup performance for microservices or small APIs. Controller-based MVC, by contrast, remains appropriate for larger applications that benefit from attribute routing conventions, filters, and model binding infrastructure. Candidates who do not know minimal APIs exist have not kept pace with .NET 6 through 8 release cycles.

Production API Patterns

ASP.NET Core Question
What is the difference between IHostedService and BackgroundService? When would you use each?
Tests: background processing knowledge. Good answers explain that IHostedService is the raw interface requiring you to implement both StartAsync and StopAsync manually. BackgroundService, by contrast, is an abstract base class that handles the plumbing and exposes a single ExecuteAsync method. For most background task scenarios, BackgroundService is the right starting point. Candidates should also know that neither replaces a proper distributed task queue for workloads that need retry logic, durability, or fan-out.
ASP.NET Core Question
How would you implement rate limiting in an ASP.NET Core API? What options does .NET 7 and later provide natively?
Tests: .NET version currency and production API design. Good answers mention the built-in rate limiting middleware introduced in .NET 7, including fixed window, sliding window, token bucket, and concurrency limiters, configured via AddRateLimiter and UseRateLimiter. Beyond that, strong candidates know when to use the built-in middleware versus a Redis-backed distributed rate limiter for multiple API instances behind a load balancer. Candidates who only know third-party packages have not checked what .NET now provides out of the box.
ASP.NET Core Question
How do you structure error handling and problem details responses in an ASP.NET Core API?
Tests: API design consistency and RFC 7807 awareness. Good answers describe using the built-in problem details support via AddProblemDetails() in .NET 7+, or a custom exception handling middleware that maps domain exceptions to structured HTTP responses. Beyond that, strong candidates note that consistent error shapes matter for client developers, and they describe how they document error types in the API contract. Candidates who return bare 500 responses with exception messages have created security and usability problems.

Stage 4: Entity Framework Core and Database Questions

Entity Framework Core is where most .NET production bugs live. N+1 queries, over-fetching, missing index hints, and migration conflicts on active teams are all EF Core problems. They show up in code review and production alerts, not in generic SQL interviews. These questions test whether the candidate has actually hit these problems in production, not just read about them.

Query Performance Questions

EF Core Question
How do you identify and fix an N+1 query problem in Entity Framework Core?
Tests: ORM performance fundamentals. Good answers explain the pattern: a query returns a list of entities, then each entity triggers a separate query for its related data when accessed in a loop. The fix is eager loading with Include() and ThenInclude() to join related data in one query, or explicit loading where selective. Strong candidates also mention using a logging provider or SQL profiler to see the actual queries generated. N+1 problems are often invisible otherwise, until you look at what EF Core is sending to the database.
EF Core Question
What is the difference between Include() and ThenInclude()? When do you need ThenInclude()?
Tests: EF Core navigation and eager loading fluency. Good answers explain that Include() loads a direct navigation property, one level deep, while ThenInclude() continues from a previously included type to load nested navigation properties. The chaining matters, for example, when you need an order with its line items and each line item’s product in one query. Candidates who have never needed ThenInclude() have not worked with deeply related domain models in production.

Schema and Version Questions

EF Core Question
Walk me through how you manage EF Core migrations in a team environment with multiple developers committing to the same branch.
Tests: team workflow awareness for schema changes. Good answers describe migration conflicts that occur when two developers add migrations against the same last migration. This results in duplicate migration snapshots. Strong candidates then describe their team’s process: applying migrations at deployment time rather than application startup, reviewing generated migration SQL before merging, and using a dedicated migration branch or squashing migrations at sprint boundaries. Candidates who say “we just run migrate” without a process have caused schema drift incidents they may not even know about.
EF Core Question
What changed between EF Core 6 and EF Core 7 or 8 that affected your day-to-day work?
Tests: version currency and genuine hands-on engagement with the framework. Strong answers mention concrete features, such as bulk update and delete via ExecuteUpdateAsync/ExecuteDeleteAsync in EF Core 7, which eliminates the need to load entities just to delete them. JSON column mapping and raw SQL improvements are also good signals. Candidates who cannot name a single EF Core 7 or 8 feature have not been paying attention to the framework they use daily. This does not disqualify them, but it tells you their depth ceiling.
EF Core Question
When would you bypass EF Core and write raw SQL? How do you do this safely?
Tests: pragmatic ORM judgment. Good answers describe scenarios where EF Core’s query translation produces inefficient SQL, for example with complex aggregations, window functions, or bulk operations. In those cases, a raw query or stored procedure is the right tool. Safe execution via FromSqlRaw() with parameterized queries or Database.ExecuteSqlRawAsync() prevents SQL injection. Candidates who say “I never use raw SQL, EF handles everything” have not hit a query complexity threshold that required it. Otherwise, they shipped slow code instead of fixing the root cause.

Stage 5: System Design and Architecture Questions

Relaxed professional interview conversation between hiring manager and .NET developer candidate in office

System design questions for .NET developers should reflect the scope of what the candidate will own. A developer who will join an existing microservice team needs different questions than one who will greenfield a new service. Calibrate the complexity to the role seniority and be explicit about constraints. Candidates who design without asking about scale, latency requirements, or budget are showing a gap in how they approach real engineering decisions.

System Design and Debugging Questions

System Design Question
Design a background processing system in .NET for executing async jobs submitted via an API endpoint. The jobs can take anywhere from 2 seconds to 5 minutes. What does your architecture look like?
Tests: distributed systems judgment for a common .NET pattern. Good answers describe an API that immediately returns a job ID and a persistent queue, such as Azure Service Bus or RabbitMQ. They also describe a worker service consuming the queue via BackgroundService or a separate worker process, plus a status endpoint for polling job completion. Strong candidates raise questions about retry behavior, dead letter queues, and whether job status needs to survive a worker restart. Candidates who describe doing all processing synchronously in the API response have not thought through what happens when the job takes four minutes.
System Design Question
Your ASP.NET Core API is experiencing slow response times under high load. Walk me through your diagnosis and remediation process.
Tests: production debugging mindset and .NET-specific knowledge. Good answers start with observability: check Application Insights traces or distributed tracing to see where time is being spent before touching code. From there, .NET-specific suspects include thread pool starvation from sync-over-async patterns, excessive allocations causing GC pressure visible in memory metrics, EF Core query over-fetching, and connection pool exhaustion on database or HttpClient. Candidates who jump immediately to “add more servers” without a diagnosis step are expensive to have in production.

Architecture and Scalability Questions

System Design Question
How would you structure a .NET solution for a team of five developers working on a medium-complexity API? What project organization and layers would you use?
Tests: architecture judgment and team collaboration experience. Good answers describe a layered or clean architecture with clear separation between API, application/business logic, and data access, without over-engineering for a team of five. Strong candidates also mention what they would NOT do at this scale, such as separate microservices before the domain boundaries are clear, or complex CQRS infrastructure for simple CRUD operations. Developers who immediately reach for the most complex architectural pattern they know, regardless of team size, add friction without proportional benefit.
System Design Question
How do you approach adding caching to a read-heavy .NET API? What would you cache and what would you not?
Tests: caching strategy and consistency thinking. Good answers cover in-memory caching with IMemoryCache for single-instance scenarios and distributed caching with Redis via IDistributedCache for multi-instance deployments. The harder part, however, is cache invalidation. Strong candidates address TTL strategy, cache-aside versus write-through patterns, and what happens to cached data when the underlying record changes. Candidates who say “cache everything” without discussing invalidation are building a data consistency problem that will surface as a production support incident.

Culture Fit and Team Integration Questions

Three-person interview panel reviewing .NET developer candidate evaluation notes in conference room

These questions evaluate the collaboration behaviors that determine whether a nearshore .NET developer integrates into a US-based team or operates as an isolated contractor. None of them are generic culture questions. Instead, each one tests a specific behavior that shows up, or fails to show up, in the first 60 days of an embedded remote role.

Communication and Conflict Questions

Culture Fit Question
You receive a PR review from a senior developer who requests a significant refactor of an approach you are confident in. How do you handle it?
Tests: professional disagreement behavior and written communication. Good answers describe responding with a specific technical counter-argument in the PR thread and asking a clarifying question if the feedback is ambiguous. They also show the candidate being genuinely open to the senior developer’s reasoning, rather than performing openness while digging in. Red flag: candidates who say they would always defer without engaging, or candidates who describe escalating past the reviewer without first having a direct conversation.
Culture Fit Question
Describe your process when you are blocked on a ticket and cannot reach your team lead due to the time zone difference.
Tests: async self-management. Strong candidates describe a structured unblocking process: document the blocker with what they tried and what they need in Jira or Slack. Then they identify whether there is a lateral path they can take in the meantime, and set a clear handoff for when the team lead is online. The behavior to screen for is proactive written communication combined with productive use of blocked time. The behavior to screen out is waiting silently or sending a context-free “I’m blocked” message.

Initiative and Team Alignment Questions

Culture Fit Question
How do you approach onboarding yourself to an unfamiliar .NET codebase without a structured onboarding plan?
Tests: structured thinking and initiative. Good answers describe a systematic approach: read the README and architecture decision records first, then set up the local environment and run the test suite. From there, strong candidates trace a request from the API entry point through the service layer to the database, and identify the most actively changing areas of the codebase from git history. Candidates who say “I would ask a lot of questions” without a self-directed plan are showing dependency on hand-holding that is expensive in a nearshore context where overlap hours are limited.
Culture Fit Question
Tell me about a technical decision your team made that you disagreed with. What did you do?
Tests: professional engagement and communication maturity. Good answers show that the candidate raised their concern clearly, provided a technical rationale, and genuinely listened to the counter-argument before aligning with the team’s decision once it was made. The point is not that they won the argument. Rather, it is that they raised it constructively and moved on without ongoing passive resistance. Candidates who cannot recall a single technical disagreement have not been engaged with the codebase at the level a senior role requires.

Live coding exercise recommendation: Before the final round, give the candidate a 45-minute take-home or live coding task scoped to something real. For example: fix an N+1 EF Core query in a provided repository, add a rate-limited endpoint to a minimal API scaffold, or write a unit test for a service class with a mocked dependency. The output tells you more than two hours of verbal questions. So look at code organization, naming, and whether they write a test without being asked.

Frequently Asked Questions

Interview Structure and Technical Scope

How many interview rounds should a .NET developer process have?

Three to four structured stages is the right range. That includes a 20 to 30-minute communication and English screen, a 45 to 60-minute C# and framework technical session with a live coding or take-home component, a 30-minute system design conversation calibrated to the role seniority, and a 20-minute culture fit and team integration evaluation. More than four rounds loses strong candidates to faster-moving offers. Fewer than three, however, risks missing language depth gaps or EF Core anti-patterns that surface in the first sprint of real work.

Should I require .NET 8 experience specifically, or is .NET Framework background acceptable?

.NET Framework experience is acceptable as a foundation. However, it should not be the candidate’s most recent production experience if your team is on .NET 6, 7, or 8. The migration from the Framework to the modern .NET runtime involves real conceptual shifts, including no more System.Web, a different hosting model, top-level programs, and a significantly different configuration and DI system. Candidates who have worked exclusively on legacy Framework 4.x apps will need meaningful ramp time on any modern .NET stack. So ask directly about the most recent .NET version they deployed to production, and probe what they know about the current release’s features.

What is a realistic live coding exercise for a .NET developer interview?

Keep it scoped to 30 to 45 minutes and grounded in something realistic. For example, a useful exercise for mid-level roles is to provide a small ASP.NET Core API scaffold with an EF Core context. Show them a controller action with an obvious N+1 query and missing async/await, and ask them to fix both. For senior roles, ask them to add a new endpoint with rate limiting and a unit-testable service layer. Avoid abstract algorithm puzzles like reversing a linked list, since they predict nothing about .NET API development quality. What you want to see instead is how they read existing code, whether they write a test without prompting, and how they name things.

Communication Evaluation and Vetting

How do I evaluate English communication in a nearshore .NET developer interview?

Evaluate it across the entire interview rather than treating it as a separate checkbox. Watch whether the candidate volunteers context without being prompted, and whether they ask a clarifying question when a question is ambiguous instead of confidently answering the wrong thing. Also watch whether they structure multi-part answers so you can follow them, and send the 24-hour written async test before the final round. Written communication is a separate skill from spoken English fluency, and it is often the more important one. A developer who speaks well in a structured video call, but writes confusing Jira updates and PR descriptions, will create friction for the US team every day.

How does Kore BPO screen nearshore .NET developers before presenting profiles?

Kore BPO runs a five-stage process before a candidate reaches your interview. That includes a C# language fundamentals assessment covering modern language features, async patterns, and value vs. reference type semantics, plus a live coding exercise in ASP.NET Core or EF Core scoped to the client’s stack. It also includes a system design conversation calibrated to the role level, an async written communication evaluation using a 24-hour response exercise, and direct reference verification with prior US employers or clients. Candidates who reach your review have already passed all five stages. More detail on the process is at korebpo.com/nearshore-net-developers.

Disclosure: Kore BPO is a nearshore staffing agency. This guide reflects our direct experience screening .NET developers from Costa Rica for US engineering teams.

Brian Hunt CEO, Kore BPO
Brian Hunt
CEO & Co-Founder · Kore BPO

Brian Hunt is the CEO of Kore BPO, a US-owned nearshore and offshore staffing partner based in Dallas, TX. He has over a decade of experience placing .NET developers from Costa Rica and other nearshore locations with US companies. Along the way, he has built and refined the screening processes described in this guide.

Need a Pre-Screened .NET Developer?

Kore BPO delivers vetted Costa Rica candidates in 2 to 5 business days. No upfront fees.

Get .NET Developer Profiles
Same time zone  ·  C# & ASP.NET Core pre-screened  ·  $0 upfront