// Blog

Writings & Notes

Articles on engineering, systems design, startups, and lessons from the trenches.

</>
Fintech·

My Approach to Code That Touches Money

Financial code deserves a higher standard of rigour than general application code. Here is what that higher standard looks like in practice.

</>
Backend Engineering·

API Design Is a Contract. Design It Like One.

Your API is a promise to every consumer that will ever call it. Changing it carelessly breaks that promise.

</>
DevOps·

GitHub Actions Is All the CI/CD Most Projects Need

The CI/CD landscape has never been richer — or more overcomplicated. GitHub Actions covers 90% of real-world needs.

</>
Database Engineering·

MySQL Full-Text Search vs Elasticsearch: Choosing the Right Tool

Elasticsearch is powerful. It is also heavyweight. For many use cases, MySQL full-text search is sufficient and much simpler to operate.

</>
Database Engineering·

Database Migrations Without Downtime

Deploying a schema change to 50 million rows is not the same as 50,000. Here is the discipline that keeps production healthy.

</>
Fintech·

Webhook Security: What Most Developers Skip

Webhooks are a common attack vector that most developers implement insecurely.

</>
Backend Engineering·

JWT Is Not a Session. Stop Using It Like One.

JSON Web Tokens are stateless authentication credentials, not sessions.

</>
DevOps·

Monitoring Is Not Optional. It Is the Job.

An application without monitoring is one whose failures you will learn about from your users.

</>
DevOps·

The Git Workflow That Keeps Production Deployments Boring

Boring deployments are the goal. Here is the Git branching strategy and deployment discipline that makes deployments a non-event.