Adding .default(false) to a Drizzle schema deleted my production database. Postmortem.
Adding .default(false) to a Drizzle schema triggered an SQLite table rebuild that cascaded and wiped my production database. Here's the postmortem.
Writing
Long-form notes on software engineering, photography, and how I work. New posts on a personal cadence.
Adding .default(false) to a Drizzle schema triggered an SQLite table rebuild that cascaded and wiped my production database. Here's the postmortem.
A short note on launching this blog, what to expect, and how it's built — Astro on Cloudflare with Sanity as the CMS.
My VS Code got stuck when agents ran terminal commands and my zsh takes up to a second to load, so here is a settings.json profile that makes Copilot agents use bash.
How I built file attachments for my open-source AI chat app, from R2 storage architecture to quotas and image transform limits.
How I built a custom GitHub Actions workflow that cuts Cloudflare Worker deployment time from 8 minutes to 2.5 minutes.
Benchmarking Cloudflare D1 (SQLite) performance for integer, UUID v4, and ULID primary keys across 1M users and 10M posts.
I’m Serhii — a software engineer based in Ukraine. I write about the craft of building products, the tools I use, and what I’m learning.
More about meOne subscription includes every independently authored English and Ukrainian post — not just translations. Change either language anytime.