Welcome, Professor Reto Achermann
New@CIT |
What have been the most important stages in your academic career?
My interest in computer science began in third grade, when I took apart an old desktop computer and brought it to school to show my classmates what was inside. Looking back, that was probably the start of my journey as a computer science educator.
One of the defining moments was the third-semester course "Systems Programming and Computer Architecture" during my studies at ETH Zurich. During one of the lectures, Professor Timothy Roscoe pulled a tiny chip from his pocket. It was an Intel Single-Chip Cloud Computer—an experimental processor with almost 50 cores that could run 50 Linux instances on the same chip! This really fascinated me, and I ended up taking several more systems-related courses, followed by a Bachelor's thesis, a Systems Lab, a Master's thesis, and finally my dissertation.
After obtaining my doctorate, which apparently is not a PhD but actually a "Dr. sc. ETH Zurich", I was a Postdoctoral Research Fellow and later Assistant Professor at the University of British Columbia. I had the opportunity to work with Professor Margo Seltzer, who provided tremendous support in both research and teaching. This allowed me to work on fun research problems, for example, arguing with the Dafny proof assistant about the correctness of a concurrent algorithm. I also taught my first course and adapted Timothy Roscoe's infamous "Advanced Operating Systems" course to the University of British Columbia's circumstances. This course has now become a capstone-like, 400-level course that replaced the old operating systems course.
What are your main areas of research?
At the Technical University of Munich (TUM), my professorship is in Resilient Operating Systems. The main goal of my research is to ensure that computer systems operate correctly at all times. Consider a ticket vending system: A useful property is that this system gives you the right ticket, charges you the right amount, sends it to you within a reasonable time (definitely before the event) and does so regardless of how many users want to buy a ticket at the same time.
There are many aspects to building a resilient system for these tasks. Obtaining the right ticket can be phrased as the property of "functional correctness". I like to use theorem provers to establish a mathematical proof that the system correctly implements a property.
However, simply reasoning about this correctness property alone is not enough: The computer system must also compute the result within a certain timeframe and handle many customers. Therefore, we need to ensure that the system scales well and is efficient. This raises many interesting questions that we explore, such as: What kinds of machines should the system run on? How many of those do we need, and when should we add more? Does it make sense to use special-purpose hardware to speed up computations?
What are you most looking forward to in your new position at the TUM?
I'm really looking forward to working with outstanding students and colleagues on challenging problems, particularly to build resilient, high-performance computer systems. So far, my interactions with faculty, staff, and students have been phenomenal. I'm excited to build up my group and form new collaborations. And of course, growing up in Switzerland, taking up a position at TUM means being closer to home.
What was your biggest "aha" moment in your scientific career?
This may sound silly, but it turns out that to use a computer, it must be powered on, plus it must have a clock signal, and the hardware must also be configured correctly.
Why am I saying this? For my Bachelor's thesis, I was building a USB driver for the Barrelfish research operating system. This meant communicating with the USB controller of a smartphone-like device. However, the first attempts resulted in faults. Verifying the memory configuration required to communicate with the USB controller did not reveal any issues, yet things still did not work. I was asking myself: "Is that thing actually on?"
The aha moment here was discovering that the USB controller had neither power nor a properly configured clock signal, so all attempts to communicate with it resulted in faults. This led me to work on various projects at the hardware-software interface, ensuring that the operating system correctly programs the computer's hardware.
What is at the top of your personal bucket list?
To not have a bucket list. Joke aside: I like nature, so one thing I'd like to do is visit national parks on all continents.
