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.
This is a compact argument for returning build systems to first principles: name the inputs, name the outputs, then make the dependency graph and artifact boundaries explicit enough that the build can remain local, repeatable, and inspectable. The discussion of Civ's directory-oriented model is less interesting as a universal replacement for Make or Bazel than as a prompt to notice which decisions a build tool is hiding for us.
The small Hacker News thread raises the adoption question that every personal build system eventually meets. A clean model still has to be learned, debugged, and carried across machines by other people. That does not weaken the article's critique of leaky abstractions; it adds a requirement. A build system earns its abstraction when it makes both execution and maintenance easier for its actual community.
This is the ABI explainer to send to someone who knows that binary wheels are painful but has never seen the contract underneath them. Nathan Goldbaum separates the Python C API from the ABI, maps the compatibility layers, and explains why the limited API can trade some access and performance for far fewer builds. The coming abi3t work matters because free-threaded CPython otherwise multiplies that packaging surface again.
The Hacker News reaction gets the educational value right: ABI is often repeated as vocabulary long before it is understood as a deployment constraint. The practical conclusion is not that every extension should use the stable ABI. It is that maintainers should choose deliberately between newest interpreter capabilities and a wheel strategy that keeps upgrades from becoming a distribution emergency.
Mitchell Hashimoto gives SIMD the right entry point: recognize the common shape before reaching for cleverness. Broadcast a constant, process a vector-width chunk, reduce the result, and retain the scalar loop for the tail and unsupported hardware. The Zig examples are approachable, but the bigger lesson travels: performance work begins by understanding the data path, not by memorizing intrinsics.
The Hacker News pushback improves the thesis. Manual SIMD is not simply a more verbose for loop, and it is not the first move for every hot path. The durable skill is knowing when vectorization did not happen, checking optimized compiler output and benchmarks, then deciding whether the extra code, portability surface, and memory behavior justify taking control.
Start with the portfolio and case studies, then continue the consulting conversation with Measured Studios.