See also my GitHub profile

⚒ I am slowly adding projects.. Work in progress!

💻 Applications and Libraries


In-browser literal notebooks

Similar to Project Iodide but with different tradeoffs, in my opinion the future of Jupyter Notebooks. This is definitely a work in progress, check out the website!

Friendly Captcha

Proof of work based CAPTCHAs that are accessible, user and privacy friendly

More details to be added..


Zarr that runs in the browser, Node and Deno.

Zarr is a python library for chunked large multi-dimensional datasets. This library is a library that allows one to interact with these large datasets in the browser.

This was a particulary large undertaking because the browser (javascript) does not ship with any good support for multidimensional arrays or utilities like slicing, that all had to be implemented from scratch.


Neural Network weight transfer - Pytorch <> Keras

Utilities for converting PyTorch models to Keras and the other way around. More specifically, it allows you to copy the weights from a PyTorch model to an identical model in Keras and vice-versa.

I created this tool out of my own need, and since open sourcing it it has been starred over a hundred times on GitHub.
It is unique in the way it works from other tools, as it does not infer the model structure itself. That is where every other tool has the most difficulty (and often fails). In this tool instead you define the same model architecture yourself.

🏆 Hackathons

LI Hackathon (September 2017)

Legal Search Innovation Hackathon - Winning team - €5000 prize

Armed with access to a large corpus of hundreds of thousands of legal documents, the Legal Intelligence API, and the goal to innovate in search of legal documents we created Leegle (Legal Google).

Leegle is an in-browser graph based legal document explorer, where documents are linked by common court cases and law references. The tool seamlessly integrated with the existing Legal Intelligence search engine using a simple Chrome browser plugin.

AIVD Hackathon (March 2017)

Dutch Intelligence Service Hackathon - 2nd place

The objective of this 24 hour hackathon was to create anything that could be of value to the Dutch intelligence service. With this vague problem statement, we talked to various stakeholders, and identified that a big part of preventing extremism is identifying those that may develop extremist views.

We created TerrorFlow, a tool for automatically detecting individuals that are at risk of turning to extremism. This was done by identifying various objects in images and videos (e.g. burning flags, AK-47s) posted publicly on Instagram and Youtube, the results of which could be viewed in an in-browser tool.

🏅 Kaggle Competitions

National Data Science Bowl 2017

Kaggle Machine Learning competition - Top Kernel Winner - $5000 prize

Wrote the most popular Kaggle kernel in the biggest yearly machine learning competi- tion. This kernel described how to preprocess and segment lungs in CT images. To this day it is still the most upvoted kernel of any Kaggle competition with prize money.

Ultrasound Nerve Segmentation (August 2016)

Kaggle Machine Learning competition - 9th place (top 1%)

Tackled the problem of identifying nerve structures in ultrasound images using a hybrid approach using classical computer vision features (SIFT) and an adapted version of the fully convolutional network Unet architecture.

Diabetic Retinopathy Detection (July 2016)

Kaggle Machine Learning competition - 11th place (top 2%)

Applied a convolutional neural network approach to automatically diagnose diabetic retinopathy, which is the leading cause of blindness in the US, from retina pictures. Trained on GPUs on a large cluster, achieving better than human expert performance.

National Data Science Bowl 2016

Kaggle Machine Learning competition - 68th place (top 7%)

Developed a deep learning method for automatically classifying plankton from low res- olution black and white images. Also helped develop a method for unsupervised feature extraction based on kNN clusters of image patches, which performed worse.