Software engineer @stripe; I write books and code.

Studies: LPCUWCU. HelsinkiAalto U.

Work: Finnish Defense Forces → Own company → ZendeskTrifactaStripe!

Social media: Twitter, Github

Books I've written

Learn CSS Layout the pedantic way (2015)

Walks you through every major concept in CSS layout, without trying to simplify away the underlying mechanisms described in the CSS 2.1 and flexbox specs.

Alternative formats: Github, Single HTML page, PDF.

Distributed systems: for fun and profit (2013)

An introduction to distributed systems.

Alternative formats: Github, Single HTML page, Kindle .mobi, PDF and .epub.

Single page apps in depth (2013)

Single page web apps and good practices around writing single page apps.

Alternative formats: Github, Single HTML page, Kindle .mobi, PDF and .epub.

Mixu's Node book (2012)

Node.js patterns and core libraries, JS gotchas, control flow and

Alternative formats: Single HTML page, Kindle .mobi, PDF and .epub.

Popular Github projects


Tiling window manager for X11 written in Node.js


Markdown to HTML generator and multiple CSS themes for Markdown


A lazy local cache for NPM to make your local deploys faster


Lightweight client & server-side logging with Stream-API backends.


Build CommonJS modules for the browser via a chainable API


High level API and backend for writing web apps that use push messaging

Unpopular but fun projects


Capture website screenshots with optional device and network emulation as jpg, png or pdf (with web fonts!) using Electron / Chrome.


Automatic static site generation on git push using AWS Lambda and markdown-styles using a Gulp-style API.


Like underscore for Node streams. Functions for iterating over object mode streams: forEach, map, mapKey, reduce, filter, fromArray, toArray, devnull, pipe, head, tail, through, thru, writable, readable, duplex, pipeline.


A trivial Datalog with top-down and bottom up evaluation written in Javascript to learn how Datalog evaluation works.


Multiple git repository management tool


Render static blog sites from Markdown using Ghost themes


Archey.js is a system information tool written in JS (based on Archey)


Console-based mp3 player with Winamp key bindings and jump-to-file


Display CPU usage in your tmux status bar or in the terminal.


Display memory usage in your tmux status bar or in the terminal.


A tiny client and server -side EventEmitter for routing events.


Time-limited, HMAC-based authentication token generation


Serialize circular references, custom objects and other types not supported by JSON


A simple implementation of vector clocks in Javascript.


Syntax highlighting theme for Sublime Text.


  • On single page apps at HTML5Conf 2012 in SF
  • On real-time at larger scale at NodeConf 2012 in Portland
  • On Node and at Zendesk at Node.js Club SF on November 30th 2011 in San Francisco
  • On Node.js at on May 11th 2011 in Helsinki