Blog

Writing

Storing credentials in the repo: SOPS + age

Keeping secret values encrypted inside the git repo: setting up SOPS + age, the per-environment recipient model, decrypting at runtime, the team and CI flow, and the things to watch out for.

devops
Read more

Free Custom Domain Email with Cloudflare and Gmail

Receiving and sending email from your own domain without running a server or paying anything: Cloudflare Email Routing for inbound, plus a Gmail app password and Send mail as SMTP setup for outbound.

devops
Read more

Local Ignore Rules in Git: .git/info/exclude and core.excludesFile

Hiding personal files dropped into the project root without polluting .gitignore or pushing them to the team. .git/info/exclude, core.excludesFile, and the precedence order.

devops
Read more

PostgreSQL LIKE Performance: CAST, Concat, and OR Comparison

Comparing 6 different LIKE approaches in a migration from bigint LongColumn to text TextColumn with a 2 million row benchmark: CAST+concat, CAST single, text concat, text single, text OR, and CAST OR.

backend performance dotnet
Read more

.NET Memory Management 1: Stack, Heap and Strings

What are stack and heap, where do value types and reference types live in memory, why is string a special type, and how does the GC lifecycle work.

dotnet csharp performance
Read more

Welcome

Why this site exists, what I track here, and a few thoughts on writing and code in the AI age.

kişisel ai
Read more