PhD candidate at VUB and UGent.
Conducting research in semantics and type theory for concurrent and distributed programming languages.
MSc in Computer Science at VUB.
Excited about Unix, language design and good music.
2015 - Present
University of Brussels - University of Ghent
PhD Computer Science
I am conducting research in the field of type systems. Currently I am focusing on improving the applicability
of session types. A type system for distributed and/or concurrent applications that allow enforcing of protocols.
2012 - 2015
University of Brussels
MSc in Computer Science (magna cum laude)
»Combining the Actor model with Software Transactional Memory«
extensively studied the viability of integrating the actor model with software transactional memory and vice versa. Created proof of concept implementation in Clojure. Created operational semantics.
2009 - 2012
BSc in Computer Science (programming major)
Teaching assistant "Multicore - OpenCL".
OpenCL teaching assistant.
Teaching assistant "Programming Project I".
Creating assignments, guiding and grading students.
Custom software solutions
Built real estate website using the Umbraco CMS (.Net) from scratch
Connected website to legacy back-end
Assembling, repairing computers.
Gave a short technical talk by invitation on the Elixir/OTP framwork.
Abstractions for Distributed Event Driven Programs
On the design of abstractions for dynamic IoT applications.
Practical Session Types
On the requirements for the implementation of practical session types
in contemporary languages.
Abstractions for Distributed Event-Driven Applications
The Internet of Things (IoT) requires us to rethink the way distributed event-driven applications are programmed. IoT applications differ from traditional distributed applications on a number of points.
First, they are comprised of an order of magnitude more devices that operate within a dynamic network.
Second, failure in large dynamic networks is no longer an exceptional state but a given and thus needs to be part of the core semantics when programming such networks.
Third, the hardware in these networks is not homogeneous so that a common software stack is impossible.
We believe that contemporary event-driven languages do not offer appropriate abstractions to write IoT applications.
We propose a novel computational model for programming IoT applications by
identifying four key abstractions for designating network nodes and handle failures that facilitate writing large-scale IoT applications.
First-Class Reactive Programs for CPS
Cyber-Physical Systems (CPS) are comprised of a network of devices that vary
widely in complexity, ranging from simple sensors to autonomous robots.
Traditionally, controlling and sensing these devices happens through API
communication, in either push or pull-based fashion. We argue that the
computational power of these devices is converging to the point where they can
do autonomous computations. This allows application programmers to run programs
locally on the sensors, thereby reducing the communication and workload of more
central command and control entities. This work introduces the Potato framework
that aims to make programming CPS systems intuitively easy and fast. Potato is
based on three essential mechanisms: failure handling by means of leasing,
distribution by means of first-class reactive programs, and intentional
retroactive designation of the network by means of capabilities and dynamic
properties. In this paper we focus on the reactive capabilities of our
framework. Potato enables programmers to create and deploy first-class reactive
programs on CPS devices at run time, abstracting away from the API approach.
Each node in the network is equipped with a minimal actor-based middleware that
can execute first-class reactive programs. We have implemented Potato as a
library in Elixir and have used it to implement several small examples.
FP (Haskell, Clojure, Racket, Elixir, …) Language implementation
Jazz, Hip-Hop, Rock
for personal projects.