DevOps Practices That Actually Ship

DevOps, for us, is disciplined reduction of delivery friction: smaller changes, fast feedback, predictable deploys, fewer 3 AM recovery drills.

We avoid cargo-cult rituals and focus on what measurably improves flow:

  • Flow & Throughput: Lead time, deployment frequency, change failure rate, MTTR—tracked, trended, acted upon.
  • Delivery Pipelines: Deterministic build → test → artifact → deploy. No snowflake steps, no hidden manual toggles.
  • Infrastructure as Code: Versioned, reproducible, reviewable. Terraform, Bicep, GitOps used for clarity not fashion.
  • Observability: Metrics, logs, traces, user-impact signals. Noise trimmed; action retained.
  • Security Shift-Left: Dependency hygiene, automated scanning, least privilege in pipelines; security as an engineering constraint.
  • Platform Engineering: Self-service paved paths so product teams ship without reinventing orchestration.
  • Resilience: Load, latency, failure injection, rollback rehearsals—practiced before incidents.

Expect opinionated takes on CI/CD anti-patterns, automation theater, flaky test tax, “quick wins” that age badly, and where tooling investment actually burns down operational risk.

If you want fake maturity signals, this isn’t it. If you want sustainable, boring reliability that frees time for features? You’re in the right place.

.NET 10 Testing: Microsoft Finally Fixed the Test Runner (Mostly)

.NET 10 Testing: Microsoft Finally Fixed the Test Runner (Mostly)

.NET 10 replaces VSTest with Microsoft.Testing.Platform, bringing SDK-integrated testing with faster discovery, consistent behavior across environments, and explicit configuration contracts. But it requires .NET 10, breaks old test adapters, and demands CI pipeline discipline. Here’s what actually changes, who should migrate now, and who should wait.