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 →High Performance C#: Span
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 →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 →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 →Azure Functions 3.0 to 4.0: Performance Deep Dive
With the release of Azure Functions 4.0 (running on .NET 6), the performance landscape for serverless has shifted dramatically. Upgrading from 3.0 (.NET Core 3.1) isn’t just a version bump; it is an overhaul of the worker process. Cold Start Analysis The “Cold Start” is the time it takes for Azure to provision your instance […]
Read more →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 →