This is a selection of projects I've had the opportunity to work on. Some are websites where I contributed designs or did the complete implementation, others are smaller tools which I've created to help me with everyday tasks. Some I did just for the challenge to learn something new and exciting.

Online course authoring and learning UI

While working at Better I was part of team which designed and implemented an online course authoring and learning user interface. We used AngularJS and TypeScript on the client side.

Encounter - The Game

Browser game modeled after World of Warcraft boss fights. Serves as a playground to test the latest browser technologies (WebGL, WebSockets, Object.observe, ...), JavaScript libraries (ReactJS) and engineering practices. The code is written in a mix of TypeScript and Haskell. I maintain the infrastructured and am the project lead.

The project is split into several independent parts. The client is a single page application which communicates with the server through a JSON API. The server is written in Haskell and uses RethinkDB for data storage. The games are hosted in servers which are written in Node.js.

Continuous Deployment Server

Mudbath evolved out of a necessity to allow my coworkers to easily and securely deploy code. It listens for GitHub deployment events and when it receives one, executes a shell script. It reports progress back to GitHub in the form of deployment status updates.

It does not have a UI of its own, but it can be controlled through a chatbot such as Hubot.

GitHub + Travis Google Chrome extension

This extension displays the travis-ci build status icon next to the project name on GitHub. When you click the icon it will take you right to the project page on travis-ci.org. Yes, that's all it does.

The CI status is a good indication whether the developers value testing. I try to avoid projects which have constantly failing tests. This extension helps me identify such projects without having to leave the GitHub page.