Writing
Notes on migrations, AI integration, and the parts of the job that took me longest to figure out.
Android Dark Mode Fix in Tauri: A Debugging War Story
For weeks, the native Android status bar and navigation bar refused to update when toggling dark mode in a Tauri app. The JS code called the right function. The Rust handler logged the invocation. But...
Tauri, Android, Rust, JavaScript, Debugging
Apr 8, 20266 min
My First Time Being a Trainer: Teaching Next.js to a Diverse Class
A friend asked me to teach a Next.js class organized for women and people with disabilities. I said yes immediately. It was my first time being a trainer, and I had no idea what I was getting into. T...
Teaching, Next.js, React, Mentorship, Community
Mar 10, 20267 min
How I Became 1st in Japanese Elementary Class
I joined an elementary Japanese class in April 2025 as a complete beginner. 4 months later, I finished 1st in my cohort. This is the exact system I built — the scraper, the spaced repetition algorithm...
Japanese, Language Learning, SM-2, AI, Web Scraping, Obsidian
Feb 28, 202610 min
Kei — Architecture of a Motorcycle GPS Tracker
I built a motorcycle GPS tracking SaaS platform called Kei. The core requirement: receive location data from existing GPS devices in real-time, display historical routes on a map, and let users send c...
Architecture, MQTT, ElectricSQL, Elysia, Real-Time, GPS
Feb 20, 202611 min
Building a Cost-Efficient PDF Chat App with OpenRouter
I built a PDF chat app — upload a document, ask questions about it, get answers powered by an LLM. The hard part wasn't the architecture. It was keeping the monthly bill under $20 while the app had ze...
AI, PDF, Cost Optimization, Supabase, OpenRouter, Architecture
Jan 12, 20269 min
Learning Rust as a Go and Rails Developer
I learned Ruby by jumping straight into code. Same with Go. It worked, but I never built a deep mental model of either language. I could write it, but I couldn't explain why it worked the way it did....
Rust, Go, Ruby on Rails, Learning, Programming
Dec 10, 20257 min
My Development Workflow in 2025
Over the last few years, my dev setup has converged into something I'm genuinely happy with. Here's the full stack of tools and practices I use daily. Editor & Terminal - Neovim with LSP for TypeScr...
Workflow, Productivity, Tooling, TypeScript
Oct 1, 20256 min
Building a Slack Clone with Ruby on Rails
I built a Slack clone from scratch with Rails. Not because the world needs another chat app — but because it's the perfect project to understand Rails' real-time capabilities, database design for conc...
Ruby on Rails, WebSockets, Action Cable, Real-Time
Jul 15, 20257 min
Streaming AI Responses on Cloudflare Workers
I needed to stream AI responses from Cloudflare Workers to a frontend. The naive approach — wait for the full response, then send it — added seconds of latency. Here's the streaming setup that worked....
Cloudflare Workers, AI, Streaming, Serverless, Edge
Jun 5, 20255 min
Learning Japanese Through Code: Bilingual Office Conversations
The best way to learn a language for work is to practice the conversations you'll actually have at work. I started writing bilingual scripts for common office scenarios — debugging a bug, attending s...
Japanese, Language Learning, Bilingual, Communication, Work
May 28, 20256 min
A Practical Guide to Choosing Your Fullstack Stack
Every new project starts with the same question: what stack should I use? After building across Rails, Go, React Native, and various frontends, here's my current framework for choosing. The Decision...
Architecture, Fullstack, Database, Auth, Hosting
Jun 22, 20248 min