About Me

About Me

Flexible developer with a bias for embedded systems. Started programming at a young age because I wanted to automate tasks. Always willing to learn new skills, and I can work swiftly and effectively, either independently or in a team. Thinking of creative solutions for challenging problems is where I excel.

Interests

  • Embedded systems
  • Software engineering
  • IoT

Projects

Bike Sensor

The idea was to measure the smoothness of the road by attaching an accelerometer to a bike. For this an ESP32 microcontroller and a MPU6050 accelerometer was used. All the data processing was done on the ESP32 which would output aggregated data via HTTP.

Delirium

Delirium is a game created in Unity during my game development minor. The team consisted out of seven members. My role was lead programmer and Scrum master. My main contribution was the random level generator algorithm. During this project I gained experience with Git. I was responsible for the repository and setup automated builds.

OneList

This is a simple to-do list in Go. The idea was to keep it as simple as possible and make it easy to deploy. The binary contains its own webserver, website, storage and authentication. This was my first attempt at OOP Go. I primarily used interfaces to make it easy to extend with different frontend and storage methods.

Build System For C projects

During my bachelor’s degree I worked often with the ESP32 microcontroller. The build system that came provided had a nice tool (Kconfig) to manage compile flags and options. I wanted something that used Kconfig for generic C project, but I could not find it. So I decided to implement it myself. I used CMake as base.

8-bit Computer In Logisim

This is an 8-bit computer based on the videos of Ben Eater in Logisim (logic gate simulator). I had attempted to build it on breadboards like in the videos, but I ran into power issues due to bad components. Instead I opted to continue the project in Logisim. The computer has a limited instruction set and memory. It can be used to calculate Fibonacci numbers.

Unity Machine Learning Agent

Unity Machine Learning Agents (ML-Agents) uses a combination of deep reinforcement learning and imitation learning to create emergent behaviours. I made a simple level where a ball had to be guided to a certain spot. First I had to create special training level with multiple instances of the main level to speed up the learning process. After the training was done it generated a model that could be used in a game to do this specific task.

C++ Vector In C

My implementation of the Vector datatype from C++ in C. It can be used to put integers into a dynamically growing container (not available in C by default). At the base is a normal char array saved to the heap. This allows me to manually allocate and free memory as items are added and removed.

Offset Scanner

The main use case for this program is to find pointers in the memory of an external process. First you must define a process and a pattern you want to search for. The program will then search in the memory of the specified process and output a pointer. This pointer can then be used to manipulate the process externally.

Domotica Server

The aim of this project was to create a domotica server which would control certain devices in my room. For the hardware I chose a Raspberry Pi. The Pi tried to determine if I was inside my room by looking at the signal strength of the WiFi and Bluetooth of my phone. Based on this it would control the lights and Spotify.

See all projects on GitHub

Skills

C

My go to for anything embedded. Primary used during my bachelor’s degree. I have about five years of experience (including the time of my bachelor’s degree).

C++

Most of my experience with C++ is also from my bachelor’s degree. I tend to use C++ over C for the larger projects. I adjust the amount of C code I use in C++ projects to the capabilities of the hardware I am using.

C#

I used C# during my game development minor (six months) to create the code for Delirium.

PHP

I learned PHP during my vocational education in web development. I used this to build websites as freelance web developer for about two years.

jQuery

Just as with PHP I also learned this during my vocational education and used it to build websites.

Java

Used during software engineering classes in my bachelor’s degree. After my bachelor’s degree I used Java for data analysis.

Go

I went on a hunt for a higher-level language I could use for webservers and JSON manipulation etc. This is when I discovered Go. Go has become my preferred language for anything non-embedded.