Optimizing Compiler in Python
As a project in Prof. Dr. Michael Franz's Advanced Compiler Construction class, I created this optimizing compiler for a simple programming language. It includes a backend for the DLX instruction set architecture.
Two-phase Commit Server Implementation
This is a simple implementation of a two-phase commit protocol in Python. Agents communicate through a RPC-like protocol that uses JSON for serialization. Participant nodes write to a backing PostgreSQL database for both logs and data. Using logs and the two-phase commit protocol, atomicity and consistency of writes to the database is ensured in a network of non-byzantine, but possibly failing nodes. This program is the result of a project in the CS 223 Transaction Processing and Distributed Data Management course.
Artificial Intelligence Agent for the Game of Sokoban
This C++ program solves levels of the game of Sokoban using A* search with a minimum cost heuristic. The program also allows interactively playing the game on the command line. This group project was completed as part of the CS 271 Introduction to Artificial Intelligence class.
Efficient GPU Implementation of Stencils on Unstructured Grids
For my bachelor thesis, I implemented and benchmarked three stencil computations — local calculations applied to every cell in a three-dimensonal grid — using the Nvidia CUDA programming model on regular and unstructured grids. I explored five methods to access a grid’s cells in a stencil code and tested four strategies for storing the grid’s structural information (neighborship table). Notably, I conceived a compression scheme for the neighborship table, which improves runtimes compared to uncompressed implementations by 30% in some cases. Most of the other optimizations make use of an assumed regular structure in one of the dimensions.
Teaching Distributed Sytems: Slides
For my exercise session to the lecture Distributed Systems, I created slides on the topics of Paxos / Consensus, Byzantine Agreement / Asynchronous Consensus, Consistency / Clocks / GPS, Quorums / Bitcoin, Game Theory / Distributed Storage and PBFT / Advanced Blockchain. The slides are text-heavy in order to be self-contained.
Seat León CAN Bus Sniffing
As all modern cars, the 2019 Seat León (5F) sports several CAN buses for communication between its engine, sensors, infotainment system, etc. I have built an adapter that plugs into the passanger-side door connector to tap into one of those buses. I am now trying to reverse engineer the data stream.
Visualization: Zurich Parking Fee Increase of 2017
For a semester group project in my Economics of Urban Transportation lecture, I investigated the effects a parking fee increase in the center of Zurich had on traffic volume.
HTML5 Canvas Experiments
To familiarize myself with the HTML5 Canvas technology, I created two rudimentary experiments. One lets you maneuver a truck-trailer combination in a birds-eye view, the other shows a vector map of the main roads in the city of Zurich.
André Rösti Webdesign
Between 2015 and 2017 I created several websites for small companies and private clients. This included (among others) the website for a textbook on law (including a license-restricted access area and backend to create new licenses) in 2015, subsequently also for a textbook on accounting (2017), as well as websites for a holiday apartment (2015), a children's play group (2015), a restaurant (2016) and a website overhaul for this sporting goods store (2016). I used to advertise my services on this page.
Music Visualization in Python
For my high school graduation project, I wrote a paper explaining in detail how a music visualization program can be implemented using Python and the Cairo graphics library. Illustrated explanations of the Fourier transform and the wave file format as well as a history of music visualization are featured.