2026
October 25, 2026
8 min
As a fun experiment, I worked on building an air defense simulation using Opus 5.5. The goal was to create a real-time simulation of air defense. The simulation should be more realistic than video …
August 6, 2026
5 min
Datastar leaves the server-side implementation open-ended. Datastar provides SDKs for various languages, but those SDKs only cover the protocol on top of SSE that the Datastar JavaScript client …
March 19, 2026
11 min
Datastar is an HTMX-like framework that attempts to minimize the amount of Javascript you write using a few concepts:
2025
August 17, 2025
3 min
ADTs is a fancy term for a type composed from other types. There are two kinds of Algebraic Data Types.
May 10, 2025
4 min
Monads are interfaces for sequencing behaviors related to a data type.
2024
October 1, 2024
4 min
As part of trying out Svelte, I’ve also stepped into the modern web development ecosystem. I previously worked primarily in Clojurescript, so my reference point is based on being away from …
September 23, 2024
3 min
Disclaimer: I didn’t learn Svelte before v5, so this is an experience report on translating Svelte 4 code to 5.
September 19, 2024
2 min
Since migrating this site to Hugo, I felt like it was finally time to avoid learning TOML.
2020
January 5, 2020
6 min
One of the most interesting parts of generative testing (aka QuickCheck) is state machine testing. The original purpose I built Fox was to explore state machine testing. In particular, the talk from …
2016
August 31, 2016
5 min
I’m fascinated by how engineers read and interpret code that they work on a daily basis. It’s no doubt different for everyone, but few explain how they go about and understand an unfamiliar codebase.
July 31, 2016
4 min
When evaluating companies, it’s of utmost importance to learn about the engineering culture. Culture for a company is similar to scope for code – culture provides a context for getting work done.
June 30, 2016
4 min
Trying to concisely describe concepts is an interesting exercise. The ideal goal is to build upon existing concepts, but as you add more concepts you run the risk of being inconsistent.
May 31, 2016
6 min
When someone talks about abstractions, they’re usually trying to make the software more flexible. But that’s usually one of two kinds of abstractions.
April 30, 2016
5 min
What’s the best way to model a solution? In software, there’s several common ways of building solutions that solve specific problems. It’s worth trying to identify their characteristics and the …
March 31, 2016
5 min
The problem seems simple: open, edit, and save text files. This can range from JSON files to source code like every other editor.
February 29, 2016
2 min
The more you learn, the more this skill seems to be necessary. When missing a bug or a refactor opportunity, I wonder how did I miss this? Sure, everyone wants to learn from their mistakes. But …
January 31, 2016
4 min
Let’s mentally build an API for an e-commerce site. Let’s say we’re tasked with building the cart & checkout portion of the API. Building a RESTful API seems like the natural choice. At first, a Cart …
2015
November 30, 2015
5 min
Instead of sounding prescriptive, this article is much more descriptive.
October 31, 2015
2 min
People always ask about how did you learn this or work so quickly doing that? It’s a tough question to answer elegantly. And it’s a cop-out to vaguely say I spent my free time looking into that …
September 30, 2015
3 min
There’s a process behind every result.
August 31, 2015
5 min
As an engineer, one of the most valuable skills you can have is to communicate effectively. This applies both to your fellow engineers as well as non-engineers (PMs, designers, business). Obviously, …
July 30, 2015
5 min
It is difficult to always be improving in the software industry. In creative fields, many artists talk about churn. When starting out, there’s an enormous amount of work to produce to get better. If …
June 29, 2015
4 min
Software is always challenging to explain to non-engineers and having a metaphor is valuable to explain complex concepts. Bridges happen to be a good analogy to software. But the devil is always in …
May 3, 2015
10 min
What is simple?
April 15, 2015
2 min
It’s a bittersweet end to a chapter. I’ve thoroughly enjoyed my time at Pivotal Labs. I met a lot of great friends. I paired and talked with geniuses and newcomers alike. And I’d recommend anyone with …
January 31, 2015
3 min
It’s no secret that I’ve been interested in testing. Most of the work I’ve done are around example-based testing. While useful, it’s interesting to look at other communities for inspiration. I’m …
2014
November 8, 2014
9 min
Note: This previously was on Pivotal Labs blog.
October 24, 2014
9 min
This post was originally written on the Pivotal Labs Blog.
July 26, 2014
4 min
Languages that have dynamic introspection provide powerful meta-programming capabilities. This is generally done at runtime with additional memory used for storing metadata - such as types and method …
July 25, 2014
2 min
It’s great to use classic algorithms to solve problems at hand. Take this problem of ellipsis:
July 24, 2014
1 min
Every time you look at a new (or familiar) technology, you should ask: What are the tradeoffs?
July 7, 2014
4 min
Lazy data structures are a powerful abstraction can increase the readability of your program while encouraging separation of concerns.
Nothing tagged that way yet.