Evert Heylen

About me

I like to solve problems, usually with code. Currently, I'm studying for my Master of Computer Science, with a focus on Artificial Intelligence. I live in Belgium. My hobbies include space, various sports and mountain hiking.

I am fluent in Python and C++ (and combining both), and I have some experience in Go, Javascript, Java, Haskell and Prolog. I like open-source software, in particular Linux, Firefox, KDE and various libraries like Keras. When writing code I focus on simplicity, modularity and clear documentation.


A small selection of my favorite projects:


A small webapp to make drawings that are easy to embed in Notion. This allows me to add small drawings into my notes. Various tricks keep the overhead very low, and make the experience of drawing as smooth as possible.


Sparrow stands for Single Page Application Real-time Object Wrapper. Originally I created this in the context of a database project at university, which didn't allow any existing ORM libraries. Instead of resorting to writing SQL manually, I made my own.


This is a implementation of the concepts underlying Prolog and logic programming, in pure Python. I made this because the concept of logic programming seemed unlike anything I had ever done before, and I wanted to bridge the gap with my usual way of programming. It's fully functional and has great Python integration.

IGMPv3 in ClickC++py

Made as a project for university, it's an almost complete implementation of the IGMPv3 protocol for the Click modular router. Network programming turned out to be pretty fun and I went much further than the original assignment. I also wrote a test framework in Python that wraps the Click router.


Made during my first year at university, it ended up surprisingly good. The basic premise is fuzzy matching of regular expressions in DNA. What makes it special is that by using suffix trees, typical automata algorithms and ruthless optimization, we pushed the performance to extremes. Searching virtually any file (if it fits in memory) completes within milliseconds and can return thousands of matches.