Software Engineer & IT Consultant
People Lead at codecentric
To me, good software and good teams are inseparable.
Let's talk
"I'm not a great programmer; I'm a good programmer with great habits."
Kent Beck
I'm David. For over 15 years I've been building software and coaching teams, enjoying it most when both come together.
At codecentric I work as a software engineer and IT consultant. Since October 2025 I've also been People Lead at the Berlin location, my first formal leadership role. To me, leadership means listening, creating clarity, and making space.
I accompany projects not just technically, but from the very first question to the last commit. We move from problem space to solution space together, think in stories, and build things as a team. Without silos, with the expectation that everyone can touch everything.
TypeScript, Kotlin, and Java are my tools of choice, depending on context. On the backend I like working cloud native; on the frontend I've been working mostly with Vue lately. When it comes to frameworks and tools, I'm agnostic across the board and decide based on problem and context, not trend. What really interests me are systems that hold up under pressure: distributed architectures, event-driven designs, and increasingly AI integration that delivers real value.
TypeScript, Kotlin, and Java, depending on context and preference. On the frontend I decide based on the problem and the team, lately often Vue. I choose tools based on the problem, not the trend.
My focus is on distributed and event-driven systems. I like working cloud native and using what the hyperscaler provides: Lambda, Step Functions, DynamoDB, EventBridge. DDD helps me keep systems aligned with the domain.
For me, AI integration is craft, not hype. I've built semantic search with embeddings in production and implemented LLM-based data extraction from procurement documents. I work with agent-based workflows daily and know when a framework actually helps.
Technical quality doesn't come from tools; it comes from habits and culture. I help teams build those, through coaching, working alongside them, and being willing to ask the uncomfortable questions.
Expertise shows what I know. These formats show how I work.
Using the Samman method, I work directly with teams in their day-to-day: through ensemble programming, focused retrospectives, and structured learning formats. With one product team, we spent several weeks reworking the core of their codebase together. By the end, everyone was working on parts of the system they'd previously avoided. The goal isn't the quick fix; it's the team that's better afterwards.
I design learning hours and workshops where teams explore new concepts together: TDD, clean code, DDD, AI integration, and example mapping as a way to think through stories more sharply as a team. I also run example mapping workshops publicly, for teams that want to fundamentally improve how they work with requirements.
At my location I organise coding dojos and public code retreats. Away from the day-to-day, practising together, in a safe environment, with the focus on the craft. Developers who have treated software development as a solo sport for years often discover what real peer learning feels like.
Two projects where AI integration actually made it into production:
Semantic search built on embeddings, delivered in production. I wrote this success story myself.
LLM-based extraction of data and metadata from procurement documents. I contributed to this project.
Want similar results? I'd love to talk.
Get in touch