Why I Ditched Next.js for TanStack Start + Nitro
Next.js is powerful, but the platform gravity around it is real. TanStack Start with Nitro gave me better architecture defaults and true deployment freedom.
Thoughts on software engineering, open source, and the craft of building. 40 posts published.
Next.js is powerful, but the platform gravity around it is real. TanStack Start with Nitro gave me better architecture defaults and true deployment freedom.
Django is old, opinionated, and not the coolest framework at the party. It also taught me more about software architecture than anything else I've learned.
I cancelled my GitHub Copilot subscription after years of using it. Not because the product got worse — but because GitHub changed the terms of the deal I signed up for.
Stop reading documentation from scratch. Ask AI to generate a side-by-side comparison between a language you know and the one you're learning — then just read the diff.
I got tired of bloated home screen launchers, so I built my own. Here's what I learned about the Android launcher APIs, building for one-handed use, and the value of deliberate minimalism.
Tools, techniques, and best practices for maintaining digital privacy as AI systems become more capable of processing, inferring, and acting on personal data.
Stop clicking through Postman. Bun's test runner makes a faster, version-controlled, scriptable API testing setup — with OpenAPI spec validation thrown in for free.
How I built a Gradle plugin and KSP processor that compiles a JSX-like .ktsx syntax into idiomatic Kotlin DSL code — and the lessons from writing a compile-time code generator.
I spent years accidentally polluting my global Python environment. One environment variable fixed it permanently — and I only found it by accident.
How I built a drag-and-drop workflow editor for LLM agents using React Flow and PocketFlow — and what it taught me about visual programming, CLI tooling, and the gap between 'works in demo' and 'works in production'.
An in-depth comparison of React, Vue, and Svelte in 2026 — architecture trade-offs, rendering models, bundle size, and the performance optimization techniques that actually move the needle.
I built a CLI that generates a question bank on any topic, then drills you using seven different learning methods — with adaptive difficulty, spaced repetition, and persistent progress between sessions.
Why I built a native desktop file transfer app using Tauri, Rust, and rsync — and what I learned about bridging a Rust backend to a React frontend.
Past me would have laughed at this post. But diet, training, and sleep have done more for the quality of my thinking than any productivity system I've tried.
Every January the same cycle repeats. Big goals, early enthusiasm, quiet abandonment by February. After years of doing it wrong, here's what actually moved the needle for me.
The same way Python offloads heavy computation to C extensions via NumPy or Cython, you can drop native Rust into your Bun app using bun:ffi — with near-zero overhead.
How I built a zero-dependency, 3kB TypeScript library for composing LLM agent workflows — fluent chains, branching, loops, parallelism, and a plugin system with no bloat.
How I built a zero-server file sharing app using WebRTC DataChannels, AES-GCM encryption, and IndexedDB — and why making WebRTC actually work is harder than the spec makes it look.
I love Django's project layout but wanted async-native Python. So I built a minimal boilerplate that brings apps, models, views, and urls to Sanic — with Tortoise ORM and Pydantic Settings.
How I built a browser-based tool that uses OpenCV.js (WebAssembly) to automatically detect, straighten, and crop individual photos from flatbed scanner output — and what I learned about computer vision at the edge.
Bloated Docker images slow down CI pipelines, waste registry storage, and increase attack surface. Here's how to shrink them down without sacrificing functionality.
I go to the gym every day and I love statistics. So I built a personal dataset to find out whether creatine, sleep, diet, temperature, and mood actually move the needle — without any medical tests.
You generated something great — a perfect image, a brilliant prompt, a clever piece of code. Then you lost it. Here's the trick that fixes that permanently.
I'm undoubtedly a deep thinker. But a few months ago it hit me that I'd never actually questioned how I think. Not what I think about — how I do it.
Productivity-wise, moving to Mac was the right call. But Linux spoils you in ways that are hard to explain until they're gone.
The debate between SPA and MPA is a false choice. A hybrid architecture gives you the best of both worlds, and it's easier to set up than you think.
You've been stuck for hours, then the answer appears in the shower. That's not luck — it's a mode of thinking you can learn to use deliberately.
I started using AI to pick random ingredients and force myself to cook under constraints. It turns out it's less about food and more about training your brain to think differently.
Kali isn't just a hacker's toy. Used responsibly on infrastructure you own, it's one of the most powerful auditing platforms available. Here's how to use it properly.
How AI is changing budgeting, investing, and financial planning — and the practical tools you can use today to make better financial decisions.
You think you know how long something will take. You don't. Here's the process that gets you close enough to not embarrass yourself.
Claude will probably cover the edge cases you forgot. But being explicit in your prompts still matters — and tests are how you make that explicitness stick.
A step-by-step guide to moving machine learning models from notebooks into real-world production systems — serving, monitoring, versioning, and avoiding the common pitfalls.
React developers reach for useState on every input field by reflex. Most of the time, the browser already handles this for you — and FormData does the rest.
Start with what the solution looks like. Work backwards. Work forwards. Find where the two paths meet — that's your problem.
Keeping your business logic separate from the framework it runs in isn't just good architecture — it makes your code portable, testable, and far easier to maintain.
I've tried every productivity system. None of them stuck. Here's what I actually do instead — and why it works better for the way my brain operates.
Key considerations for responsible AI implementation — how bias enters systems, why transparency matters, and the practical steps developers can take to build fairer models.
Practical Python scripts and tools for automating repetitive daily tasks — from file management and email to browser automation and scheduled jobs.
An overview of AI advancements across decades — from expert systems and statistical learning to large language models and fully autonomous agents — and what comes next.