See also my GitHub profile

⚒ This page does not list all my projects, check out my Github profile for a more complete list.

💼 Company

Friendly Captcha

Human-friendly anti-bot protection for websites

Friendly Captcha is a cybersecurity company I co-founded that protects websites from spam and abuse, without giving up the user's privacy or making them click cars and fire hydrants.

💻 Applications and Libraries


Convert Go structs to TS types (without reflection)

Tygo is a tool for generating Typescript typings from Golang source files that just works.

It preserves comments, understands constants and also supports non-struct type expressions. It's perfect for generating equivalent types for a Golang REST API to be used in your front-end codebase.

Magic Login

E-mail verification and passwordless login SaaS

Magic Login is a transactional e-mail service with a simple API that has built-in support for authentication through e-mail.

This project received an undeserved cease-and-desist and I shut it down. I had better things to focus on..


In-browser literal notebooks

Jupyter Notebooks for the web.


A minimalist, unopinionated framework for Cloudflare Workers

A web framework for ServiceWorker environments, similar to Koa.

Friendly Captcha

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

A proof of work based alternative to ReCAPTCHA/hCAPTCHA that has a better tradeoff for users. Now incorporated as a German company (GmbH).


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.