I have worked in data stream processing at Materialize and in operating systems during my Ph.D. at ETH Zurich in the Systems Group. At Materialize, I contributed to the protocol design and observability of the compute engine. During my Ph.D. I applied formal methods to configure and represent various hardware subsystems in operating systems:
Writing an OS is a tedious and painful journey. To ease the pain, operating
system designers are often quick to make up a mental model of the hardware their OS is interacting
with. Initially, this provides great joy, as a Hello from userspace!
message can
achieved quickly, but bites you later when you realize that your abstractions
do not survive contact with real and messy hardware.
My research interest is precisely those, often simplified, usually implicit, but never absent, hardware models. I want to help you by providing better hardware abstractions and showing techniques how these can be developed. Whenever possible, we formalize these models and prove guarantees. We have successfully applied this technique to interrupts, memory, and a low speed system configuration bus. With these guarantees, you will write a better OS by 5pm, and you can peacefully enjoy a Rosé with your fiancé*e.
I enjoy hacking on Barrelfish, our main research vessel. I received my Master of Science in Computer Science from ETH Zurich in 2013. Occasionaly, write some status update on what I am working in my Log.
This course is about real computer systems, and the principles on which they are designed and built. We cover both modern OSes and the large-scale distributed systems that power today's online services. We illustrate the ideas with real-world examples, but emphasize common theoretical results, practical tradeoffs, and design principles that apply across many different scales and technologies. Course Catalog
Diese Lehrveranstaltung vermittelt wichtige Basiskonzepte zur Bearbeitung interdisziplinärer Programmierprojekte. Als Programmiersprache kommt Python und Matlab zum Einsatz. Course Catalog
This course is about real computer systems, and the principles on which they are designed and built. We cover both modern OSes and the large-scale distributed systems that power today's online services. We illustrate the ideas with real-world examples, but emphasize common theoretical results, practical tradeoffs, and design principles that apply across many different scales and technologies. Course Catalog
Diese Lehrveranstaltung vermittelt wichtige Basiskonzepte zur Bearbeitung interdisziplinärer Programmierprojekte. Als Programmiersprache kommt Python und Matlab zum Einsatz. Course Catalog
This course is about real computer systems, and the principles on which they are designed and built. We cover both modern OSes and the large-scale distributed systems that power today's online services. We illustrate the ideas with real-world examples, but emphasize common theoretical results, practical tradeoffs, and design principles that apply across many different scales and technologies. Course Catalog
Diese Lehrveranstaltung vermittelt wichtige Basiskonzepte zur Bearbeitung interdisziplinärer Programmierprojekte. Als Programmiersprache kommt Python und Matlab zum Einsatz. Course Catalog
Introduction to systems programming. C and assembly language, floating point arithmetic, basic translation of C into assembler, compiler optimizations, manual optimizations. How hardware features like superscalar architecture, exceptions and interrupts, caches, virtual memory, multicore processors, devices, and memory systems function and affect correctness, performance, and optimization. Course Catalog
Diese Lehrveranstaltung vermittelt wichtige Basiskonzepte zur Bearbeitung interdisziplinärer Programmierprojekte. Als Programmiersprache kommt Python und Matlab zum Einsatz.
Instruction sets, storage hiearchies, runtime structures with an emphasis on computers as engines for the execution of compiled programs. Interaction between system software and the hardware. Problems that arise from the final respresentation, performance measurement and tuning, and program portability issues are covered. Course Catalogue
This course is about fundamental algorithm design paradigms (such as induction, divide-and-conquer, backtracking, dynamic programming), classic algorithmic problems (such as sorting and searching), and data structures (such as lists, hashing, search trees). Moreover, an introduction to parallel programming is provided. The programming model of C++ will be discussed in some depth. Course Catalogue
Instruction sets, storage hiearchies, runtime structures with an emphasis on computers as engines for the execution of compiled programs. Interaction between system software and the hardware. Problems that arise from the final respresentation, performance measurement and tuning, and program portability issues are covered. Course Catalogue
This course examines and critiques the design of the Internet, with a focus on the connection between the engineering features and principles of the network and the legal, economic, and political concerns which have followed its evolution. Course Catalogue
Between 2022 and March 2023 I worked as a software engineer at Materialize.
In summer 2017, I did a research internship at HP Enterprise.
During and after my studies, I worked as an engineer at
Triboni, UMS.ch
and did an internship at Wuala.
Refer to my
CV for details.