October 17th, 2025

Building Gus: A Lightweight Terminal Agent in Modern Java

I built a terminal AI agent in Java 25 to explore LangChain4j and modern Java features like sealed classes, pattern matching, and text blocks. It's named after my dog who also needs better training.
Read the full post

October 10th, 2025

Getting jpackage to Work with CrowdStrike

How to properly code sign jpackage applications to avoid CrowdStrike quarantine on macOS.
Read the full post

September 26th, 2025

The Lost Art of Slow Gaming

Finding games for kids that are slow, thoughtful, creative, and void of dark patterns in today's digital landscape.
Read the full post

September 20th, 2025

Losing Touch with the Inner Workings

As I use AI tools to solve time-consuming things, I find myself becoming less and less aware of how those things work under the hood.
Read the full post

July 2nd, 2025

The Individualized Creator Economy

What I find interesting in this example is this trend towards, what I'm calling to myself the Individualized Creator Economy, or ICE for sure.
Read the full post

May 28th, 2025

Building Arc (in a few hours)

I wanted to write a blog post about some OpenCV stuff I did in Java using the Foreign Function & Memory API, but then realized, I didn't have a blog. I couldn't bare using some Javascript engine, so I built my own in Cursor. It's called Arc. This post is both about Arc, and the experience of building it in a few hours.
Read the full post

May 26th, 2025

My New Personal Site

I needed another blog post to show that Arc works, so here it is.
Read the full post

January 11th, 2019

Creating the Boom 💥 Emoji

The story of how we created the original boom emoji in 2012 for HipChat that eventually became global across Slack and other platforms.
Read the full post