Facebook fullstack tobi cut

Tobias Pfeiffer


0
groups
17
events
17
presentations
  • Shoes - The Ruby way to GUI applications

    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.

  • Code is read many more times than written

    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.

  • Building Crystal in Crystal

    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!

  • Optimizing for readability

    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!

  • Beating Go Thanks to the Power of Randomness

    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.

  • Optimizing for readability

    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!

  • Elixir & Phoenix – fast, concurrent and explicit

    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

  • Elixir & Phoenix – fast, concurrent and explicit

    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 weaknesses.

  • Ruby to Elixir - what's great and what you might miss

    Elixir and Phoenix are known for their speed, but that's far from their only benefit. Elixir isn't just a fast Ruby and Phoenix isn't just Eails for Elixir. Through pattern matching, immutable data structures and new idioms your programs can not only become faster but more understandable and maintainable. While we look at the upsides we'll also have a look at what you might be missing and could be improved.

  • What did AlphaGo do to beat the strongest human Go player?

    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.

  • What did AlphaGo do to beat the strongest human Go player?

    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.

  • What did AlphaGo do to beat the strongest human Go player?

    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.

  • Elixir & Phoenix – fast, concurrent and explicit

    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 weaknesses

  • 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.

  • Stop Guessing and Start Measuring - Benchmarking in Practice

    The talk aims to build a general understanding of benchmarking and best practices in benchmarking to avoid common pitfalls and wrong results as often observed in the real world.The talk marries the explanation of the general concepts with some practical usage and examples with the benchee library for benchmarking (https://github.com/PragTob/benchee) that I'm the author of. Examples also include some surprising results, like how body-recursive functions can be faster than tail-recursive functions, how the order of arguments can affect performance on the BEAM, how much slower Map.merge/3 is compared to merge/2 etc.A slight introduction into statistics is included to make sense of the data and show which values are important where, what they are good for and why "average" isn't the best value and why one might prefer median/nth percentile. The library is written in Elixir, but I always wanted to make it work with Erlang so I vow that if accepted I'll look into what improvements I can make for easy usage from Erlang :)

  • Stop Guessing and Start Measuring - Benchmarking in Practice

    “What’s the fastest way of doing this?” - you might ask yourself during development. Sure, you can guess, your intuition might be correct - but how do you know? Benchmarking is here to give you the answers, but there are many pitfalls in setting up a good benchmark and analyzing the results. This talk will guide you through, introduce best practices, and surprise you with some unexpected benchmarking results. You didn’t think that the order of arguments could influence its performance...or did you?

About

Tobi is a clean coder, Rubyist, learner, teacher and agile craftsman by passion. He organizes the Ruby User Group Berlin, maintains shoes and contributes to a variety of projects while thinking about new ideas to put into code and push boundaries. He loves collaboratively creating just about anything people enjoy. Currently he's flying in the bitcrowd airship creating wonderful web applications and dipping his toes into Elixir and Phoenix.

Spoke in 8 countries

Want to get more information? Join our newsletter!