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

Implementing Clean Architecture with .NET 5

Robert C. Martin’s “Clean Architecture” (or Onion/Hexagonal Architecture) is the gold standard for testable, maintainable enterprise systems. In this article, I will demonstrate how to structure a .NET 5 solution to enforce the Dependency Rule strictly. The Dependency Rule Source code dependencies must point only inward, toward high-level policies. The Inner circles (Domain) must not […]

Read more →
Posted in Uncategorized

Azure Logic Apps Standard: Single Tenant & VS Code

Azure Logic Apps has traditionally been a Consumption-based, shared-tenant service. While cheap and scalable, it suffered from “Noisy Neighbor” latency issues and lacked VNET integration without an expensive ISE (Integration Service Environment). Detailed here is the new Logic Apps Standard, running on the Azure Functions runtime. Architectural Shift: Single Tenant Logic Apps Standard runs on […]

Read more →
Posted in Uncategorized

GitHub Copilot Preview: The AI Pair Programmer

The landscape of software development is undergoing a seismic shift. I have spent the last week with the technical preview of GitHub Copilot, powered by OpenAI’s Codex model, and I can confidently say: this is not just “IntelliSense on steroids.” It is a fundamental change in how we write code. In this comprehensive review, I […]

Read more →
Posted in Uncategorized

Kubernetes Architecture: Beyond the Basics

Most tutorials explain Pods, Services, and Deployments. But running Kubernetes (K8s) in production requires understanding the control plane, the network model, and the reconciliation loop. In this article, we dissect the architecture of a high-availability K8s cluster and explored advanced scheduling patterns. The Control Plane vs Data Plane A K8s cluster consists of the Control […]

Read more →
Posted in Uncategorized

C# 9.0 Deep Dive: Records, Init-Only, and Patterns

C# 9.0 is arguably the most significant update to the language since LINQ in C# 3.0. It introduces a functional paradigm shift with Records, cementing immutability as a first-class citizen. In this article, we will go beyond the syntax and explore how these features change the way we design Domain Models and DTOs. The Problem […]

Read more →
Posted in Uncategorized