High Performance C#: Span and Memory

String manipulation in C# has historically been allocation-heavy. `Substring()` creates a new string on the heap. In high-throughput scenarios (web servers, parsers), this leads to Garbage Collection (GC) pauses. The Solution: Span<T> Span<T> is a struct that represents a contiguous region of memory. It can point to part of a string or array without allocating […]

Read more →
Posted in Uncategorized

Azure Durable Functions: Fan-Out/Fan-In Pattern

Running a long process in a standard Azure Function hits the 5-10 minute timeout. Durable Functions allows you to write stateful workflows in code. The most powerful pattern is Fan-Out/Fan-In. The Scenario You need to resize 10,000 images uploaded to Blob Storage. Behind the scenes, the Durable Task Framework manages the Azure Storage Queues to […]

Read more →
Posted in Uncategorized

Angular State Management: NgRx vs Akita

State management in Angular is often over-engineered. Do you really need the full Redux pattern (NgRx) with its boilerplate Actions, Reducers, Effects, and Selectors? Or is Akita’s OO-approach better? NgRx: The Strict Pure Approach NgRx is verbose but predictable. It shines in large teams where strict enforcement of “One Way Data Flow” prevents spaghetti code. […]

Read more →
Posted in UncategorizedTagged

Observability with OpenTelemetry in .NET

Vendor lock-in is a real risk in observability. If you instrument your code with `ApplicationInsights.TrackEvent()`, migrating to Datadog or Prometheus later requires a rewrite. OpenTelemetry (OTel) solves this. The OTel Collector Pattern Your app sends data to a local “Collector” (Sidecar), which then exports it to multiple backends. This code is vendor-neutral. The OTel Collector […]

Read more →
Posted in Uncategorized

Playwright vs Selenium in 2021

For a decade, Selenium WebDriver was the undisputed king of browser automation. But Microsoft’s Playwright has matured rapidly and provides a compelling alternative. Having migrated a massive E2E test suite from Selenium to Playwright, here is my detailed comparison. Architecture Comparison Selenium uses the WebDriver HTTP protocol. It sends an HTTP request for every action […]

Read more →
Posted in UncategorizedTagged