At AERep I assist in the repair of engine control units. For example, I fix electrical faults and clone data, using different protocols, from varying controllers and flash chips
In 2018 I finished my bachelors degree in software from Aalborg University. Here I learned to work on teams of sizes ranging from 6 to 35. AAU focuses on project based learning, because of this, each semester consisted of 3 courses of 5 ECTS, as well as a larger project of 15 ECTS. Examples of these projects include design and implementation of a programming language, development of an embedded system, capable of monitoring a players movement in a game of table football and recognizing which person is playing. My group and I have often tried to do a little beyond the scope of the semester, like implementing our own compiler-compiler or designing our own hardware platform for the embedded project, instead of using LEGO NXT as the base.
At Asetek I worked on the development of firmware for their products: all-in-one and rack-mount water cooling systems. Additionally I developed internal tools for inventory management and general optimisation of workflows. I worked with Siliconlabs 8051 chips og Pic32 chips from Microchip.
While studying at Aalborg Tekniske Gymnasium I was hired for a student job at CompanYoung. Here I worked with maintenance and development of their platforms such as elevplads.dk and praktikservice.dk. I worked with LAMP stacks, wrote SQL queries and depending on the project, used either the Laravel framework or Wordpress. I eventually worked on a smaller embedded project for SkillsDenmark who I have since had contact with regarding updates and support.
In my Bachelor's project, 35 students in six groups worked together to improve upon an eight year old project. The goal of the project was to digitalise tools for institutions that work with autistic people. The six-person group I was a part of was primarily tasked with the development of a REST-API, but our involvement in the broader project ultimately resulted in development of the processes which were largely responsible for the client receiving a useful product.
In this project we worked on constructing an embedded system capable of recognizing players based on how they play table football. The system was created using ESP8266 micro controllers, which compared to chips such as Atmel's AVR32 series isn't the slowest chip around. Even then, we were still limited by the fact that AI algorithms love chewing up CPU cycles and memory.
In the project on the design and development of programming languages we designed a language for the micro controllers used in the popular electronics platform Arduino. Our main focus was on making bitwise operations, which are central in embedded projects, simpler to work with. Additionally, we developed a compiler-compiler in order to better understand compiler development. We further immersed ourselves in language design by constructing a detailed set of structural operational semantics and a solid type system for our language.
The main focus of this semester was the structured development of a system for a specific customer. We employed a variety of methods from our courses Design and Evaluation of User Interfaces and System Development. Apart from designing and testing a user friendly app interface, we also focused on developing a web-app with a reasonable architecture using a REST-like API.
A relatively straight-forward project in which we developed a game for kids in primary school with the goal of simplifying mathematical expressions. We worked with app development and cross compilation in order to make the app run on different platforms. An area of focus was a small graphics library which we used to abstract over the graphics protocols used on the different platforms.
I our first semester project my group and I looked into producing realistic images of lamps shining their light on objects by implementing a ray-tracing algorithm. One of the most interesting problems was the optimisations that we were forced to make since ray-tracing is a very CPU intensive method of rendering images. The primary method we used to lower the run time was storing our 3D scenes in a K-d tree, which changes the time complexity of searching for intersections between rays and geometry in the scene from O
(n) to O