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.
A Ruby library for building command-line applications.
A Ruby library for in-memory, non-timeseries metrics.
A Ruby library that assists in building modular code with plugins.
A game of Solitaire for macOS and other desktop operating systems.
A markup language aimed at technical writers for semantically marking up prose, without limiting itself to the semantics provided by HTML or Markdown.
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.
A Ruby library for buffering and merging slow enumerators.
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.
A game engine implemented in Crystal.
An experimental parser combinator library for Ruby.
A set of extensions for writing stream-processing code in Ruby.
A 2D game engine written in Crystal.
A cloud music player with a retro look.
A virtual machine emulator and assembler written in Crystal.
A game made at the Berlin Mini Game Jam on August 31st, 2014.
nPages
A simple CMS written in PHP. In some ways, this is what let me to create Nanoc soon after.
Alurio
An advanced chat system. We had a few exciting prototypes up and running, but we did not get far with it.
Verenia
A point-and-click adventure game. It never made it far. Making games is hard.
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?
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.
An introduction to fibers
An introduction to fibers in Ruby, along with a handful of use cases.
Code as data
An exploration of the business advantages of treating code as data to be analysed and transformed.
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.
How to memoize
A journey through the many intricacies of writing a memoization library in Ruby.
Let’s create a programming language!
Let’s write a parser!
A Small Smalltalk talk
I wanted a computer, but all I got was a transistor
Simulating a CPU with Ruby
Taming memory: performance-tuning a Crystal application
Creating games with entities and components
Static site generation for the masses
Extending a base product for multiple customers
Static sites with nanoc
A Small Smalltalk Talk
Make your web sites faster!
Metaprogramming and DSLs in Ruby
Articles
Take a look at the list of articles I’ve written.