Photo by Chris Ried on Unsplash
What I can do for you
- Software solutions in the following areas:
- Data analysis and reporting
- Process automation and monitoring
- (Power) system modelling, simulation and optimisation
- Signal processing, state estimation & control
- Full-stack development of web applications
- Programming in the following languages:
- MATLAB + Simulink
- Python, TypeScript, SQL, Vue3
- C, C++
- Agile development on GitLab
- Software for embedded devices
(see Embedded Systems)
Why hire me?
You might not yet know the exact requirements for the software you need or even fully understand the process you want it to be developed for or the data you are dealing with. In this case, a “pure” software developer will most likely have a hard time and you will not be fully satisfied with the result. With my broad background, I can take on a complex problem with you, grasp it quickly and come up with a prototype. You need to give me only so much information, I’ll take care of the nitty-gritty.
My experience
- Designed and implemented surveillance software for the German balancing energy markets that generates automatic reports from publicly available market data and operational data
- Wrote a software framework that enables developing low-code reporting applications with energy data in both MATLAB and Python.
- Testing and comparison of the open-source projects pandapower and PowSyBl with regard to their applicabilty to perform analyses of different load flow scenarios.
- Expanded the MATLAB protoype for the area optimisation function of the European automated frequency restoration reserves platform PICASSO to enable offline simulation with operational data
- Created several helper applications for shift engineers operating the electricity transmission grid:
- Monitoring of system or process states with automatic alerts
- Automation of fallback processes involving file transfers
- Straightforward GUI for querying archived operational data
- As part of my PhD, I developed an object-oriented framework for the modelling of “adaptive truss structures” as Port-Hamiltonian systems using the finite element method. It’s published on GitHub
- Numerous smaller projects (see also Embedded Systems)
Development process
I adhere to modern software development processes with version control (git) and continuous integration (CI). On top of that, I am used to managing repositories and collaborating with beginners or professional developers. Based on my own experience, I stick to the following principles:
- Modularity
Separation into components by function increases reusability and makes projects easier to navigate. - User-Orientation
I consult the end users of my software throughout the development process. From what I understood, I develop quick prototypes and adapt according to the feedback I receive. - No vendor lock
I choose open source alternatives over proprietary technology or software unless you require otherwise. Software I develop is all yours, and I aim to empower you to modify it yourself, or with the help of others. - Documentation
Care is taken that source code is written and commented in a standard way that is easy to comprehend. - Configurability
Control for the client with easy-to-use interfaces. I try to anticipate what might change in the future, so that you can adapt the software yourself.
While I do use large language models (LLMs) to assist with coding and architectural decision making, I take suitable measures to ensure your data stays confidential. I also thoroughly check and test LLM output before it becomes part of a software product.

