Below are topics offered by DSLAB for Bachelor and/or Master projects/theses. If you have already been admitted to the doctoral program and are interested in a Ph.D. semester project, please email Prof. Candea directly.

Please read our projects guide to understand how we supervise projects in DSLAB, what we expect from students, the formal requirements, and the grading scheme.

DSLAB works on computer systems, with some formal methods and networks as well. You can therefore think of our projects as extensions of courses like EPFL’s Operating Systems (CS-323), Software Engineering (CS-305), Systems-Oriented Programming (CS-207), and/or Computer Networks (COM-208). To be productive and happy doing our projects, you must be enthusiastic about these subjects and must have done very well in these (or equivalent) courses. Learning on the fly is both encouraged and necessary, but in a semester project there is limited time to learn things you could have learned from courses, hence the need for existing knowledge and skills. For example, you should not find low-level programming like C/Rust and the notions of stack/heap/pointers intimidating.

To do a Master thesis in DSLAB, you must have already taken the Principles of Computer Systems course.

The following list is for Fall 2023.

If interested, e-mail us at

  • one paragraph of motivation explaining which project(s) interest(s) you and why
  • your résumé (curriculum vitae)
  • a grades transcript

Developing Benchmarks for Metastable failures

This project is offered jointly with Prof. Sanidhya Kashyap’s RS3LAB.

Metastable failures is a class of bugs that manifest as a consequence of the interaction of various components in an application when the individual components by themselves do not exhibit these failures.

This class of failures is mostly applicable to datacenter applications and was recently highlighted by Bronson et al. in HotOS’21. One key aspect of this class of failures is that systems that enter a metastable failure state usually cannot recover from it without human intervention or system reboots. Moreover, they can be cascading in nature, causing outages for hours. A recent paper at OSDI’22 does a case study on such bugs. This aim of this project is to develop benchmarks to better study these bugs and come up with resolution mechanisms.

In this project, you will :

  • Study open reports of major outages at companies running applications at datacenter scale.
  • Write a set of benchmarks implemented as microservices with configurations that can trigger metastable failure states

You will learn:

  • Distributed systems
  • Docker, Kubernetes, microservice architecture, cloud application design
  • Bug detection, testing, debugging

Porting realistic network functions to the “NFOS”

DSLAB is developing an “NFOS”, an OS for Network Functions (NFs) whose goal is to let developers productively develop NFs that scale on multiple codes. Developers write NF code as if there was a single core, and the NFOS scales the code to multiple cores. We have ported some NFs to this new programming model, but want to port even more in order to evaluate how easy it is to port existing NFs.

In this project, you will:

  • Pick an existing NF, such as the Snort intrusion detection system
  • Port this NF to the NFOS
  • Evaluate the programming model of NFOS through this port:
    • Is the NFOS model general enough to support that NF?
    • Does the NFOS model make it easy to write that NF?
    • Is the performance of the NF on the NFOS comparable to a hand-written multi-core version?
    • If the answer to any question is no, what should be changed?

You will learn:

  • Low-level networking concepts
  • Techniques for designing scalable software

Your own idea

Do you have a project idea related to DSLAB’s interests, such as dependability or practical formal verification?
Feel free to contact us!

In this project, you will:

  • Work on your own idea with our guidance
  • Discover something new, small or large

You will learn:

  • Something you don’t know already