Complete gig history
Spec-Driven Development with AI Agents: From High-Level Requirements to Working Software AI coding agents are powerful, but they often feel unpredictable. Without structure, they can jump into implementation, miss requirements, or generate code you can’t easily track. Spec-driven development is a practical approach that brings order to this process. The method is simple: start with clear, high-level requirements, refine them into a detailed development plan, then break that plan into a task list with trackable steps. The AI agent works from these artifacts-requirements.md, plan.md, and tasks.md-instead of ad-hoc prompts. Each step becomes explicit, reviewable, and repeatable. In this talk, I’ll show how to apply spec-driven development and explain my intuition for this approach. We’ll walk through an example: documenting requirements, generating a plan, creating tasks, and guiding the AI through execution one step at a time. Along the way, you’ll see techniques for controlling workflow, reviewing changes, and avoiding “black box” code generation. If you’ve tried coding with AI tools but found them chaotic, this session will give you a framework to make them reliable partners.
For updates and more, join our community 👉 https://www.linkedin.com/company/devoxx-united-kingdom Kotlin 2.0, released almost a year ago, marked a significant milestone in the language's evolution. At the heart of this major version lies the new compiler front-end, codenamed K2. The release delivered better performance and stabilization of the language features across multiple compilation targets. Despite being a major release, Kotlin 2.0 prioritized a smooth migration path, focusing on refinement rather than introducing drastic changes. We will first take a look at the key features of the 2.0 release, highlighting the introduction of frontend intermediate representation (FIR) and the new control flow engine. Then, we'll shift our focus to the horizon, and discuss the new features on Kotlin's roadmap: * Guard conditions - enhancing control flow and null safety * Context parameters - improving code organization * Union types for errors - bringing more expressiveness to type systems * Named-based destructuring - for better readability and reducing errors * Contracts - enabling more precise static analysis Whether you're a seasoned Kotlin developer or just starting out, this talk promises to expand your understanding of the language.
Learn how to create type-safe and statically typed DSLs in Kotlin. In this session, you will learn about the language features that make DSL creation possible: - Top-level extension functions and properties - Trailing lambda expressions as function parameters - SAM type conversion - Functional literals with receiver - Infix functions - Standard library scope functions - Context parameters Step by step, using the features above, I will convert Java code based on the builder pattern into an internal Kotlin DSL. The talk highlights the specific cases for using the DSL approach in Kotlin and the tradeoffs for introducing this programming technique into the projects.
Historically, debuggers are used to help locate and fix bugs. Nowadays, the debugger in IntelliJ IDEA can help you do much more than that. Let's see how the debugger helps make the development process more productive. I demo various features for debugging Java applications, including not-so-standard ones, like: * Lambda breakpoints * Stream chain tracing * Dropping the frame * Emulated method breakpoint * Evaluate and log * Non-suspending breakpoints * Custom data renderers and more 100% live coding session
For updates and more, join our community 👉 https://www.linkedin.com/company/devoxx-united-kingdom IntelliJ IDEA is packed with useful features that enhance developer productivity and simplify working with the code. This session takes you through the cool features of IntelliJ IDEA: refactorings, shortcuts, fast navigation, code completion kung-fu, live templates, structured search, the debugger that is a gem on its own, and other productivity features that the IDE provides. We will also look at the latest additions to IntelliJ IDEA, including the AI assistant plugin that brings the advancements in Machine Learning closer to the developer tooling.
For more info on the next Devoxx UK event 👉 www.devoxx.co.uk Historically debuggers were used to help locate and fix bugs. Nowadays, the debugger in IntelliJ IDEA can help you do much more than that. We’ll show how the debugger helps make the development process more productive. We’ll explain how some debugger features like lambdas debugging, smart step into, and async stack traces work and how it is possible only because of the tight integration with other IDE features. You will also learn new ways to use the IntelliJ IDEA debugger in your everyday work.