Writing

Thoughts & travels

Notes on what I’m building, the gear I keep, and the trips I take when I step away from the screen.

Getting My Data Out of One Basket
Featured Jun 20, 2026·17 min

Getting My Data Out of One Basket

For more than ten years I kept my whole digital life inside two companies, and called it convenience. Then I read about someone who lost every photo they owned when Google closed their account over...

Read the journal

All posts

Jun 20, 2026
Personal 17 min

Getting My Data Out of One Basket

For more than ten years I kept my whole digital life inside two companies, and called it convenience. Then I read about someone who lost every photo they own...

Jun 19, 2026
Engineering 15 min

The New Software Engineer: What Remains After AI Writes the CRUD

A model can now write a CRUD API faster than I can describe one. That has not made me less necessary. It has moved the work to where it always belonged. The ...

Jun 13, 2026
Rails 13 min

Real Approval Workflows in Rails: The Use Cases That Made Me Build Signoff

Every serious Rails app eventually needs records that can't just be created or updated: they need a human to review and sign off. Here are the concrete use c...

Jun 13, 2026
Rails 27 min

How I Built ErrSight: A Rails Monolith, a Rust Ingestion Sidecar, and Eight SDKs in Lockstep

ErrSight is not one program. It grew into four cooperating ones (a Rails monolith, a Rust ingestion sidecar, an SSE service, and eight client SDKs), and the ...

Jun 9, 2026
Rust 21 min

Sharing Authentication Between Rails and a Rust Axum Microservice

After your first Rust endpoint ships, the next question is always 'how does Rust know who the user is?' This post walks through JWT verification, Rails cooki...

Jun 2, 2026
Rust 21 min

Streaming Responses and Server-Sent Events with Axum

Streaming is one of the workloads that Rails handles poorly and Tokio handles natively. Here's how to build a real-time push endpoint in Axum, from your firs...

May 28, 2026
Personal 14 min

Why I Chose a CASIO G-Shock Over a Smartwatch

I spend my whole working day looking at screens. The last thing I want strapped to my wrist is a fifth one. Here is why my daily watch is a CASIO G-Shock GW-...

May 26, 2026
Rust 19 min

Wrapping a Rails-Owned Postgres Database with Rust and Axum

ActiveRecord hides a lot behind the curtain: callbacks, counter caches, enum mappings, polymorphic associations, soft deletes. Here's how to talk to a Rails-...

May 26, 2026
Backend 15 min

Building an Error Monitoring Tool Without Pricing Overages

Picture the worst version of a Tuesday. You ship a deploy, a downstream API starts timing out, and your retry logic turns one failure into forty. A single br...

May 19, 2026
Rust 24 min

Getting Started with Axum: Building High-Performance Microservices in Rust

A teaching guide to Axum and Rust microservices, with every snippet explained line by line, from your first /hello route to a production-ready service that f...

May 16, 2026
Education 6 min

My Experience Studying at University of the People: Bachelor of Computer Science

Starting the Bachelor of Computer Science at University of the People while working full-time: first impressions of a tuition-free, online, globally-recogniz...

Oct 27, 2025
Travel 2 min

Trip to Udupi

A photo journal from Udupi: coastal beaches, St. Mary's Islands, the Varanga Lake Jain Temple, and endless paddy fields.