The Practical Engineer
All Articles
Practical knowledge for engineers who ship. Deep dives, guides, and architecture insights.

Your system doesn’t break when you deploy it. It breaks when old data meets new code. That’s the uncomfortable reality of software: data outlives everything. You can rewrite your frontend. You can refactor your backend. You can even replace your database. But your data? It sticks around quietly waiting to expose every bad decision you made six months ago.

Your beautiful data model eventually turns into… bytes on disk.

“The limits of my language mean the limits of my world.” — Ludwig Wittgenstein

“The Internet was done so well that most people think of it as a natural resource… rather than something that was man-made.” — Alan Kay
A pregnant's reflection to the Iliganons after the flood.

I built a modern blog CMS using Next.js, Supabase, and TailwindCSS with role-based access, a WYSIWYG editor, and AI-assisted development powered by Claude Code and MCP servers.
