Below are a few technical projects of mine.

Go Behave

December 2018. Go Behave is a behavior tree library in Go. Please refer to the project repository for more information.

August-October 2018 (on hold). Wloggr ("workout logger") is a web application that lets users register and maintain a log of workouts. The frontend is built with React.js and communicates via a RESTful API with a Go backend. Code is available on the project repository.

Self-Balancing Robot

November–December 2017. In a control systems project course, three other students and I built a self-balancing two-wheeled robot using LEGO Mindstorms components. We implemented and compared two different control strategies: PID control and linear-quadratic control. We compared two different filtering methods—Kalman filtering and complementary filtering—for the measurements taken by a gyroscope and an accelerometer. The control algorithms were implemented first in Simulink and then in leJOS on a LEGO Mindstorms EV3 microprocessor. The project report can be found below.

Self-Balancing Lego Robot

Extremum-Seeking Control

April–June 2017. As the final project in an advanced course in control theory I chose to investigate an area of control engineering known as extremum-seeking control. While the aim of conventional control is to drive the output of a system to a predetermined reference value, the purpose of extremum-seeking control is to create a controller that finds an optimal reference value for a system to operate at. This type of control is often used within the process industry to optimize system performance and subsequently minimize resource usage. The project report can be found below.

An Introduction to Extremum-Seeking Control

Reduction of Static Noise in Real Time

February 2017. In a digital signal processing project course, a fellow student and I investigated and implemented an algorithm for reducing static audial noise in real time. The solution was implemented on a SHARC DSP. The project report below further explains what we did.

Reduction of Static Noise in Real Time

This website is built with Flask, a Python web framework, and a set of useful templating engines. These tools reduce code duplication and increase maintainability. However, as there is no need for dynamic interaction with the user, I also use Frozen-Flask which creates a set of static files from a Flask application. This lets me host the website with GitHub pages which is both fast and free. The GitHub repository for the webpage can be found here.