Work

This page lists most of the projects I’ve had. I’ve probably forgotten quite a few.

This page doesn’t detail my employment history. If you are interested in that, please refer to my CV/Résumé instead.

Software

Instantly serve a local directory as a web site — with optional auto-reloading. Great for local development.
2009–…
A Ruby library for building command-line applications.
2009–…
A Ruby library for in-memory, non-timeseries metrics.
2017–…
A Ruby library that assists in building modular code with plugins.
2013–…
A game of Solitaire for macOS and other desktop operating systems.
2024–…
A markup language aimed at technical writers for semantically marking up prose, without limiting itself to the semantics provided by HTML or Markdown.
2017–…
A powerful and flexible static-site generator, used at GitHub, at GitLab, at PayPal, for Prometheus, at FOSDEM, for Atom, at Disney, and in many more places.
2007–…
A Ruby library for buffering and merging slow enumerators.
2017–…

Old

The following pieces of software are not actively maintained. Some of them were experimental and unstable, and others simply have reached their end of life.

A powerful, memory-efficient Ruby library for memoizing.
2017–2022
A game engine implemented in Crystal.
2016–2022
An experimental parser combinator library for Ruby.
2016–2021
A set of extensions for writing stream-processing code in Ruby.
2017–2021
A 2D game engine written in Crystal.
2016–2019
A cloud music player with a retro look.
2017–2018
Memory
A memory game, written in Crystal using Glove, a game engine I built.
2017
A virtual machine emulator and assembler written in Crystal.
2015–2016
A game made at the Berlin Mini Game Jam on August 31st, 2014.
2014
nPages
A simple CMS written in PHP. In some ways, this is what let me to create Nanoc soon after.
2006
Alurio
An advanced chat system. We had a few exciting prototypes up and running, but we did not get far with it.
2004–2005
Verenia
A point-and-click adventure game. It never made it far. Making games is hard.
2003–2004

Talks

I’ve given a handful of talks over the past few years. The pandemic had taken some of the joy (and possibility) out of it, but I’m slowly picking up my public speaking habits. Here is a list of talks I have given.

A language built with third-party code reuse in mind
It’s unthinkable to build a piece of software without using existing libraries and frameworks. But reusing code written by other people comes with risks. Can we create a language that facilitates safe code reuse, across an open-source ecosystem?
2023
The importance of naming
Naming is hard — but at a previous company I worked for, the naming problems were more than just annoying. Based on examples of bad naming, I formulated a set of principles that I consider indispensable for any well-running tech team.
2020
An introduction to fibers
An introduction to fibers in Ruby, along with a handful of use cases.
2017, 2019
Code as data
An exploration of the business advantages of treating code as data to be analysed and transformed.
2018, 2019
Clean & fast code with enumerators
Ruby’s Enumerator class is a powerful tool for writing code for dealing with streams of data and events. This talk also shows how to effectively use enumerators for slow data sources.
2018
How to memoize
A journey through the many intricacies of writing a memoization library in Ruby.
2018
Let’s create a programming language!
2016
Let’s write a parser!
2016
A Small Smalltalk talk
2015
I wanted a computer, but all I got was a transistor
2015
Simulating a CPU with Ruby
2015
Taming memory: performance-tuning a Crystal application
2015
Creating games with entities and components
2014
Static site generation for the masses
2013
Extending a base product for multiple customers
2012
Static sites with nanoc
2012
A Small Smalltalk Talk
2011
Make your web sites faster!
2009
Metaprogramming and DSLs in Ruby
2009

Articles

Take a look at the list of articles I’ve written.