Platform & AI Engineering
Software, data, and AI systems built with a product manager's discipline — GCP architecture, BigQuery, Dataform governance, ML pipelines, agent workflows, and the evaluation that makes them trustworthy in production.
Personal / Professional Thinking Surface
Software engineer with a product manager's discipline — system architecture, evaluation, and the writing that makes both legible. Consulting through Measured Studios.
Three pillars
Software, data, and AI systems built with a product manager's discipline — GCP architecture, BigQuery, Dataform governance, ML pipelines, agent workflows, and the evaluation that makes them trustworthy in production.
Architecture and devlogs from real games (Abuela, Hippi Kingdom) and from agentic simulations of business processes and customer experience — interactive systems where the design problem is what the system does, not just what it shows.
Applied complexity, decision intelligence, and the organizational systems thinking behind technical work — how teams, ownership, and feedback loops shape what gets built.
Technical decisions, system tradeoffs, and outcome accountability.
Short notes and deep dives across all pillars.
Worth-keeping shares from elsewhere on the web — articles, papers, tools.
Giles Edwards-Alexander gives refactoring an unusually concrete AI-era price tag. In a roughly 150,000-line, agent-written Rust application, a representative change initially pulled 159,564 input tokens into context. After breaking a 17,155-line Firestore module into coherent responsibilities, the same task used 27,360 tokens, an 83 percent reduction. The useful mechanism is not small files for their own sake. Better boundaries let an agent find and load less irrelevant code.
The number is evidence, not a universal exchange rate. This was one greenfield codebase, the token counts were estimated from characters, and the agent needed sustained human direction to recognize and execute the refactoring. Correctness, review time, testability, and human comprehension still matter more than a cheap prompt. The durable lesson is that technical debt now charges two readers: people and machines. Good structure can lower both bills, but deciding what belongs together remains design work.
This is a welcome reset for an argument too often conducted with demos and vibes. The authors separate code generation from software delivery, point out that developers spend only a fraction of their time typing code, and reject lines produced as a proxy for value. AI assistance can help, but its effect varies with the task, the developer, the codebase, and the surrounding organization. Buying licenses does not redesign review queues, clarify requirements, or make legacy and regulated systems less consequential.
The practical correction is to measure the whole system. Faster implementation can simply move the bottleneck into verification, coordination, security, or operations; more generated code may increase the amount that experienced engineers must understand. None of that makes the tools useless. It makes "productivity" a claim that needs an outcome, a baseline, and a time horizon. Teams should ask whether dependable changes reach users sooner without increasing defects or hidden maintenance work, not whether the editor produced more text.
This runnable tour makes Go 1.27 easier to evaluate than a release-note inventory. Generic methods and broader type inference get the headline, while smaller changes to allocations, goroutine diagnostics, JSON v2, testing, cryptography, and the standard library show how much of a language release is really about removing daily friction. The examples are especially good at exposing limits: generic methods cannot satisfy interfaces, and portable SIMD is still experimental rather than a blanket invitation to rewrite hot loops.
The tension is Go's old strength: every new capability spends from a deliberately small complexity budget. Generic methods can make reusable APIs more expressive, but an example that requires a generic translation before its ordinary meaning is clear has already raised the reading cost. The better standard is not whether Go can absorb another feature. It is whether the feature makes production code easier to understand after the novelty fades. Runtime and tooling improvements often clear that bar more quietly than syntax does.
Start with the portfolio and case studies, then continue the consulting conversation with Measured Studios.