I am currently working at Trifacta.
I was previously a Node.js software engineer at Zendesk. I wrote their real-time notification infrastructure (Radar) and many other things.
Before that I was a doctoral student (Information Systems Science) at Aalto University School of Economics. I have a Masters in Cognitive Science from Helsinki University, and am proud to be a United World College graduate.
Books I've written (freely available)
Code highlights github/mixu >>
Recent blog posts blog.mixu.net >>
npm packages I've written npmjs.org >>
- gluejs. Build CommonJS modules for the browser via a chainable API.
- miniee. An EventEmitter-like client and server side library for routing events w/regexps.
- nwm. Dynamic window manager for X11.
- pixiedust. RESTful lazy chainable API generator.
- requireincontext. Wrapper to require() js files in a custom context.
Open source - own
- nwm (w: 165, f: 11). Tiling Node.js window manager for X11. [gh]
- siobench (w: 18, f: 4). Basic socket.io benchmarking. [gh]
- nwm-user (w: 4, f: 3). Custom nwm configuration. [gh]
- nodeko (w: 4, f: 1). Node.js window manager for X11 (written at NodeKO 2011). [gh]
- sioconfig (w: 3, f: 1). Socket.io HAProxy and Stunnel configs, and a test tool. [gh]
- glue (w: 2, f: 1). Build CommonJS modules for the browser via a chainable API. [gh]
- npm-lazy (w: 2, f: 2). A lazy local cache for NPM to make your local deploys faster. [gh]
- nbar (w: 2, f: 1). Status bar for nwm. [gh]
- controlflow (w: 2, f: 1). Node control flow patterns from my book. [gh]
- objector (w: 1, f: 1). . [gh]
- collections-lite (w: 1, f: 1). Simple collection classes for JS. [gh]
- npm_push (w: 1, f: 1). NPM push API without the couchdb stuff. [gh]
- espresso (w: 1, f: 1). Syntax highlighting theme for Sublime Text 2 and Guake. [gh]
- nplay (w: 1, f: 1). Node frontend for mpg321 with Winamp key bindings.. [gh]
- fake.io (w: 1, f: 1). Fake Engine IO server and client for running tests without starting a server. [gh]
- tcp-loadbalancer (w: 1, f: 1). TCP load balancer for running load balanced scenario tests. [gh]
- nodeunit-runner (w: 1, f: 1). A simple nodeunit test runner for invoking tests via node. [gh]
- evlog (w: 1, f: 1). Message sequence logging for evented servers. [gh]
- heartbeat (w: 1, f: 1). Combine multiple recurring timers to a single interval. [gh]
- minimal (w: 1, f: 1). A router and http client - without unnecessary additions, modifications, or complications. [gh]
- eventspy (w: 1, f: 1). Helper for writing event emitter / pubsub tests. [gh]
- injector (w: 1, f: 1). . [gh]
Open source - bitbucket
- Kohana-translate (link). A translation management for Kohana 3. Allows you to provide web access to your application translation files to translators. Supports import/export/merge translate files for Kohana. Includes patch which automatically collects strings to translate during development.
- Kohana 3 validation helper (link). Kohana 3 validation helper. Wraps forms in your custom markup, shows errors in correct context on form.
Open source - forks
- node-getrusage (w: 2). C++ Port of Unix getrusage for getting cputime, usertime and other process information
- statsd (w: 1). Simple daemon for easy stats aggregation
- engine.io (w: 1).
- browserbuild (w: 1).
- socket.io (w: 1). Realtime application framework for Node.JS, with HTML5 WebSockets and cross-browser fallbacks support.
- socket.io-client (w: 1). Sockets for the rest of us
Presence and status infrastructure. A custom backend for Zendesk's presence and notification functionality, built on top of Engine.io.
Chat infrastructure. A custom backend for Zendesk's chat, built on top of Socket.io.
Git/Hg repository replay tool. A source code visualizer, where you can play back commits of any tracked repo via a slider online.
Feedback tool. A dead-simple feedback tool built in 48 hours during Garage48 Helsinki. I wrote the high-performance backend in Node.js. [blog post]
Online scholarship application web app. Supports writing applications online (e.g. essays, grades, attachments); writing teacher's and principal's recommendations, reviewing applications and creating various Excel exports and PDF exports. [link]
YUI2 toolkit. An abstraction over Yahoo's User Interface (YUI) which simplifies interaction between YUI user interface elements and provides additional functionality for trees, tables and dialogs. Contains a portable search module which allows for easy creation of applications which require record search.
Purchasing & inventory management web app. Intranet app for various business processes, including purchasing, inventory management, procurement planning etc.
Human resources application. Allows users to fill in detailed (150+ item) profile via self-service portal. Supports PDF and Excel exports. Admin functionality for personnel reserve management, training management, contract creation, payroll reports. Sophisticated search options which allows all fields in the CV's to be searched with results updated in real time.
Older work. Tons of it... apps for the Finnish Army, Helsinki University etc.
- On real-time at larger scale at NodeConf 2012 in Portland
- On Node and Socket.io at Zendesk at Node.js Club SF on November 30th 2011 in San Francisco
- On Node.js at Frontend.fi on May 11th 2011 in Helsinki