I’m a computer science undergraduate student at ETH Zürich broadly interested in verification, programming languages and compilers. Currently, I’m working on static verification within the Java Checker Framework.
You can reach me at skehrli[at]ethz[.]ch. This is my Github.
¶Education
- BSc in Computer Science from ETH Zürich (2021-2025).
- Exchange student at the University of Washington (2023-2024).
¶Research
Currently, I’m working on designing and implementing a type system to prove the absence of resource leaks on collections of resources in Java. This is implemented as a checker in the excellent Java Checker Framework. Advised by Michael Ernst:
¶Teaching
- Teaching Assistant in Parallel Programming. For this one, I wrote a course script and received the VIS Teaching Award for extraordinary commitment as a TA. Theory recaps and exercise solving for two classes at ~30 students each per week.
- Teaching Assistant in Algorithms & Datastructures. Weekly theory recaps and exercise solving for about ~25 students, grading their homework and co-supervising the final exam.
¶Projects
Before starting my undergrad, I was learning about ML algorithms in my free time. To understand neural networks better, I implemented a small neural network library in Python, using only few frameworks and implementing things like backpropagation from scratch, which was a great exercise. Later, during my studies, I added support for CNN’s (convolution and pooling layers), again with their own backpropagation implementation and rewrote the library in Cython, which transpiles to C for better performance:
For a compiler class I wrote a simple, unoptimized compiler for (a large subset of) Java in Java: