The b(ack)log

These are some things I've worked on - some for fun, some for profit and some for both!

Learning Circles

Django, HTML5, integration with Twilio.

Study groups for online courses. P2PU is about community, and eventually it had to come to putting people together in the same room taking an online course together and helping each other. I was involved all the way from idea, dream, concept, implementation, refinement and hopefully a bit longer.

Start your own Learning Circle


Django, React, WebSockets, Zoom API

What if doing breakouts in Zoom calls could be collaborative and fun? That is what this proof of concept project explores. Users get to create breakouts and can choose what session to join while engaging in a light weight and interactive interface.

The code and the site

Album shuffle

Node.js, HTML5, React, Flickr API

Showing my travel pictures to friends used to be painful - 20,000 pictures with about 200 pictures per album! I created an app to pick 12 photos from an album. You can see some public albums at or log in with your own flickr account to see your albums.

Course in a Box

GitHub pages, Jekyll, social engineering :)

A course ‘un-platform’ where you get the help you need to get started and the freedom to break out of the box when you need to. You own all the pieces and when it breaks, the pieces are still yours.

The box, the source, the meta.

Save 4 Life

Node.js, Vumi from Praekelt for USSD interface, Django, Docker

Save 4 Life is a mobile savings wallet developed to help young adults learn basic financial literacy. Users buy airtime, save a portion of it and are rewarded when they achieve their saving goals. Users can also participate in periodic quizzes to test their knowledge and earn rewards.

Code is open source and can be seen here and here.


Django, React, WebSockets, Docker

Unhangout is an platform for running unconference style online events. I helped the project migrate from an old version of Django Channels. I also reworked the DevOps implementation to deploy the platform to an up to date base system following best practices., the source.

P2PU course platform aka Lernanta

Django, HTML5, JavaScript

Learning for all by all. The P2PU course platform offers the opportunity for anyone to take a course and anyone to make a course. I inherited this project and was responsible for sheparding it for several years. At it’s peak it was available in English, Dutch and Spanish.

The platform, the source

Marvin, cuddly little robot he is

Ansible and Docker.

Automated application deployment, what more could a developer ask for. After many ‘successful’ deployments on servers with git managed /etc folders I automated our deploy process. I never looked back, but came back to visit a few times.

The source

P2PU badge platform

Django, HTML5, OAuth integration.

An open badge issuing platform built to encourage project based learning and peer feedback. None of the gamification hoohaa. I worked with the always insightful Vanessa Gennarelli to build this project from concept to pre-MVP and handed it over to the trustworthy hands of Erika Pogorelc to launch and shephard.

The platform, the source

The Mechanical MOOC

Django, HTML5, MailGun, Twitter, Amazon Web Services integration

An automated course co-ordinater to run large courses based on open content with minimal overheads.

The source

AWS S3 backup rotation

Python, Amazon Web Services S3

A server script that uploads backup files to AWS S3 keeping more recent files and less older files. This was the first package I pushed to Pypi!

Pypi package, source

Grouping groupies

Python, EchoNest integration, k-means algorithm

Grouping learners for a sound engineering course according to music taste. Working with the genial Alex Ruthmann on a course involving Peter Gabriel we decided to group groupies together. I used the k-means algorithm to put learners with similar musical taste as per the EchoNest API together in a group. I never thought I’d use this bit of university knowledge.

A description

D3 visualizations

D3, JavaScript, SVG, HTML5

Several visualizations using D3 - A bubble diagram, a force graph and a bar graph.

Blog post with the visualizations

Vizualizing complexity in Gentoo

Python, SVG, portage

A visualization showing the complex interdependencies between software packages in the Gentoo linux system.

Blog post with the visualization

Postbox magazine DVD

haXe, swfmill, Python

Interactive DVD featuring music, photography and video accompaning a magazine. Family obligation forced me to do this project. Luckily I generally support the arts and managed to implement most of this using open source software, but no way to sleep through all those ‘all nighters’ now.

Pi Box and Pi Box 2

Ruler, Inkscape, recycled cardboard, glue, carpet knife.

What is better than a case built from recycled paper for your original Raspberry Pi version 2? A new Raspberri Pi 3 that doesn’t fit in the box, sadly :(

Box, the second box.

Isla Falta

Blender 3D, diamond-square algorithm, Python.

Every man should have an island, so I set out to create my own, procedurally! I started in Blender and implemented a seeded version of the diamond-square algorithm to generate realistic terrain following the overall geography. Maybe someday I’ll get to have my island?

Read more


WebGL, JavaScript, HTML5

A 3D sphere created by subdividing a octahedron. It turned out I was too lazy to enter all the initial coordinates for making a sphere by subdividing a icosahedron, so I took the shortcut. Can someone please explain why icospheres are popular but octaspheres aren’t?

An octasphere