Revision
Cheat sheets
122 cheat sheets and notes
All cheat sheets
122 results
- ArticleFree
Generic Constraints in C#: Design Contracts for Type Parameters
Learn how C# generic constraints define the capabilities a type argument must provide, enabling safer APIs, better compiler checks, and clearer intent.
C# Language
- ArticleFree
Materialization with ToList: Snapshotting LINQ Results
Learn how ToList() forces immediate LINQ execution, captures a snapshot of results, and avoids repeated reevaluation when the source changes later.
C# Language
- ArticleFree
Grouping with GroupBy and Common Aggregates in LINQ to Objects
Learn how to group in-memory collections with GroupBy and compute common aggregates like Count, Sum, Average, Min, and Max for reporting and interview-style problems in LINQ to Objects.
C# Language
- ArticleFree
Select vs SelectMany in LINQ to Objects: Projection or Flattening
Learn how to choose between Select and SelectMany in LINQ to Objects by recognizing when you want one output per input versus flattening nested sequences into a single stream.
C# Language
- ArticleFull Access
Generics, Delegates, Events and Iterators in C#
Type parameters and constraints, delegates and events, and how iterators and the yield keyword work.
C# Language
- ArticleFree
C# Records, Value Equality, and with-Expressions for Interviews
A deep interview-ready lesson on C# records, how value equality differs from reference equality, and how with-expressions support safe nondestructive copying.
C# Language
- ArticleFree
ConcurrentDictionary: Thread Safety Is Not Workflow Atomicity
How to reason about ConcurrentDictionary operations, delegates, duplicate work, and multi-step invariants in production and interviews.
.NET Runtime and Concurrency
- ArticleFree
How an ASP.NET Core Request Actually Flows
Middleware order can explain unexpected 401 responses. A diagrammed walk through the pipeline, short-circuiting, and three ordering bugs worth recognising.
ASP.NET Core
- ArticleFull Access
IEnumerable, IEnumerator and IAsyncEnumerable in C# (with yield)
How foreach and the iterator pattern work under the hood, how yield builds iterators, and how IAsyncEnumerable streams data asynchronously.
C# Language
- NoteFree
Composition over Inheritance: A Practical Design Checklist
A concise design note on choosing collaborators instead of fragile class hierarchies, with a notification example, trade-offs, and interview checkpoints.
Architecture and Design in .NET
- ArticleFree
DRY in C#: Share Business Rules Without Over-Coupling Unrelated Code
Learn how to apply DRY in C# by sharing real business rules, such as pricing logic, while avoiding the mistake of forcing unrelated code into one abstraction that creates tighter coupling and brittle change paths.
Architecture and Design in .NET
- ArticleFree
FrozenDictionary and FrozenSet: Snapshots and Mutation Traps
Learn how to build immutable, lookup-optimized snapshots with FrozenDictionary and FrozenSet, preserve equality semantics, avoid mutation traps, and decide when freezing is worthwhile.
C# Language
- ArticleFree
Frozen Collections in .NET: Comparers and Trade-offs
Understand how .NET frozen collections turn completed data into stable lookup snapshots, how comparer choices define their behavior, and when their construction cost is justified by repeated reads.
C# Language
- NoteFree
ASP.NET Core API Resilience: Timeouts, Retries, and Circuit Breakers
A production-focused guide to timeout budgets, safe retries, circuit breakers, cancellation, observability, and common .NET interview traps.
ASP.NET Core
- ArticleFree
Designing Timeout Budgets for .NET APIs: A Practical Worksheet
A production-focused method for dividing end-to-end API deadlines across application work, dependencies, retries, cancellation, cleanup, and safe degradation.
ASP.NET Core
- ArticleFree
Designing Retry Budgets and Backpressure for Resilient HTTP APIs
Learn how bounded retries, end-to-end deadlines, admission controls, circuit breakers, queues, and explicit backpressure work together to prevent overloaded HTTP services from collapsing.
Architecture and Design in .NET
- ArticleFree
Adapter vs Facade for Checkout Integrations: Pick the Right Boundary
Learn how to choose between Adapter and Facade when integrating a payment provider into a checkout flow, including intent, dependency direction, migration trade-offs, and common interview pitfalls.
Architecture and Design in .NET
- ArticleFree
Choosing Adapter or Facade for Legacy-Service Migration Boundaries
Learn how Adapter and Facade solve different integration problems, how dependency direction and ownership shape the choice, and when both patterns—or neither—belong in a legacy-service migration.
Architecture and Design in .NET
- ArticleFree
Production-Safe HMAC Authentication and Verification in C#
Learn how to authenticate message integrity with HMAC-SHA-256 in C#, manage server-side keys, avoid canonicalization errors, rotate keys, and verify tags without timing-sensitive comparisons.
ASP.NET Core
- ArticleFull Access
Learning Recursion Before Backtracking and Dynamic Programming in C#
Why recursion comes before backtracking and dynamic programming, how many problems to solve first, and worked recursion problems in C#.
Coding and System-Design Practice in C#