Talks

I like to give talks at numerous occasions. More specifically: conferences, user groups and workshops. In this list you'll find talks I gave with the abstract and links to the slides - in general you find most of my slides at Speaker Deck and Slides (Slideshare) .

Going Staff (Ruby User Group Berlin)

What’s up with becoming a Staff Engineer? What does it mean? Is it just for people who want to keep coding? How do you become a Staff Engineer and what does the work entail? What if I told you, that being a Staff engineer actually required a lot of communication and collaboration skills?
In this talk, let’s answer all those questions – as it’s still quite fuzzy what a Staff engineer actually is.

Resources

Stories in Open Source (Lambdadays 2023, Ruby User Group Berlin)

What’s it like to work on Open Source projects? They’re all the same aren’t they? No, they’re not – the longer I worked on Open Source the more I realize how different the experience is for each one of them. Walk with me through some stories that happened to me in Open Source and let’s see what we can take away.

Resources

Metaphors are everywhere: Ideas to Improve software development (Code BEAM Coruña 2022, RUG::B)

Let's embark on a journey together - a journey in which we'll weave together the realms of basketball, fiction writing, game development and trading card games to explore how these seemingly unrelated domains surprisingly intersect with the world of software development, offering fresh perspectives and insights. Discover how concepts, strategies, and principles from these diverse domains can enhance your software development skills and creativity. Let’s celebrate the power of interdisciplinary thinking, revealing how diverse interests can invigorate your approach to software development.

Resources

Functioning Among Humans (Heart of Clojure, Code BEAM Lite Berlin)

In the development world most people are striving for technical excellence: better code, faster run times, more convenient interfaces, better databases… But is that really what helps us create better software?

In the end software development is done by groups of people creating products together. To do that communication and collaboration are essential. You can be the best programmer ever, but if you can’t efficiently work with others what good does it do you?

This talk will introduce you to relevant, easy to grasp concepts of collaboration and communication as well as give you food for thought

Resources

Do You Need That Validation? Let Me Call You Back About It (Ruby on Ice 2019)

Rails apps start nice and cute. Fast forward a year and business logic and view logic are entangled in our validations and callbacks - getting in our way at every turn. Wasn’t this supposed to be easy?

Let’s explore different approaches to improve the situation and untangle the web.

(note: the beer slide is there because it was the first talk Sunday morning after a bavarian conference party)

Resources

Elixir, Your Monolith and You (Code Beam Lite Berlin 2018, Devday.io 2018)

Elixir is great, so clearly we’ll all rewrite our applications in Elixir. Mostly, you can’t and shouldn’t do that. This presentation will show you another path. You’ll see how at Liefery, we started with small steps instead of rewriting everything. This allowed us to reap the benefits earlier and get comfortable before getting deeper into it. We’ll examine in detail the tactics we used to create two Elixir apps for new requirements, and how we integrated them with our existing Rails code base.

Join us on our tale of adopting Elixir and Phoenix and see what we learned, what we loved, and what bumps we hit along the road

Resources

Where do Rubyists go? (Ruby on Ice 2018, RubyC 2018)

Many Rubyists branch out and take a look at other languages. What are similarities between those languages and ruby? What are differences? How does Ruby influence these languages?

Resources

It’s About the Humans, Stupid (Lighting) (Pivorak 2017)

In the development world most people are striving for technical excellence: better code, faster run times, more convenient interfaces, better databases, faster deployments… But is that really what makes us better at developing software?

In the end software development is done by groups of people creating products together. To do that communication and collaboration between humans is essential – you can be the best programmer ever, if you can’t efficiently work with others what good does it do you?

This talk will give you a primer and food for further thought.

Resources

Stop Guessing and Start Measuring - Benchmarking in Practice / (Ruby) (Elixirlive 2016, Elixir Berlin 2016, hh.ex 2017, Erlang User Confernce 2017, WRUG 2017, Pivorak 2017)

(Alternative title: How fast is it really? Benchmarking in Practice)

“What’s the fastest way of doing this?” – you might ask yourself during development. Sure, you can guess what’s fastest or how long something will take, but do you know? How long does it take to sort a list of 1 Million elements? Are tail-recursive functions always the fastest?

Benchmarking is here to answer these questions. However, there are many pitfalls around setting up a good benchmark and interpreting the results. This talk will guide you through, introduce best practices and show you some surprising benchmarking results along the way.

Resources

What did AlphaGo do to beat the strongest human Go player?(Full Stack Fest 2016, Strange Group 2016, Codemotion Berlin 2016)

This year AlphaGo shocked the world by decisively beating the strongest human Go player, Lee Sedol. An accomplishment that wasn’t expected for years to come. How did AlphaGo do this? What algorithms did it use? What advances in AI made it possible? This talk will briefly introduce the game of Go, followed by the techniques and algorithms used by AlphaGo to answer these questions.

Resources

Elixir & Phoenix – fast, concurrent and explicit (Øredev 2019, Rubyconf.pt 2016, RUG-B 2016, vilnius.rb 2016, Codemotion 2016)

Elixir and Phoenix are all the hype lately – what’s great about them? Is there more to them than “just” fast, concurrent and reliable? This talk will give a short intro into both Elixir and Phoenix, highlighting strengths, differences from Ruby/Rails and weaknesse

Resources

Beating Go Thanks to the Power of Randomness (Rubyconf 2015)

Go is a board game that is more than 2,500 years old (yes, this is not about the programming language!) and it is fascinating from multiple viewpoints. For instance, go bots still can’t beat professional players, unlike in chess.

This talk will show you what is so special about Go that computers still can’t beat humans. We will take a look at the most popular underlying algorithm and show you how the Monte Carlo method, basically random simulation, plays a vital role in conquering Go's complexity and creating the strong Go bots of today.

Resources

Optimizing for readability (Codemotion 2015, Vilnius.rb 2016)

What do software engineers do all day long? Write code? Of course! But what about reading code, about understanding what’s happening? Aren’t we doing that even more? I believe we do. Because of that code should be as readable as possible! But what does that even mean? How do we achieve readable code? This talk will introduce you to coding principles and techniques that will help you write more readable code, be more productive and have more fun!

A remix with added knowledge of "Code is read many more times than written".

Resources

Building Crystal in Crystal (Ruby user Group 2015)

Crystal is a compiled ruby-like language and the compiler is written in Crystal itself. That means we can build crystal in crystal! The dream of rubinius come true! Explore a live session trying to implement a new feature in crystal!

This is an impromptu talk exploring what happens if you take a Ruby developer with slight crystal knowledge and let him do a live coding session implementing features in the crystal language itself. Exciting!

(impromptu talk as a talk had to be cancelled)

Resources

Code is read many more times than written (Ruby User Group 2013)

This statement changed my view of Software Engineering. Forever. Code is just written once, but read many times. This is why we should put extra effort into writing good code.

In this talk you will learn how to write readable code. Techniques and patterns will be presented to make your code as understandable and easy to work with as possible. Also higher level concepts to keep a code base nice, tidy and clean will be discussed.

The ultimate goal of this session is to make your life as a programmer more enjoyable. Working with good code is just so much more productive and fun that it really makes a difference in your day-to-day job. Writing readable code might be an investment, but it pays its interest rate every day.

Resources

Shoes - The Ruby way to GUI applications (JRubyConf 2013, Vilnius.rb 2015)

We build web applications and command line applications with Ruby - but what about graphical desktop application? There used to be this Shoes thing, but isn't that dead?

No it's not! Shoes4 is being developed right now by a dedicated team. Let me tell you all about it and introduce you to this beautiful DSL I fell in love with.

This presentation actually is a shoes application, with the slides described in a nice DSL and interactive samples. As it has no PDF export (yet) the slides are just screenshots :-)

Resources

Web Workers - Heavy Lifting on the Client Side (Berlin.js 2013)

Web Workers are your possibility to do some of the heavy lifting on the client side without blocking the main thread and ever touching the backend! They are ready to use as all major browsers, yes even IE, support them. You can even write a ray tracer purely on the client side of the browser. So it's time to get crazy and creative - this talk can get you started.

Resources

Introduction into web applications (Rails Girls Berlin 2012-...)

An introduction presentation I gave a lot of times at Rails Girls Berlin work shops and at my Rails course at the Humboldt university Berlin. It covers the basics of what web applications are and how the different parts of a web application play together.

Resources