How to configure Fail2ban fail2ban

How to configure Fail2ban

Fail2ban turns brute-force noise on SSH and your reverse proxy into a boring automated reaction. A practical setup for a VPS or homelab: sane jail config, testing before trusting, notifications without a siren, and where it fits in the wider security story.

Jul 6, 2026

What is the DORA framework and how can it help your company

What is the DORA framework and how can it help your company

DORA metrics explained for engineering leaders: deployment frequency, lead time, change failure rate, time to restore and reliability. What each one really tells you, how to use them to improve delivery, and the anti-patterns that turn them into dashboard theater.

21 engineering lessons for real teams

21 engineering lessons for real teams

21 engineering lessons that survive contact with production: why simple code beats clever code, technical debt as a communication problem, what actually builds trust in teams, and how senior engineers pick problems. Field notes for real teams, not conference slides.

UUIDv7 from PostgreSQL 18 in practice

UUIDv7 from PostgreSQL 18 in practice

UUIDv7 arrives in PostgreSQL 18 as a built-in uuidv7() function. See what it changes in practice: friendlier indexes than UUIDv4, simpler Rails migrations, a schema example, and the security caveat that time-ordered does not mean secret.

How to audit a legacy Rails codebase without getting lost

How to audit a legacy Rails codebase without getting lost

Auditing a legacy Rails codebase starts with one question: what is the team afraid to change? A practical method for finding real hotspots, building a small audit ledger, using tools and AI without drowning in output, and delivering one page that people act on.

Getting structured input and output from Ollama

Getting structured input and output from Ollama

Structured output from Ollama takes more than JSON mode. Learn the reliable pattern for a Rails app: shape the input, constrain output with JSON Schema, parse defensively, and retry with feedback so a local LLM survives production instead of just a demo.

Be aware of possible problems with SQLite on Production

Be aware of possible problems with SQLite on Production

SQLite in production works better than its toy reputation, but only if you know the traps: why WAL mode is non-negotiable, how blue-green deployments break your setup, missing ILIKE, quirky JSON types, and what you honestly gain in return.

AI Agents System Architecture - Possible strategies

AI Agents System Architecture - Possible strategies

AI agent architecture comes down to three strategies: single agent, sequential, and parallel. When one big prompt loses the plot, how sequential chains buy reliability, where parallel agents crush latency, and the pitfalls of each before you commit.

Structured logging in Rails 8.1 with Rails.event

Structured logging in Rails 8.1 with Rails.event

Structured logging lands in Rails 8.1 with the Rails.event API. How the Structured Event Reporter replaces regex-parsed log lines with JSON events, plus tags, context, schemas, debug mode, and how to subscribe and test events in your own app.

Zanzibar authorisation system by Google

Zanzibar authorisation system by Google

Zanzibar is how Google authorises billions of shared resources across Drive, YouTube and Calendar. A look at its relationship-based data model, the new enemy problem that forces strict consistency, and the Leopard system that keeps checks fast.