World Congress 2023 • Sep 27, 2023

Tackling Complexity With Functional Programming And Kotlin

Georg Dresler

Ditch brittle exception handling and endless boolean flags. Discover how practical functional programming concepts in Kotlin can transform complex business requirements into readable, maintainable, and compiler-safe systems.

Pause
Mute Enter Fullscreen
#1 about 5 min

Navigating complex customer requirements in software projects

Real-world examples of highly convoluted feature requests demonstrate the need to systematically manage application complexity.

#2 about 3 min

Analyzing the drawbacks of standard exception handling

Relying on extensive try-catch blocks forces developers to compromise between precise debugging capability and overall code readability.

#3 about 4 min

Replacing exceptions with the either type functional pattern

Utilizing a generic sealed class to explicitly represent success or failure states eliminates unpredictable runtime crashes.

#4 about 4 min

Chaining functional operations using flatmap and fold

Higher-order functions process sequential logic cleanly and route isolated errors to appropriate logging or messaging workflows.

#5 about 4 min

Enforcing data validation with private constructors and operators

Restricting object creation behind a companion object ensures models are implicitly validated before entering the core business logic.

#6 about 3 min

Recognizing the structural pitfalls of conditional boolean flags

Depending on unstructured boolean properties to track partial input states introduces fragile conditional checks across downstream functions.

#7 about 3 min

Controlling state complexity through algebraic data types

Implementing pure sum and product types allows the compiler to reject invalid structural transitions without relying on manual guardrails.

#8 about 3 min

Combining functional data abstraction and explicit validation

Merging encapsulated type structures with functional operators produces safe execution pipelines from raw drafts to validated domain artifacts.

#9 about 4 min

Summarizing architecture benefits and answering audience questions

Final reflections touch upon functional ecosystem tooling like the Arrow library and managing functional composition at scale.

Matching moments

1:43 min

Summarizing the practical engineering advantages of writing Kotlin

Iris Hunkeler · LIVE

1:33 min

Configuring runtime Java and Kotlin interoperability protocols

Iris Hunkeler · LIVE

4:21 min

Navigating Kotlin Multiplatform beyond the happy path

Andrea Della Porta Andrea Della Porta · World Congress 2026 Europe

2:23 min

Taming declarative complexity with Kotlin Coroutines

Matthias Falkenberg +1 · World Congress 2022

2:54 min

Live coding demonstration of Kotlin null safety

Iris Hunkeler · LIVE

4:43 min

Architectural boundaries and the Kotlin Multiplatform survival kit

Andrea Della Porta Andrea Della Porta · World Congress 2026 Europe

Upcoming sessions on this topic

Open session

Designing for Every Direction: Logical CSS for Global, Adaptive, and Effortlessly Reversible UIs

  • Vidhya Krishnamoorthy

    Morgan Stanley

    VP, Software Engineering Manager

Open session

Teaching AI Coding Agents to Build It Right the First Time

  • Sajeetharan Sinnathurai

    Microsoft

    Principal Product Manager

Open session

From Prompt Engineering to Harness Engineering: Building Observable and Governed GenAI Systems

  • Lakshmi Devi Prakash

    JPMorgan Chase

    VP, Applied AI/ML Lead

Open session

Prompt Debt: Why Your AI System Is Frozen in Time

  • Suriya Prakash B

    Red Hat

    Principal Software Engineer

Open session

How We Cut Our API's p99 Latency from Minutes to Under a Second

  • Deepak Agrawal

    Atlassian

    Principal Software Engineer

Open session

Multi-Cloud Isn't a Project. It's a Side Effect.

  • Antonio Mendoza Pérez

    Temporal Technologies

    Staff Developer Success Engineer

  • Gaurav Thadani

    Temporal

    Staff Developer Success Engineer