Azure Key Vault: Rotation Policies

Static secrets are a risk. If a developer checks a connection string into GitHub, you are compromised. The solution is Key Rotation. Automated Rotation Azure Key Vault can automatically rotate secrets near expiry. For example, it can: Trigger an Event Grid event. Call an Azure Function. The Function talks to SQL Server to reset the […]

Read more โ†’
Posted in Uncategorized

C# 10 Preview: Global Usings

C# 10 removes the “Vertical Waste” at the top of every file. Global Usings Instead of typing `using System;` in 1000 files, you define it once. Better yet, the SDK does it for you via `enable` in the csproj. This reduces file noise significantly.

Read more โ†’
Posted in Uncategorized

Testing with LocalStack: AWS on your Laptop

If you are building on AWS, you need LocalStack. It mocks the entire AWS cloud in a single Docker container. Docker Compose Setup Now you can point your AWS SDK to `http://localhost:4566`. `var client = new AmazonS3Client(new AmazonS3Config { ServiceURL = “http://localhost:4566” });` You can create S3 buckets, trigger Lambdas, and write to DynamoDB locally, […]

Read more โ†’
Posted in Uncategorized

EF Core 5 Performance: Split Queries

The “Cartesian Explosion” problem is common in ORMs. If you `Include()` multiple collections, the resulting SQL JOIN produces `Parent * Child1 * Child2` rows. Split Queries EF Core 5 allows you to opt-in to Split Queries. Instead of one massive JOIN, EF generates two SELECTS: 1. `SELECT * FROM Blogs` 2. `SELECT * FROM Posts […]

Read more โ†’
Posted in Uncategorized

Designing gRPC Services: Error Handling Best Practices

In REST, we use HTTP Status Codes (404, 500). In gRPC, we use `RpcException`. But simply throwing exceptions is not enough for rich error details. The Status Model Google’s API Design Guide recommends returning a rich `Status` object containing a list of `Any` details. This allows the client to deserialize the structured error (e.g., specific […]

Read more โ†’
Posted in Uncategorized