I’m a young, yet experienced software engineer who finished his master’s degree in computer science in 2018. Since that year I work for HMG Systems Engineering to develop innovative healthcare software that helps patients to get the best fitting drug at the proper dosage based on their individual genetic properties.
I’m also a big supporter of free/open source software and always made my personal code publicly available if I considered it to be helpful to others. You can see some of my projects and code contributions here and on GitHub .
- Formally a new employer: HMG Systems Engineering GmbH spins off pharmacogenetics department into PGXperts GmbH
- Design and development of PRiM, a medical software to improve the safety of drug therapy for hospital patients
- Integrate medical software into Germany’s healthcare infrastructure (Telematikinfrastruktur, eRezept)
- Specification and development of an internal tool to manage SOUP (software of unknown provenance) in the company
- Responsible for analyzing, classifying and mitigating vulnerabilities in external dependencies
- Design and development of PRiM, a medical software to improve the safety of drug therapy for hospital patients
- Integrate medical software into Germany’s healthcare infrastructure (Telematikinfrastruktur, eMP)
- Development of software to generate medication plans according to the official German medication plan (BMP) specification
- Specification and development of an internal tool to manage SOUP (software of unknown provenance) in the company
- Mentor new colleagues
2024
- Teach Python and general best coding practices to colleagues
- Specify, document and develop a REST-API for customer use
- Specify and develop the integration of a medical software in a clinic
- Migrate outdated but crucial software monolith to SpringBoot with focus on software quality and test coverage
- Create a tool to insert data stored in a proprietary format into a SQL database
2022
- Develop a medical service software (as backend developer)
- Create and enhance multiple SpringBoot-based microservices
- Develop automatic creation of medical reports using JasperReports and XSLT
- Oversee GitLab and CI/CD-Pipeline
- Introduce Docker and docker-compose into the company
- Migrate existing deployment to a single docker-compose stack
2020
Successfully finished my master’s degree (M. Sc.) in computer science at the Friedrich-Alexander University Erlangen-Nürnberg (FAU) with final grade 1.3.
Master thesis:
Design and implementation of a system for capturing and processing energy measurements
Abstract:
The aim of this thesis is to build a system for capturing various energy technical
measurement data.
In order to accomplish this, the protocol of an USB oscilloscope (Hantek 1008C)
gets reverse-engineered. A software solution for controlling the device and reading
the measurement data is implemented. On top of that, tools for processing and
analysis of these data are developed.
Subsequently that system is integrated into a smart metering testbed. There it is
used for gaining energy technical reference data for comparisons of the precisions
of different smart meters under linear and nonlinear loads.
2018
Successfully finished my Bachelors’s Degree (B. Sc.) in Computer Science at the Friedrich-Alexander University Erlangen-Nürnberg (FAU) with final grade 1.8.
Bachelor thesis:
Reverse engendering of an isolated solar charger controller for collection of reverence data and visualization
Abstract:
The aim of this thesis was to develop a system which automatically collects
photovoltaic data from a solar panel over long periods of time and stores them
persistently for scientific analysis.
There are currently various consumer devices on the market which offer such
function, but only to a limited extent. They are not suitable for scientific purposes
as the time intervals of the measurement are not small enough and they also do not
support formats which can easily be used in the analysis of the data. To overcome
this shortcoming, such a product (Phocos CXN 10) was taken and combined with a
small single-board computer. This resulted in a automatic system which frequently
records and stores all the relevant measurement data in a database.
In addition, a device was created which graphically displays all the measurement
data put into context with weather data in real time.
2015
Professional experience ¶
- Programming Languages
- Java, Python, Bash, RegEx, XSLT
- Frameworks
- Spring Boot, JUnit, Mockito, JSF, PrimeFaces, Jasper Reports, OpenAPI
- CI/CD tools
- Docker/docker-compose, Jenkins, GitLab, SonarQube
- Database
- PostgreSQL, SQLite, SQL, Flyway
- Others
- Mirth Connect
Projects ¶
Here is a collection of some of the bigger projects I worked on in the past, either as part of my computer science studies or in my free time.
Hugo shortcode gallery ¶
Some background information first: The site you are seeing right now was built with Hugo, a static site generator. I wanted to showcase my photographs, and so I was looking for a nice-looking, feature-rich gallery. Unfortunately there was nothing suitable available for Hugo.
So I started implementing a solution by myself. I named it hugo shortcode gallery. It provides a special shortcode, using Hugo’s module mechanism. With this shortcode, a gallery can be placed at any place in a content-providing markdown file. It uses Justified Gallery to display all images row by row and Swipebox to display one image at a time in full size. On top of that, a simple-to-configure filtering system is integrated, which allows the user to select a subset of the images as visible.
You can find it on Github , where it already has over 300 stars.
Used technologies ¶
- Programming Language: JavaScript, HTML, Go (for templating), CSS, Sass
- Frameworks/Libraries: Hugo, Swipebox, Justified Gallery
Hantek1008.py ¶
This project provides the ability to use Hantek 1008 USB oscilloscopes without the proprietary software. It works on Linux and Windows. You can include a provided class in your project to get (high- or low-level) access to the features of the device. As an alternative, you can use a command-line tool to gain data from the USB oscilloscope saved into a CSV file. You can find it on Github .
This software was one of the results of my master thesis. In which I, amongst other things, reverse engineered the USB protocol of the Hantek 1008 device with the help of Wireshark.
Used technologies ¶
Connect 5 ¶
A mobile puzzle game for Android (Get it )
Connect 5 is taking the classic Connect 4 to the next level. Similarly to the original, the goal in this game is to build a row of 5 connected tiles, either horizontally, vertically or diagonally without giving the opponent the opportunity to impede or do the same. The clue in this game is that the board is potentially unlimited in size and will ever expend while you are playing (you can only put a tile next to an already placed one, whilst unlocking new locations for yourself and your opponent).
Features: Simple Singleplayer, Local Party-Mode to play against friends, Multiplayer to challenge people all around the world and get #1 in the rankings.
I worked on this together with a good friend and fellow student during the early semesters of our bachelor studies. I implemented most parts of the frontend and he implemented the backend, which is a plain Java server.
Used technologies ¶
- Programming Language: Java
- Frameworks/Libraries: AndEngine, Android
- Other: Gradle
C7 Info Panel ¶
Developed for my bachelor thesis, this GUI software runs on a Raspberry Pi mini computer with a connected 8" screen. Its use is to graphically display different live measured values (e.g. voltage and power of a solar panel) put into context with weather data in real time.
Used technologies ¶
- Programming Language: Java 8, SQL, Python
- Frameworks/Librarys: Spring/Spring Boot, JavaFX, SLF4J, Jackson
- Other: Gradle
C7 Db Access ¶
The goal of this software project was to provide a simple storage API for devices collecting data like weather stations. Devices get an API key and can then push their data as JSON arrays via HTTP posts. Arbitrary data types (like temperature, humidity, …) can be defined. In addition, a simple to use, but powerful query API for authorized users is provided. The users, devices and defined data types are managed with a Bootstrap + AngularJS powered web interface.
Used technologies ¶
- Programming Language:
- Back-End: Java 8, SQL
- Front-End: HTML, JavaScript, CSS
- Frameworks/Librarys:
- Back-End: Spring Boot, Spring Data JPA, JUnit, Jackson
- Front-End: Bootstrap, AngularJS, jQuery, Chart.js, Font Awesome
- Other: Gradle, Bower