01
System architecture
Designing system software that lasts: interfaces, data models, modularisation and communication infrastructure — from requirement to a concept that holds up.
Software Engineering & Consulting
I am Roman Krüger, a freelance software engineer and consultant. For more than 20 years I have designed and built business-critical system software — for public administration, cybersecurity, industry and retail.
“It’s the quality that makes the difference.”
Services
I work where software has to be long-lived, correct and maintainable — as an engineer who designs, not merely implements.
01
Designing system software that lasts: interfaces, data models, modularisation and communication infrastructure — from requirement to a concept that holds up.
02
Fast, memory-safe system software in Rust: parsers, compilers, analysis engines and tooling — including embedded applications.
03
Domain backend systems with Java 21, Spring Boot, Kafka and Camunda. Kotlin and Scala too, where the use case calls for it.
04
Data modelling, data warehouse design, Oracle/PL-SQL development and tuning, PostgreSQL and distributed stores such as Cassandra.
05
Static code analysis and taint-flow analysis (SAST), compiler construction, domain-specific languages and code generation.
06
Technical leadership as lead developer, code reviews, architecture consulting and developer coaching within the team.
Technologies
A selection from more than 20 years of project practice.
Languages
Platforms
Data & messaging
Operations
Methods
Profile
My path began in the banking sector and then led into airline cost controlling: ten years of architecture, development and support for an airline cost management product, including the design and implementation of its central data warehouse.
Since 2014 I have worked mainly as a freelancer — in public administration, automotive, wholesale, market research and cybersecurity. Today I serve as lead developer for central, cross-sectional business services in the tax domain.
Technically I like to work close to the machine: system software in Rust, compilers and parsers, static code analysis, data models that still hold ten years on. Most of my projects, however, are shaped by the other side — business-driven Java software, where the code can only be as good as the understanding of the domain process behind it. Who decides what, why, and what happens when the normal case does not apply? That translation between the business side and the system — and keeping it comprehensible within the team — is the part I value most.
After many years in established domains, new territory appeals to me: research-oriented work, autonomous systems, AI-driven applications. That is precisely where closeness to the machine meets open questions — a combination I am happy to stay with for the long haul.
Open source
Publicly readable code — the best evidence of how I work and what I expect.
Contact
Send me a short note about what you have in mind — I usually reply within one working day. Enquiries welcome in English or German.