I'm a programmer and computational engineering student and this is my portfolio.

Kerbal Space Program - Rocket Landing Automation


As a fun control systems exercise I wrote a script that can land a small rocket at various locations around the Kerbal Space Center.


Real-time Trajectory Optimization for Autonomous Vehicle Racing


For my BSc thesis I apply the techniques of model predictive control and convex optimization to the problem of guiding a vehicle around a racetrack in minimum time while taking the vehicle's acceleration limits into account. The program can run in real-time (around 20 Hz) on a desktop CPU. Links: Thesis (Mirror), Code


Formula Student Driverless

(2016, 2017)

I joined the Formula Student team Ecurie Aix to participate in the first ever Formula Student Driverless competition. There I helped build large parts of the automated driving software, including the basic software architecture (based on ROS and C++), and the vehicle path planning.


Collision Avoidance MPC

(2015, 2016)

For about one and a half years I assisted Bassam Alrifaee in his research on model predictive control for vehicle collision avoidance. I refactored various MATLAB scripts for the simulation and controllers into a coherent code base and rewrote the evaluation and visualization code.


Balancing Bot

(Jul 2016)

To get some experience with control systems in actual hardware I built a balancing bot. It is made with cheap electronics and hardware store materials. Using the sensors and state estimation the position and orientation of the board is determined. A manually tuned linear controller determines the required motor signal.



Control Challenges

(Aug 2015)

A browser game that challenges the player to write control algorithms for various physical systems. You can try it here.

Key Challenges

  • Modeling the physics with ODEs
  • Developing sample solutions for each level


Rocket Launch Browser Game

(Oct 2014)

A browser game that simulates a rocket launch. Try it here.

Used Technologies

  • JavaScript
  • three.js
  • SublimeText, Ubuntu


Rocket Landing Autopilot

(Sept 2014)

I am quite enthusiastic about SpaceX's attempts to land a rocket and wanted to see if I could solve a simplified version of this problem in a simulation.

Key Challenges

  • Inventing an effective control scheme.
  • Modeling the rocket physics with ODEs.

Used Technologies

  • Python
  • Pygame
  • LiClipse, Ubuntu


Fluid Simulation

(Feb 2014)

As an undergraduate research assistant I had the opportunity to implement a GPU accelerated fluid simulation algorithm.

Key Challenges

  • Figuring out how to program a GPU.
  • Understanding the 'Stable Fluids' paper.
  • Developing a simple ray tracer.

Used Technologies

  • C++
  • OpenCL
  • Visual Studio, Windows


Minesweeper Bot

(Apr 2013)

I had just learned about artificial neural networks and applied that to recognize digits in screenshots of Minesweeper which turned out to be very challenging and took me over a month.

Key Challenges

  • Implementing the Backpropagation algorithm.
  • Optimizing the artificial neural network.
  • Devising a heuristic to determine the position of mines and gaps from the current state.

Used Technologies

  • C# .NET
  • Visual Studio, Windows