Teaching
I teach at the Department of Advanced Computing Sciences at Maastricht University. This page includes various resources related to that.
B.Sc. Thesis Topics (last updated Fall 2025)
I supervise third-year B.Sc. thesis projects.
General topic areas
I’d be delighted to discuss proposals falling within these general areas:
- Actor-model concurrency
- Federated and Distributed systems
- Personal and Small-Group (“Social”) Computing
- Computer Networks
- Programming Languages
- Domain-Specific Languages
- Operating Systems
Specific project ideas
Alternatively, here are a few more specific ideas to build on.
“Run Your Research”
The idea is to (1) read a recent paper that you find interesting from a top Programming Languages (PL) or Systems journal or conference, and (2) to use formal modelling techniques to produce an executable model of the language or system concerned. Then, (3) test the model using hand-written and/or various kinds of randomized or automated tests, in hope of (4) finding and reporting possible bugs in the system as presented in the paper.
Suitable PL venues might include the most recent POPL, ICFP, OOPSLA, PLDI, ESOP, ECOOP, ASPLOS (etc).
See:
- C. Klein et al., “Run your research: on the effectiveness of lightweight mechanization,” in Proc. 39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Philadelphia, Pennsylvania, Jan. 2012. doi: 10.1145/2103656.2103691.
Reproduce some research
As for Run Your Research, but less formal and more experimental. We could consider a wider selection of sources.
One possibility is to consider development of Operating System features from the literature
atop a pedagogic OS such as xv6.
Explore a topic connected to Syndicate
My research is on a style of distributed systems programming called Syndicate. I’d love to see ideas about how one might apply Syndicate techniques to various problems.
For example,
- What would it be like to use Syndicate to structure a CI/CD system?
- Previous work has used Syndicate as a replacement for
systemd,dbusand friends; there’s more to do in this direction. A fun extension might be to try a distributed init system! - What is a good way to use Syndicate assertions to control containers (via
docker,podman, or something more exotic likebubblewrap)? Could this be a quick-and-dirty way to get 80% of a Kubernetes-like system? - Could we apply the queue management lessons from https://apenwarr.ca/log/20170814 to Syndicate implementations such as
syndicate-rs?
