About
I’m Yaodong Zhao, a software engineer. I build web applications, though these days I mostly supervise something else building them.
What I enjoy most are the questions that come up along the way, like why the designers made a trade-off, what gets lost when we optimize for convenience, or whether a constraint that feels limiting is a flaw or the point.
The something else is AI, which writes most of the code while I guide it and check its work. I’m trying to understand what that changes. I can’t always tell where my judgment ends and its suggestions begin, which is usually my cue to read the diff again. Lately I mostly write about doing this on production systems, from giving agents enough context to testing what they build.
That’s part of why I write here. AI can summarize a solution, but it doesn’t remember what it was like to find it: the dead ends, the debugging at midnight, the trade-offs made under constraints nobody else will see. I try to keep those details, even the ordinary ones, because that’s what actually happened.
This blog is about software, design decisions, and sometimes a connection to something further afield. Some posts are just thinking out loud. I’m reachable on LinkedIn, GitHub, and X, and unlike my agents, I won’t tell you something is done before it is.