Java

A widely used, object oriented, statically typed language that runs on the Java Virtual Machine.

5 projects using Java

MiniHIL TestReport

A tool to generate test reports from data input sources such as X-Unit xml reports, miniHIL proprietary formats (for execution and requirements traces) and pregenerated plant uml diagrams (svg). Java was chosen for the generator and data preprocessing since proprietary parts which had to be integrated were already implemented in Java. The Java CLI interface generates data for a self contained React based single page app which can be integrated into existing CI solutions or be viewed in the browser. After generation no backend is required.

Timeframe: 2024
 at Protos

PROTOS miniHIL GUI

The front end built for the PROTOS miniHIL, a small hardware-in-the-loop test rig. It is a React (Next.js) app that lets you watch a test run on the hardware as it happens: live logs, signal traces and execution state, all streamed from the device while the test executes. The harder problem behind the views was the data path and performance. A test run produces a lot of data on an MCU. Additionally, the goal was to allow the user to open multiple browser windows showing different aspects of the test run.

The data comes off the miniHIL hardware itself, an STM32-based MCU system that runs the test cases in real time. The hardware is connected to the PC via USB (1.1 full speed device). A Java backend on the PC owns that USB link, deserializes the low-level protocols, and exposes the result to the GUI over a WebSocket. Inside the browser a single shared worker holds the websocket connection and fans the decoded stream out to every open window.

[details]
Timeframe: 2024
 at Protos

Master's thesis: Runtime Monitoring of Event-driven Software Systems

Master's thesis focused on runtime verification of software component interfaces using Interface State Machines (ISMs). Developed formal semantics for ISMs and implemented a runtime monitoring solution integrated with Eclipse eTrice for event-driven component-based systems. Conducted empirical studies to validate user expectations and demonstrated successful contract violation detection.

Android based SMS Gateway

Android app to use an Android smartphone as an SMS gateway for other web applications. The app polled a backend service for outgoing SMS messages and sent them using the Android SMS API. Incoming SMS messages were forwarded to the backend service as needed. The app was build for an early stage startup with the goal to provide small rented solar systems in Africa (Ghana). After payment the user would receive a SMS with a code to unlock the solar system for a certain time period. The app was deployed in Ghana and was successfully used for a short period of time before the startup pivoted to a different field.

Timeframe: 2016

High school project: Flight data logger

Final seminar course project during high school: Design and implementation of a small flight data logger for model rockets. During the project I and my teammate designed and manufactured a small PCB with an ATmega mikrocontroller, an accelerometer, a barometric pressure sensor and an SD-Card. We implemented the firmware in Embedded C and wrote a small java application to visualize the recorded data. Even though the PCB was never added to a rocket its functionality was demonstrated successfully demonstrated by strapping it to a bicycle going up and downhill.

Timeframe: 2008
Nature: Educational