Florian Stach

Software Engineer · Kotlin & Android · Low-Code (OutSystems) · IT & Tech Lead

Germany · Open for work, beginning April 2027

Summary

I do get stuff done.

I've spent the last six years at Fresenius, a global healthcare group, building web, mobile and native applications that run on manufacturing sites around the world. I regularly act as lead in digitalization projects, from gathering requirements on the shop floor to development, rollout and support.

Kotlin is my language of choice. I like problems that sit where a platform runs out of road: native integrations, FIDO2 authentication over NFC, SQL that has to be fast, and the odd bug that nobody dares to crack.

Outside of work I'm finishing an M.Sc. in Computer Science with a thesis on JVM lexer generation. I also run a fully self-hosted AI assistant at home, backed by its own knowledge graph, and I write real-time graphics with OpenGL and GLSL.

Experience

Process & Application Expert, Fresenius Kabi

Process Digitalization · Bad Homburg, Germany

Oct 2023 – Present

  • Technological lead on process digitalization projects, owning technical decisions, architecture and delivery
  • Develop web and mobile business applications on OutSystems (HTML, CSS, JavaScript, C#) and a native Android app in Kotlin for features beyond the platform's capabilities
  • Build central libraries, Cordova plugins and drivers for native Android features, including FIDO2 authentication over NFC and barcode scanning
  • Optimize SQL queries for performance-critical applications and troubleshoot production issues
  • Work on site at international production sites to gather requirements and roll out new software; create GxP-compliant test documentation for computer system validation

Technologies: Kotlin, Android, OutSystems, FIDO2, NFC, Cordova, SQL, GxP

Dual Student, Software Engineering & Cybersecurity, Fresenius

Yearly rotation through three departments · Bad Homburg, Germany

Sep 2020 – Sep 2023

Software Engineer, Advanced Manufacturing Operations

2022 – 2023

Built manufacturing digitalization apps with OutSystems, JavaScript and Android

Junior Software Engineer, Mobile Applications

2021 – 2022

Built digitalization apps with MS PowerApps

Junior Consultant, Cyber Resilience

2020 – 2021

Building the human firewall - Cybersecurity trainings & consulting

Technologies: OutSystems, JavaScript, Android, Cordova, React, Cybersecurity

Education

M.Sc. Computer Science, Frankfurt University of Applied Sciences

Frankfurt am Main · Oct 2024 – Mar 2027 · Expected 2027

  • Part-time alongside employment
  • Thesis: Rethinking Lexer Generation for the JVM: AOT DFA Compilation vs. ANTLR4's ATN Interpretation

B.Sc. Computer Science, Cyber Security, DHBW Mannheim

Mannheim · Oct 2020 – Sep 2023 · Dual study

  • Rotations through cybersecurity, mobile development and manufacturing IT

Skills

  • Languages: Kotlin, Java, C#, C++, C, JavaScript, TypeScript, Python, SQL, Lua, HTML, CSS
  • Platforms & Frameworks: Android, OutSystems, React, .NET, Cordova, Compose, Ktor
  • Compilers & JVM: ASM, FSM, ANTLR4, JFlex, JMH benchmarking
  • AI & Data: SQL performance tuning, llama.cpp, LLM tool integration, RDF / RDFS knowledge graphs
  • Graphics: OpenGL, GLSL shaders
  • Security & Quality: Authentication, FIDO2, Cybersecurity, Polarion ALM, GxP validation, Fuzz testing, Property-based testing
  • Professional: IT lead, Tech lead, Requirements engineering, Stakeholder management

Master's Thesis

Rethinking Lexer Generation for the JVM: AOT DFA Compilation vs. ANTLR4's ATN Interpretation

Master's thesis · Frankfurt University of Applied Sciences

ANTLR4 interprets an augmented transition network at runtime and builds its DFA lazily. My thesis asks what happens if you do all of that work ahead of time instead. I'm building a lexer generator in Kotlin that compiles grammars into minimized DFAs and emits JVM code from them, then benchmarking it against ANTLR4 and JFlex.

Pipeline: Grammar → Regex → NFA → DFA → Minimized DFA → Codegen

Code generation backends: Table-driven, Switch-based, Bytecode Assembly

Benchmarked against: ANTLR4, JFlex

Methodology

  • JMH benchmarks: throughput, latency, memory & GC pressure
  • Generated code size and generator build time
  • Statistical analysis with confidence intervals
  • Differential, property-based and fuzz testing

Research questions

  • RQ1 (Performance): How does an AOT minimized-DFA lexer compare to ANTLR4 in throughput and latency as grammars grow?
  • RQ2 (Memory / GC): How do allocation and GC pressure differ, and how do they scale with input size?
  • RQ3 (Artifact cost): What do build time and generated code size look like on each side?
  • RQ4 (Design space): Table-driven, switch-based or bytecode emission: which works best with the JIT?
  • RQ5 (Expressiveness): Which features (modes, predicates, Unicode, error recovery) does a minimal generator give up for speed?

Projects

Self-Hosted AI Home Assistant

Personal project

A private, fully local AI assistant running on a self-hosted LLM, with a knowledge graph as its long-term memory.

  • LLM served locally via llama.cpp, so no data leaves the house
  • RDF/RDFS knowledge graph as memory, including indexed document storage
  • The LLM has full create, read, update and delete access to the graph
  • Voice command satellites in every room serve as terminals
  • Cameras with face recognition, door-, glass- & trip-sensors feeding into a central security system
  • Custom-built VPN tunnel for remote access without a static IP or port forwarding

Technologies: llama.cpp, LLM tools, RDF, Knowledge Graph, Voice, Camera, VPN

FIDO2 over NFC on Android Browsers

At Fresenius

Central libraries and Cordova plugins that bring native Android features into browser apps.

  • FIDO2 support via NFC on Android Browsers is lacking.
  • I've built a mapping layer allowing for full FIDO2 authentication over NFC for OutSystems and other embedded applications.

Technologies: Kotlin, Android, FIDO2, NFC, Cordova

BitField Annotation Processor

Personal project

A Kotlin annotation processor that provides type-safe virtual accessors for defining and manipulating bit-level fields within compact binary data.

  • Declarative bitfield mappings using a repeatable @BitField annotation
  • KSP processor generates virtual getters, setters and constructors at compile time
  • Supports automatic and explicit bit offsets for compact binary layouts
  • Works with signed and unsigned fixed-size primitive types
  • Supports value-like wrapper classes for type-safe bitfield representations
  • Designed for compact binary formats such as protocol headers and memory-mapped data
  • Generated accessors allow bit-level data to be manipulated through regular Kotlin properties

Technologies: Kotlin, KSP, Annotation Processing, Bitfields, Binary Data, Code Generation

License plate reader from Scratch

Personal project

An Android computer-vision application for detecting and reading vehicle license plates from camera images.

  • Android application for processing camera images
  • Computer-vision pipeline for detecting and recognizing license plates
  • Extracts license plate information directly from captured images
  • Built as a practical computer-vision project for Android
  • Designed to combine mobile development with image-based license plate recognition

Technologies: Android, Computer Vision, License Plate Recognition, Image Processing, Kotlin

Stateful Turtle Base

Personal project

A Lua script base for Minecraft ComputerCraft turtles that preserves program state across reloads and automatically resumes long-running tasks after shutdowns.

  • Persists turtle program state during execution to survive reloads and world restarts
  • Automatically resumes execution from the point where the turtle was interrupted
  • Designed for long-running autonomous tasks such as mining operations
  • Provides a simple instruction-based structure for building turtle programs
  • Supports looping programs and graceful termination through KeyboardInterrupt events
  • Integrates with ComputerCraft's startup mechanism for automatic program execution

Technologies: Lua, ComputerCraft, Minecraft, Automation, Turtle, State Persistence

Brainfuck Interpreter

Personal project

A minimal Brainfuck interpreter written in C, optimized down to just 175 bytes of source code while remaining a functional command-line interpreter.

  • Complete Brainfuck interpreter implemented in C
  • Extremely compact 175-byte source implementation
  • Brainfuck programs are supplied directly as command-line arguments
  • Includes verbose implementations alongside the minimized version for readability and inspection
  • Uses explicit type specifications and casts despite the aggressive size optimization
  • Built with CMake for straightforward compilation

Technologies: C, Brainfuck, Interpreter, Code Golf, Minimalism, CMake

Languages

  • German: Native
  • English: Fluent (C2)