Services
Architecture that survives the next upgrade.
I work exclusively on the backend: as an architect who makes decisions and explains them, and as an engineer who implements them himself. Usually as part of an existing team, occasionally alone.
Software architecture and Domain-Driven Design
Most systems do not fail because of technology but because nobody can say any more what they actually model. I bring the domain back into the code: with bounded contexts, a shared language between business and engineering, and a domain model that carries rules rather than just data.
- Iterative modelling inside the running project rather than workshop marathons: the model grows with every feature, architecture decisions are documented
- Step-by-step migration of legacy code towards a domain model, without a big-bang rewrite
- A test regime with PHPUnit and Codeception: unit, functional and acceptance tests that make refactoring safe
- Reviews and pairing so the knowledge stays with the team
TYPO3 upgrades and legacy refactoring
I know TYPO3 from version 4.2 to 14.3, and Extbase from the inside. I plan and run upgrades across several LTS versions so that operations keep going and the result is more maintainable than the starting point.
- Assessment of the existing system: extensions, TypoScript, deprecations, risks
- Automated migration with Rector and PHPStan, manual work where automation ends
- Cleanup of in-house extensions, replacement of orphaned third-party extensions
- A modern base: Composer, site sets, content blocks, dependency injection, PSR standards
Integrations and APIs
Hardly any TYPO3 stands alone. I build the connections to ERP, CRM, payment providers, identity providers and internal services, in a way that is tested, documented and replaceable.
- REST APIs outward, clients for third-party APIs inward
- PSR-7/17/18-based HTTP layer, webhooks, asynchronous processing, with Symfony components such as Messenger or Console where they fit
- Multi-tenant APIs and permission concepts
Clients
My clients are mostly agencies and software vendors: many ways out, Wilder Jäger, PHORAX, Constructiva Solutions, Marketing Factory Digital and pixolith, plus Easyfairs and the University of Wuppertal as direct clients. What I did for whom, for how long, and what clients say about working with me is on the references page.
Way of working
- Remote, embedded.
- I work from Wuppertal for clients in Germany, Austria and Switzerland, inside your repositories, your issue tracker and your channels. Linux, PhpStorm, Git, CI.
- LLM-assisted.
- I use AI coding agents every day and deliver faster because of it. Thinking, deciding and reviewing stay with me; nothing enters your codebase unreviewed.
- Data-minimising.
- A data processing agreement (AVV) is ready when needed. My aim, though, is never to see personal data at all: anonymised database dumps, synthetic fixtures and no access to production systems where it can be avoided.