← Home
Portfolio

With a DevOps background I broke into Software Engineering, benefiting from formal training in the subject on top of long-time programming (since middle school), and with multi-year experience in Enterprise Content Management (ECM) and my own initial hobby Single Page Applications (SPAs) sprinkled in there, I have made this my professional work: my model for implementation is workflow-oriented, modern ECM (think Alfresco and Activiti/Camunda) coupled with high-level analytics (think Wolfram Language, i.e. really high level). At the same time, I realize Software Engineering is many different approaches, so in the below I reference this where appropriate and explore the ways I can apply my skillset across paradigms.

core project (academic software development)

Masters thesis project at Johannes Kepler University (JKU), consisting of the following research components leading up to the technical report (project) and thesis

I'd like to thank the wonderful Update Social Team (on-going notes included) in helping to refine this project up to an actionable starting point, and reference the repo for initial testing and prototyping.

PDF-Metadata Extraction (Forthcoming)

0.

LLM Processing and Evaluation of the Output (Forthcoming)

1.

Standard Software Integration (Enterprise Content Management - ECM, Forthcoming)

+. It is actually possible to extract this part out of the main academic work, and so I am starting here, for a practical work component in my Masters as well: Idea forthcoming.

In the language of this portfolio, this scripting project (Software Engineering view of Machine Learning (ML): all scripting, right?) marks an ML departure. It also build on an initial OpenAI API Test involving transformation of a collection of daily reports to one monthly report, demonstrating a summarization ECM use case.

LIFT_C

The technical continuation to a thesis is the result of a group project at LIFT_C @JKU, see the research feed for this and this cute roll-up:

Roll-Up Design Accessibility Buddies

IT-U Software Engineering Part for Interdisciplinary Installation Project

This was a cute little project I was allowed to accompany in technical role resulting in a fairly original installations setup running on multiple raspberry pis and a local network, plugging into the global seismographic network in turn, making it audible at a human ("totem") level at a newborn university's temporary home inside Linz/JKU Science Park - the context was a summer school offered in 2024, the project team an interdisciplinary group (one visual artist, one humanities researcher, one natural scientist, me in the capacity of the dev), affording learning mostly in this small-group, trans-disciplinary, self-organized dimension, though working with raspberry tech and sonification technology was new to me, on the technical one.

IT:U Poster

Hagenberg Software Engineering Final Java Project: Spring Boot (Spring Data, Spring MVC) and React Marketplace App

Outline

+------------------+    +-------------------------------------------------------+
|    Frontend      |    |                         Backend                       |
|                  |    |                   |               |                   |
|  +--------+      |    | PresentationLayer | ServiceLayer  | PersistenceLayer  |
|  | WebApp |      |    |                   |               |                   |
|  | Model  |      |    |                   |               |                   |
|  | HTML   | -----+--> | Controller    DTO |   Service     | DAO/Repo  Entity  |
|  +--------+      |    |                   |  Components   |                   |
|                  |    |                   |               |                   |
|                  |    |                                                       |
+------------------+    +-------------------------------------------------------+

Schema and API Design

The Swagger OpenAPI Schema view:

Swagger Schema View

Swagger UI - Before Annotation:

Swagger UI representation of the Controller endpoints

After Annotation in the source code:

Swagger UI representation of the Controller endpoints with annotations

Result (Screenshots of the frontend)

This was mainly a Spring Boot API project, so I would actually say the annotated Swagger OpenAPI document is the main output of this exercise. That said, here are the screenshots of a lightweight frontend:

Frontend 1 Frontend 2

Update: almost forgot search functionality.

Frontend 2a Frontend 2b

Frontend 3 Frontend 4

Full Repo

All in all, this was a nice project drawing togeth Object Oriented programming, API design and a React frontend into a rapid development framework, since it had to get done fast. I think this kind of thing is the bread and butter in Software Engineering. But let's face it, the world is probably not quick to need yet another marketplace app.

Scripting: Python OpenAI API Package Testing

Not as visual, but certainly useful (ties in with my grad thesis too), therefore an honorable mention in my portfolio:

(Progress) Reports with the OpenAI API

More details on this page and just click the image above to go to the repo and instructions for your own setup, if interested - I think I will move scripting topics to my rX feed in the future. Scroll down for my team-engineering, visually appealing (I try) type stuff!

Industry Partnership Hagenberg Software Engineering: ventopay/mocca Dashboard

Ventopay does full-service cantine systems targeting the DACH market: their flagship mocca software became the platform for a ten-person student project in close partnership between Hagenberg Campus and the company. Tasked with developing the status and notifcation system, I took on a hybrid role of product owner (PO)/developer, implementing the traffic light style overview page for example, but also going in type loops between team and company to provide effective POing.

Screengrabs Iteration II (Spring '24)

The final project iteration was delivered on time, documented and evaluated (against ventopay's own review guidelines) in spring and further to this group's (ca. 10 members) graduation requirements in the Software Engineering course in Hagenberg. In a traditional Austrian manner, the finalized project was celebrated on-site in the countryside (Mühlviertel) to some beers.

mocca screengrab 1 mocca screengrab 2 mocca screengrab 3 mocca screengrab 4 mocca screengrab 5

Screengrabs Iteration I (Fall '23)

mocca screengrab 2 mocca screengrab 1 mocca screengrab 3

Note

The challenge with this project was that it is an acutal production product that was developed, so very far from green-field software development. Compare that to the following from-scratch engineering project.

Angular Frontend Reference Project "SnackFrontend" ('24, #SoftwareEngineering: Frontend to an API with Some Authentication)

This is the frotend piece realizing the SNACK (think restaurants) endpoints designed and implemented in ASP .NET CORE the previous year. Full repo of the one-man, ca. 100-hour project and project structure with some screenshots to demonstrate.

I feel like this type of small-scale, but general, project lends itself to all kinds of use cases in terms of structure and design.

Frontend App Structure

src
|-- app
|  |-- discover-restaurants <--- *route: /restaurants ---------------- user view of this app, main part: see assumptions.txt
|  |  |-- find-restaurants
|  |  |  |-- restaurant-detail
|  |  |  |  |-- order form
|  |  |-- my-orders
||||-- home <------------------- *route: /manage --------------------- restaurant view: authentication required
||||  |-- incoming-orders
||||  |-- my-restaurant with menu upload, and delivery condition/other info editing
|  |-- login
|  |-- register
|  |-- page-not-found
|  |-- shared
|  |  |-- discover-restaurants.service.ts
|  |  |-- discover-restaurants.model.ts?
|  |  |-- discover-menus.model.ts?
|  |  |-- discover-... .model.ts? - all the models in the end
|  |  |-- manage-restaurant.service.ts
|  |  |-- theme.service.ts - just for testing
||||-- app.module.ts incl. AuthModule for OpenID Connect/0Auth authentication with Auth0 (Okta - https://auth0.com/)
|-- styles.css, assets and environments
|-- index.html

Screenshots

Boostrap and Fontawesome go pretty far as for design tools:

Screenshot 2024-01-11 013545

Screenshot 2024-01-11 013610

Auth0 for authentication and user metadata:

Screenshot 2024-01-11 013843

Simple forms and form validations:

Screenshot 2024-01-11 014714

Screenshot 2024-01-11 014702

Little React List App ('23, #SoftwareEngineering: Backend + Frontend)

React testing after being more a Vue.js guy!

Build tool: Vite.js Here a small-scale view/list app with an Express backend, simulating a bookstore.

ASP.NET CORE Backend Reference Project "SnackBackend" ('23, #SoftwareEngineering: Backend API)

A full scale .NET project with a focus on clean layering, MVC pattern, authetnication and token handling.

Clone of the actual study project on GitHub.

Angular frontend project to follow, concluding semester 5 of an intensive Software Engineering curriculum.

Der Standard Mock-up ('23, #ArsElectronica/#SoftwareEngineering: Some Experimental Frontend)

See also rX Feed and the final piece published by Der Standard, a high-end Austrian newspaper (my pretty face is in the header, if you can find me!) - I delivered the below mockup for a scrollytelling, dynamic version with conveyor belts (the Ars Electronica Festival 2023 took place in an abandoned post (packages) processing plant) but Der Standard went with a simpler static design and layout (their loss!).

Nevertheless I was involved in the writing and content as well, see rX Feed again, for that part: I find the art-society-technology approach Ars Electronica takes to be a fruitful way to think new tech, to say the least.

Screengrabs

Features

  • Vue.js project
  • scrollytelling with Scrollama

Classic Scripting Small-Scale Project (Vanilla PHP): Public-Private Pattern, Simple Database Connectivity ('23, #SoftwareEngineering: Scripting)

What it says on the tin!

The project is fictional photovoltaics application portal, completed as part of a formal Software Engineering (course: Scripting Languages/PHP-Web-Project) degree.

It's the stuff the web is made of, these small portal/applet-type things. Full readme

ECM: D.velop Documents/Process ('20-23, #SoftwareEngineering: Process Design, Forms and Frameworks)

D.velop is a German company marketing a mid-tier ECM system that is now very common in the DACH region. It is often named in the innovative categories in Gartner Magic Quadrant because it is a well thought out system that nevertheless makes due with some legacy code and languages especially in their Workflow component (Flow Designer). The latter is being revamped though, as D.velop Process, on top of a Camunda Workflow Engine. Camunda itself is an (Alfresco) Activiti Fork.

This work took place for the Red Cross and is mostly confidential as such. I can share the following aspects of a three-year, multi-project engagement 2020-23.

Projects

  • The work was multi-departmental, from planning over modelling (BPMN) to execution with two external partners. I lead the internal code implementation: languges used were Java, Groovy, JavaScript, JPL (proprietary).
  • The work had one important archiving component, using a third party tool that protects records (revision safe archiving, the tool is Graudata) and makes them conform to the hefty regularity requirements in the blood banking field.
  • Most of the work was about expanding workflow-capability, i.e. automisation, in the documents arena, where documentation is a central aspect of blood banking. The most complicated workflow was a five-part (!) cycle including blood bank worker training, archiving of trainable documents, clear distinction of documents that are being worked on and documents that are valid and need to be known and documented as trained to all the relevant professionals, lab workers and doctors mainly, in the different departments. It also included a multi-stage signing step (for department heads/experts) to guarantee validity of the documents that are being circulated in the blood bank and meet Austrian/EU regularity requirements of these documents: this gives an idea of the nature of the ECM approach and the topics in ECM in companies that are not typically thought of as "content companies," here in health and blood banking particularly.
  • The work saw a team expansion by a factor of three, all working on ECM in Linz blood bank. The ECM-commitment of the blood bank grew to hotline/support implementation dedicated to ECM, and internal trainings focussed around ECM.
  • The end of my tenure with the Red Cross saw the inception of the study project documented in the rX-section of this website: The goal of the project is to establish modern internal development workflows independent of external consultants and contractors to advance the quantity and quality of internal initiatives. I continue to stay involved on a volunteer basis and through this study project.

I owned all of the above initiatives in the capacity of a DevOps Engineer focussed on internal Softare Implementation.

SPA: co2work ('22, #SoftwareEngineering: Lightweight SPAs)

co2work is an Upper Austrian co-working place lander with C02-Footprint calculator for social media sharing.

Screengrabs

Features

  • vue SPA
  • REST api integration of an external backend
  • swiper.js for the form implementation