A digital event by Klarna Engineering.

Tuesday 20th October at 16:00-18:00 CEST



Klarna Loves Erlang 2020 is the open Erlang meetup where our amazing developers share their experiences and knowledge of how to understand, debug and test efficient Erlang systems.

The event is completely remote and open. Join the live stream here, and ask your questions in the #klarna-loves-engineering-2020 channel in erlanger.slack.com. If you are not already a member of the erlanger slack you can join it here.

Speakers at Klarna Loves Erlang 2020

Juan Facorro
Senior Software Engineer, Erlang

Property-based testing your REST API

Building a high quality resilient system can be a challenging task. API specification tools, such as OpenAPI (formerly known as Swagger), are widely used to describe the requests/responses of a system's endpoints, but they are not generally leveraged for testing purposes. Testing the invariant properties of a stateful system using Property Based Testing facilitates deeper correctness than traditional testing approaches, but it can be a daunting experience at first.

I will share the experience of using PropEr (a property-based testing tool for Erlang) to check the correctness and robustness of a service's REST API. This will include such things as the challenges, limitations and trade-offs found.

Juan Facorro

Juan is the creator of Clojure on the BEAM and a contributor to Elvis. After working with object-oriented languages for years, Juan entered the functional programming world working on personal projects in Common Lisp and Clojure. That’s when he knew he had found something great. While at Inaka he discovered Erlang and coding at work became a joy again. As a Klarna software engineer, he’s been building and improving highly available systems both in Erlang and not-Erlang (although mostly Erlang) and enjoying the beautiful Swedish summers.

Read more

Quildreen Motta Ribeiro
Software Engineer, Erlang

How To Quickly Understand Millions of Lines of Code

Reading source code is not really doable once you hit the tens of thousands of lines of code. It's even more hopeless at millions of them. Yet, analysis tools that can summarise this information struggle just as much as humans do. So how do we build tools that can handle such ginormous codebases, anyway?

In this talk we'll take a practical (but superficial) look at some of the algorithms involved in the making of Glass, a static analysis tool developed at Klarna, and the optimisations that allow providing answers to analysis in real-time for IDEs, and reasonable-time for build/CI tools.

Quildreen Motta Ribeiro

Quil is an illustrator, writer, and software engineer with a background in programming language design. Although Quil has only been working with Erlang for roughly a year, they've written programs in Clojure, F#, Haskell, and other typed (and not-so-typed) functional languages for a few years. Quil is particularly interested in making software more secure and more reliable, and that has been one of their main personal goals at Klarna. In their spare time, Quil is working on Purr, an environment that aims to make programming more secure (with object-capability security), practical (with algebraic effects), and tangible (with live-feedback).

Read more

Roberto Aloi
Senior Software Engineer, Erlang Lead

Effective Erlang Debugging

One of the strengths of the Erlang programming language is the ability to seamlessly debug and trace Erlang code. Many tools and libraries exist, but they are sometimes under-utilized by the Community.

In this talk we will go through some common techniques and tools to trace and debug Erlang programs, sharing some precious tips and tricks that can make the difference when troubleshooting a complex Erlang system.

Roberto Aloi

Passionate about Erlang and property-based testing, Roberto has been working with Erlang technologies and distributed systems since 2007. Sicilian by origin, he is now based in Stockholm where he works as a senior software engineer at Klarna, providing a smoooth purchasing experience to 85 million consumers from 205,000 stores in 17 markets. The original author of tryerlang.org in a world where Docker containers did not exist yet, Roberto is now working on an Erlang Language Server Protocol (LSP) implementation in his not-so-copious spare time.

Read more

The product we build

At Klarna, we have a relentless focus on creating the best shopping experience in the world. We believe payments are so much more than just a way to send money. That’s why our smoooth payment methods give you more time, control and joy so you can focus on the things you love.

80 million shoppers are using Klarna. A large customer base already seeing the value of paying later, making one million transactions per day.

190,000 retailers are working with us worldwide. From big to small, brands are partnering with Klarna to offer a seamless checkout experience to their shoppers. Whether it’s the approaching-5-star app live in one of 9 markets including Germany, Sweden, US & UK or the checkout product working on thousands of merchants there are lots of challenging things to work on.  

The Engineering Team

We are a highly diverse competence represented by over 900 engineers from all around the globe. And we empower engineers to own their deliveries and be able to quickly iterate on their work. As a result, we have almost 100% of our core assets in the cloud and most engineers release to production through merging to master.

The engineering competence is for example made of: – Front end developers – PHP developers – Software engineers – Software developers.

Every year we host our own conference with 800 attendees. Last year was in Berlin https://thekonferen.se/. 

Tech stack

At Klarna we invested heavily in Erlang, as well as JavaScript and Java and many other languages. 

Check out our careers site for our open Engineering positions.

Klarna's career site.

Schedule

Welcome to Klarna loves Erlang 2020

10min

Property-based testing your REST API

35min

How To Quickly Understand Millions of Lines of Code

35min

Effective Erlang Debugging

35min

Wrap up

5min