Engineers interested in software design and concurrency united 🤝🏻for a new learning and networking opportunity and listened to our senior colleagues at 𝐈𝐍𝐆 𝐇𝐮𝐛𝐬 𝐑𝐨𝐦𝐚𝐧𝐢𝐚 & 𝐈𝐍𝐆 𝐁𝐚𝐧𝐤 𝐑𝐨𝐦𝐚𝐧𝐢𝐚 who shared their latest insights and learnings with the engineering community in Bucharest.
🔶 𝐄𝐫𝐫𝐨𝐫𝐬, 𝐭𝐡𝐞 𝐟𝐨𝐫𝐠𝐨𝐭𝐭𝐞𝐧 𝐩𝐚𝐫𝐭 𝐨𝐟 𝐲𝐨𝐮𝐫 𝐝𝐨𝐦𝐚𝐢𝐧 | Gabriel Bornea, software engineer & team lead at ING Hubs Romania
Errors are usually treated as an afterthought — logged, ignored, or handled inconsistently. But they’re more than just failures; errors represent important domain events that can shape how systems behave and respond to the real world.
In this talk, we will look at how modeling errors explicitly can make applications more predictable, resilient, and easier to maintain. We’ll see how to use sum types and typed errors; and how types like Either<E, A> and IO<E, A> help us manage errors without relying on exceptions.
We will also cover ways to accumulate multiple errors, design systems that can recover gracefully from failures, and improve observability with structured error handling. By the end of this session, we’ll have practical techniques to turn errors into a first-class part of our domain, leading to more robust systems and a better development experience.
🔶𝐎𝐰𝐧 𝐲𝐨𝐮𝐫 𝐝𝐞𝐬𝐢𝐠𝐧: 𝐟𝐮𝐧𝐜𝐭𝐢𝐨𝐧𝐚𝐥 𝐩𝐫𝐢𝐧𝐜𝐢𝐩𝐥𝐞𝐬 𝐯𝐬 𝐭𝐡𝐞 𝐟𝐫𝐚𝐦𝐞𝐰𝐨𝐫𝐤 | Tiberiu Tofan, software engineer at ING Hubs Romania
Frameworks like Spring can tempt engineers to apply various shortcuts that compromise clean design, such as primitive obsession and exception-based error handling. We will discover how to reclaim control by using Domain-Driven Design, hexagonal architecture, and functional programming principles.
In this session, we will go through practical strategies to keep domain logic clean, reduce coupling, and adopt functional error handling. These ensure design remains at the core of the solution, irrespective of what the framework encourages.
🔶𝐄𝐟𝐟𝐞𝐜𝐭𝐬 𝐚𝐧𝐝 𝐜𝐨𝐧𝐜𝐮𝐫𝐫𝐞𝐧𝐜𝐲 𝐢𝐧 𝐟𝐮𝐧𝐜𝐭𝐢𝐨𝐧𝐚𝐥 𝐩𝐫𝐨𝐠𝐫𝐚𝐦𝐦𝐢𝐧𝐠 | Alexandru Nedelcu, software engineer & team lead at ING Bank Romania
Creating cloud services that are scalable, performant, and resilient in the face of failures and concurrency challenges is quite a challenge, and architectural and implementation decisions depend on the principles of the programming language, the paradigms and the libraries used.
We'll explore managing effects and concurrency using functional programming principles and the Cats-Effect library in Scala, showcasing how that enforces actual best practices in your entire codebase that help in building anti-fragile, industrial strength applications.
🎤𝗦𝗽𝗲𝗮𝗸𝗲𝗿𝘀
𝐆𝐚𝐛𝐫𝐢𝐞𝐥 (𝐆𝐚𝐛𝐢) 𝐁𝐨𝐫𝐧𝐞𝐚, 𝐬𝐨𝐟𝐭𝐰𝐚𝐫𝐞 𝐞𝐧𝐠𝐢𝐧𝐞𝐞𝐫 & 𝐭𝐞𝐚𝐦 𝐥𝐞𝐚𝐝 𝐚𝐭 𝐈𝐍𝐆 𝐇𝐮𝐛𝐬 𝐑𝐨𝐦𝐚𝐧𝐢𝐚
Gabriel has been working with JVM languages for over 15 years; he’s into functional programming, automatic testing and reactive programming. He has a strong background in Java, Kotlin, and TypeScript, but still enjoys the occasional dive into Scala or F#.
He contributes to open-source projects whenever he can and is one of the most popular ING Hubs Romania speakers at various conferences where he discusses the benefits and practicality of functional programming. Gabriel enjoys sharing practical insights on building resilient, maintainable systems—focusing on despaghettifying code to make it more robust, readable, and easy to work with.
𝐓𝐢𝐛𝐞𝐫𝐢𝐮 (𝐓𝐢𝐛𝐢) 𝐓𝐨𝐟𝐚𝐧, 𝐬𝐨𝐟𝐭𝐰𝐚𝐫𝐞 𝐞𝐧𝐠𝐢𝐧𝐞𝐞𝐫 𝐚𝐭 𝐈𝐍𝐆 𝐇𝐮𝐛𝐬 𝐑𝐨𝐦𝐚𝐧𝐢𝐚
Tiberiu has been with ING Hubs Romania for six years now and is experienced in JVM – mostly Java, Scala, and Kotlin. In the two decades (and counting) on the JVM front, Tiberiu’s focus has been on solid architecture, functional design, and maintainable code.
He is dedicated to building solutions that endure over time, prioritising reliability and simplicity.
𝐀𝐥𝐞𝐱𝐚𝐧𝐝𝐫𝐮 (𝐀𝐥𝐞𝐱) 𝐍𝐞𝐝𝐞𝐥𝐜𝐮, 𝐬𝐨𝐟𝐭𝐰𝐚𝐫𝐞 𝐞𝐧𝐠𝐢𝐧𝐞𝐞𝐫 & 𝐭𝐞𝐚𝐦 𝐥𝐞𝐚𝐝 𝐚𝐭 𝐈𝐍𝐆 Bank 𝐑𝐨𝐦𝐚𝐧𝐢𝐚
Alex is a programmer who loves software craftsmanship, author of several popular open-source Scala libraries, a Typelevel contributor, focused on building low-latency, high-throughput web services, and a functional programming enthusiast. Currently, a team lead at ING Bank, Romania, his team is building the next generation of payment processors.
---------
ING Hubs hangouts is a series of talks, masterclasses, and workshops by ING Hubs Romania, delivering opportunities for learning, networking, and sharing on technology trends, programming languages and related topics