Dániel Szoboszlay
Juggling the data of Europe's biggest fintech unicorn
Dániel fell in love with Erlang a decade ago, working for Ericsson in Budapest. After his project got outsourced to India he tried himself as a consultant. Unfortunately, it turned out that kicking off many projects but hardly ever seeing them finish is not everyone's dream job, and working for short periods of time in faraway places is not everyone's wife's dream scenario either. So he moved to Stockholm to join Klarna, and ever since he's happily tweaking a big and old system for scalability and stability.
Past Activities
Code BEAM Europe 2022
10.45 - 11.30
The Hunt for the Cluster-Killer Bug
We know Erlang is all about fault tolerance. A well-engineered Erlang system – such as Kred, in the heart of Klarna’s business – will never stop, no matter what. Yet, about a year ago a short Kafka outage shook our mighty Kred so bad it knocked out all but one node. A few days later a second outage took down the entire cluster. How could this happen?
This is the story of our hunt for the cluster-killer bug before it could strike again. It is a story of unexpected twists and descending to the deepest depths of the technology stack powering an Erlang application.
OBJECTIVES
Give some new tools for debugging low-level issues in an Erlang stack.
Teach about Erlang’s memory model.
AUDIENCE
Developers who would like to add some new tricks to their debugging toolbox.
Code BEAM V Europe 2021
13.10 - 13.50
Breaking up with Mnesia
Klarna runs its business on Mnesia from day one. 16 years later we're still together... but we’re heading towards a break up.
How did we get here? What’s the way forward? Over the years problems hit us for sure, but as we’re about to part we also found good in Mnesia we'd taken for granted and never appreciated before. Are you just launching on Mnesia? Come and learn how not to corner yourself by the time you grow to a Unicorn. Already stretching limits? See how we made Postgres a viable replacement.
OBJECTIVE
Mnesia has some superpowers, but you won’t realise they exist until you try to live without them. Become aware of them, and you will be able to make conscious choices on whether to fully utilize them or to keep your options open.
AUDIENCE
Developers using Mnesia - or even Postgres, if they’re interested in our journey towards performant serializable transactions on this database.
Code BEAM Lite Budapest
14.50 - 15.30
Testing for race conditions in real world software
Race conditions are a programmer’s worst enemy: hard to catch in tests, almost impossible to reproduce. But there came a new tool, and changed everything! This talk is about Klarna's experience with testing for race conditions using Concuerror. They were among the first industrial users of it, and it has been quite a journey! They ironed out some rough edges, learnt a whole new mindset about testing, discovered best practices, and even wrote a tool for testing distributed systems under Concuerror.
OBJECTIVES
Give developers a head start on using Concuerror for testing their systems. To learn what’s possible and what’s not, and how to avoid common pitfalls.
AUDIENCE
Developers of concurrent systems.
Code BEAM STO V
16.25 - 16.50
Consensus Protocols in OTP
TALK LEVEL: ADVANCED
Are consensus algorithms in OTP based on Paxos? Raft?
A home-grown solution?
Are they the secret sauce of the language or its dark secret instead?
Are global locks and Mnesia transactions as reliable as you believe?
Consensus protocols are essential to distributed systems, yet they are always constrained by theoretical limits. Trade-offs between consistency and ensuring progress are inevitable.
This talk will peek into OTP libraries such as "global" to better understand their guarantees and failure modes.
THIS TALK IN THREE WORDS
Consensus
Protocol
Analysis
OBJECTIVES
- Help developers better understand the capabilities and limits of key OTP modules driving distributed systems.
- Demonstrate the importance of exploring failure modes.
TARGET AUDIENCE
Developers of distributed systems who are interested in guarantees, failure modes and edge cases.
Code BEAM STO 2019
16.15 - 17.00
Useless performance optimisations on the BEAM for fun and... fun?
The race between Man and Machine for writing The Fastest Code is on since the first compiler has been invented. Now, I'm afraid when it comes to targeting x64, our chances of beating the Machine are negligible. But maybe with the BEAM we still hold a chance? Let's dig into BEAM assembly and find out whether we can show erlc a lesson or two!
OBJECTIVES
Teach about how the BEAM VM works under the hoods and show some examples on what the compiler can and cannot optimise for you.
TARGET AUDIENCE
Anyone interested in low-level BEAM stuff. Or maybe compilers.