Advanced Techniques for Writing Truly Readable Software
We all know code should be readable, but what does that really mean in practice? This talk goes beyond basic clean code principles to explore advanced techniques for writing software that tells a story. We’ll dive into cognitive load theory, examine how naming conventions can reveal intent, explore the art of structuring code for human comprehension, and discover how to write comments that actually add value. Through before-and-after examples, you’ll learn to craft code that not only works but communicates its purpose clearly to every developer who encounters it.
Defending Lombok in the modern Java era
“Just use records!” they say. “Lombok is evil!” they cry. But is the widespread hatred of Lombok really justified in the era of modern Java? This talk takes an honest look at Lombok’s controversial reputation while making the case for why it still has a place in your Java 22+ projects.
Embedding a JavaScript engine in Your Java Applications
What if you could harness the vast ecosystem of JavaScript libraries directly within your Java applications? This talk explores practical approaches for embedding JavaScript plugins and engines in Java projects, from the retired Nashorn engine, GraalVM’s JavaScript engine to modern solutions like V8 (Node.js) integration. We’ll cover real-world use cases, performance considerations, and security implications. You’ll learn how to bridge the gap between these two powerful ecosystems, opening up new possibilities for extending your Java applications with the rich functionality of JavaScript libraries.
Implementing Moduliths with Domain-Driven Design and Hexagonal Architecture
Not every application needs to be distributed across dozens of microservices. This talk presents a pragmatic approach to building well-structured Java applications using the modulith pattern, combining Domain-Driven Design principles with hexagonal architecture. We’ll explore how to organize your code into logical modules, enforce boundaries, and maintain clean separation of concerns—all while keeping the simplicity of a single deployable unit.
REST's Relevance in Modern API Design
In 2000, Roy Fielding’s doctoral dissertation introduced REST as a set of architectural constraints for distributed systems, fundamentally changing how we think about web APIs. But many years later, does REST still deserve its throne as the dominant API paradigm?
The Art of Code: What Makes Programming Beautiful and Why It Matters
“Programs must be written for people to read, and only incidentally for machines to execute,” declared Hal Abelson, capturing the essence of what separates good code from great code. This talk explores the intangible qualities that make programming an art form: elegance, beauty, and the deep satisfaction of crafting something that works not just correctly, but gracefully. We’ll journey through the philosophical divide between imperative control and functional purity, examine what drives passionate programmers to obsess over abstractions and naming, and discover the timeless principles that transcend any framework or technology.
The Evolution and Art of Choosing Data Serialization Formats
Every time you make an API call, save a file, or send a message between services, you’re participating in humanity’s ongoing quest to turn complex data structures into streams of bytes—and back again.
UTF-8: Why Your Default Choice Might Not Always Be Right
UTF-8 has become the de facto standard for text encoding, with 97% of websites using it by default. Most developers reflexively choose UTF-8 without understanding what they’re actually getting—or what they might be missing. This talk dives deep into how UTF-8 actually works under the hood, from its brilliant variable-length design to its backward compatibility with ASCII, and explores the engineering trade-offs that make it both a triumph and occasionally the wrong choice.
Why the Broken Window Theory Explains Your Codebases Decay
In 1982, criminologists Wilson and Kelling proposed that visible signs of disorder—like broken windows—encourage further crime and antisocial behavior, creating a downward spiral of neighborhood decay. This same psychological phenomenon devastates software projects: one quick hack leads to another, a single TODO comment multiplies into dozens, and a small violation of coding standards signals that “anything goes.”
Wrong Assumptions Every Programmer Makes About the Real World
Every programmer has been burned by the real world’s beautiful messiness. You assume people have exactly two names until you meet Cher, Madonna, or someone from Indonesia. You think birthdays are simple until you encounter leap seconds, calendar reforms, and cultures that don’t celebrate the day you were born. You design elegant relational schemas until you discover that in reality, a person can have multiple genders, addresses change retroactively, and sometimes a customer is also a vendor.