# Blog

- [A portfolio that agents can read](https://frzxw.me/blog/a-portfolio-for-agents) (2026-11-12): More people now meet my work through an AI assistant than through my home page. Here is what this site serves to agents, and why each piece is small.
- [A shared brain for me and my AI tools](https://frzxw.me/blog/a-shared-brain-with-obsidian) (2026-11-12): My notes live in an Obsidian vault of plain Markdown files that both I and my AI assistants can read and update. How it is organised, and the rules that keep it useful instead of messy.
- [How I use AI as leverage, not autopilot](https://frzxw.me/blog/ai-as-leverage) (2026-11-12): AI writes a lot of my first drafts now, in code and in content. This is where I draw the line between what the tool does and what stays my job, and the writing that shaped how I think about it.
- [Context engineering: give the model the right information, not more of it](https://frzxw.me/blog/context-engineering) (2026-11-12): Better prompts only go so far. Most of the quality I get from AI tools comes from what they can see when they start: short rules, the right files, and nothing that distracts them.
- [Designing for what you can't know](https://frzxw.me/blog/designing-for-what-you-cant-know) (2026-11-12): Good software is honest about uncertainty. A small example from a crypto terminal: when the data stops, we say so on screen instead of pretending everything is live.
- [Harness engineering: the checks around the model matter more than the model](https://frzxw.me/blog/harness-engineering) (2026-11-12): If AI writes more of the code, the engineer's job shifts toward building the guardrails it works inside: tests, types, linters, review and safe limits. Here is the harness I use and why.
- [Store the history, not just the number](https://frzxw.me/blog/ledgers-not-balances) (2026-11-12): Two very different products, a crypto terminal and a school savings app, ended up with the same rule for money: never edit a number, only add a record. Why that matters, and what it costs.
- [Measure before you choose: why I start with boring technology](https://frzxw.me/blog/measure-before-you-choose) (2026-11-12): Data-heavy products attract exciting infrastructure. I usually start with the simplest setup that works, and I make that choice with numbers, so it is easy to explain and easy to revisit.
- [Rebuild or refactor? How I decide](https://frzxw.me/blog/rebuild-or-refactor) (2026-11-12): The usual advice is never to rewrite a working product. Sometimes it is still the right call. These are the four questions I ask before choosing, and how they played out on a real product.
- [Why strict languages and AI agents get along](https://frzxw.me/blog/rust-strictness-and-agents) (2026-11-12): AI tools fix mistakes fastest when the mistake is pointed out precisely. That is why strict languages like Rust, and strict TypeScript, make agent-written code easier to trust and debug.