Interview Prep
Real questions for real interviews. C#, Python, Go. Junior → System Design.
Quiz me →C# / .NET
Junior
- What is the difference between value types and reference types in C#?
- Find all duplicate integers in an array in O(n) time
- Tell me about a time you worked through a difficult bug or exception
- What is the difference between an interface and an abstract class in C#?
- What is boxing and unboxing in C#, and why is it a performance concern?
- Two Sum — return indices of two numbers that add up to a target
- Check if a string is a palindrome (ignoring case and non-alphanumeric characters)
- Tell me about a time you explained a technical decision to a non-technical stakeholder
Mid-level
- How does async/await work under the hood in C#? What is the state machine?
- Implement a generic LRU Cache with O(1) get and put operations
- What is the difference between IEnumerable<T> and IQueryable<T>?
- What is dependency injection (DI) and how does ASP.NET Core's built-in container work?
- Explain delegates, Func, Action, and events in C# — when do you use each?
- Merge overlapping intervals from a list of [start, end] pairs
- Tell me about a time you significantly improved the performance of a system
- What is middleware in ASP.NET Core and how is the pipeline composed?
Senior
- Explain the .NET Garbage Collector — what are the generations and what triggers a Gen 2 collection?
- Implement a bounded producer-consumer queue using System.Threading.Channels
- Describe a significant architectural decision you made under uncertainty
- What are Span<T> and Memory<T> in C#, and when should you use them?
- Implement a thread-safe lazy singleton and explain Lazy<T>
System Design
- Design a distributed rate limiter for an API gateway handling 100,000 requests per second
- Design an event-sourced order management system for an e-commerce platform
- Design a URL shortener service (high availability, 100M URLs, 10k reads/sec)
- Explain the CAP theorem and how it applies to distributed .NET services
- Describe how you would approach a high-stakes technical decision with significant uncertainty