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