ArchitectureArchitecture
Conference45min
BEGINNER

AI without spaghetti: Clean architecture in the age of AI

This session uses the story of chatbot Leo to illustrate how AI features can become unmanageable without proper structure. It then demonstrates refactoring to Clean Architecture, highlighting its benefits for scalability and maintainability. Attendees learn practical strategies for organizing AI projects and avoiding architectural pitfalls as systems grow.

Maarten Vandeperre
Maarten VandeperreRed Hat
Lutske de Leeuw
Lutske de LeeuwCraftsmen

talkDetail.whenAndWhere

Tuesday, March 24, 10:10-10:55
Room 7
talks.roomOccupancytalks.noOccupancyInfo
talks.description
Is your shiny new AI feature already tangled in a plate of spaghetti code, with helper classes sticking out like rogue meatballs and surprise side effects splattering everywhere? In this session, we follow a short story of a small chatbot named Leo that grows into a full‑blown platform, showing how careless choices turn neat experiments into costly traps. We then flip the script and refactor the same product into a scalable, enterprise-ready architecture using Clean Architecture. Drawing clear lines between domain, application, and infrastructure so that models can change without breaking everything else. By the end, you will see that good structure is not a luxury, but the only way to keep your AI moving fast without regrets.

What we cover

- The hidden cost of “just ship it” when models, data pipelines, and prompts keep changing
- Where Clean Architecture fits in a modern AI stack: domain, ports, adapters, and model gateways
- Demo: Route simple queries to a local LLM and advanced ones to the cloud, in minutes, not days.
- Pitfalls we hit in real projects and the patterns that saved us

What you will learn

- How to spot early signs of architectural decay in AI projects
- A step‑by‑step guide to isolating AI concerns from business rules
- Practical tips for introducing structure into an existing “AI spaghetti” codebase
refactoring
architecture
structure
ai
talks.speakers
Maarten Vandeperre

Maarten Vandeperre

Red Hat

Belgium

Maarten Vandeperre is an experienced software professional who recently joined Red Hat as an Appdev & AI Specialized Solutions Architect. With a strong background in software development and architecture, he brings a wealth of expertise to his role. Maarten's primary focus is on application development and AI, with a particular emphasis on leveraging Red Hat's OpenShift platform from a developer's perspective.

One of Maarten's true passions lies in advocating for "clean architecture" as a guiding principle in software development. He firmly believes in the importance of designing software systems that are modular, maintainable, and scalable. As part of his dedication to this approach, Maarten strives to map these principles to infrastructure solutions, ensuring that the underlying technology supports and enhances the overall architecture. His deep understanding of integration technologies, such as API Gateways, Keycloak, Kafka, service mesh, and Camel, enables him to create seamless connections between systems while adhering to clean architectural principles, which empower organizations to thrive in the ever-evolving digital landscape.
Lutske de Leeuw

Lutske de Leeuw

Craftsmen

Netherlands

Lutske de Leeuw is a Software Engineer at Craftsmen and co-organizer of JUG Noord and ApeldoornJUG. A Java developer at heart and full-stack by trade. She loves to share knowledge through storytelling, often featuring animals like cats or llamas to make complex topics more relatable. She regularly speaks across Europe about AI and software craftsmanship. Lutske studied Computer Science and completed a Deep Learning specialization, and she enjoys experimenting with AI to bridge the gap between innovation and everyday development. Passionate about Devoxx4Kids and other knowledge-sharing initiatives, she believes learning should always be fun and accessible for everyone.

talkDetail.rateThisTalk

talkDetail.poortalkDetail.excellent

talkDetail.ratingNotYetAvailable

talkDetail.ratingAvailableWhenStarted

talkDetail.signInRequired

talkDetail.signInToRateDescription

occupancy.title

occupancy.votingNotYetAvailable

occupancy.votingAvailableBeforeStart

talkDetail.signInRequired

occupancy.signInToVoteDescription

comments.title

comments.speakerNotEnabledComments