Engineering Notes

Code is abundant now. Architecture, maintainability, and staying true to what the application is for are still the hard part.

Security

Multi-Tenant Data Boundaries in PostgreSQL

In a multi-tenant app, the company ID must never come from the request body. How I enforce company boundaries in queries and why it also makes changes easier.

Oct 14, 2026 Read more →
Search and Marketing Engineering

Match the Landing Page to the Ad

A visitor who clicks an ad with a specific offer should land on a page showing that offer. I built a script that read the VIN from the URL and updated price, discount, and disclaimer.

Oct 14, 2026 Read more →
AI-Assisted Development Featured

The Hidden Costs of AI-Assisted Development

AI has changed how I write software, and I think the costs are easy to miss: ownership uncertainty, skill atrophy, and accountability that stays with the engineer.

Oct 14, 2026 Read more →
Infrastructure and Operations

Email Connections That Survive Auth Expiry

Email in a multi-tenant app has two readers and several providers with different login lifetimes. This is how I kept sync reliable and what happens after three failures.

Oct 14, 2026 Read more →
Moving Image Processing to the Browser
Infrastructure and Operations

Moving Image Processing to the Browser

Converting and resizing photos in the browser, behind an upload queue, kept heavy image work off the server. In testing, 70+ photos went live in under two minutes.

Oct 14, 2026 Read more →
AI-Assisted Development Featured

How This Site's Content Is Built and Validated

Every page on this site is a markdown file that passes a validator, gets its JSON-LD generated from its own content, and imports into Django only when it changed.

Read more →
AI-Assisted Development Featured

How to Write AI Skills Other People Can Reuse

A skill that works for you is full of your own facts and habits. Making it reusable means splitting the method from the person, and moving fragile steps into scripts.

Read more →
← Previous Page 2 of 2