# Florian Stach

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

Germany · Open for work, beginning April 2027

- LinkedIn: https://www.linkedin.com/in/fstach
- GitHub: https://github.com/cheatahh

## 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

Oct 2023 – Present · Process Digitalization · Bad Homburg, Germany

- 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

Sep 2020 – Sep 2023 · Yearly rotation through three departments · Bad Homburg, Germany

#### 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

Oct 2024 – Mar 2027 · Frankfurt am Main · 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

Oct 2020 – Sep 2023 · Mannheim · 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)
