Christian Bruckmayer

Christian Bruckmayer originally from Nuremberg, Germany, but now lives in Montreal, QC, Canada :canada:. In his day job, he makes e-commerce better for everyone at Shopify. Since 2014 he is an avid open source contributor hacking for instance on JRuby, openSUSE Linux or various (Ruby) gems :gem:.

If he's not hacking Ruby, he's out doing what young people do: traveling the world :airplane:, skiing in the alps :ski: or going to concerts of his favorite bands :guitar:.

Projects Christian recently contributed to:

RubyConf 2021: Keeping Developers Happy with a Fast CI

This talk was presented at RubyConf 2021 in Denver. When talking about performance, most developers think application speed, faster algorithms or better data structures. But what about your test suite? CI time is developer waiting time! At Shopify we have more than 170,000 Ruby tests and we add 30,000 more annually. The sheer amount of tests and their growth requires some aggressive methods. We will illustrate some of our techniques including monitoring, test selection, timeouts... [Read More]

RailsConf 2020: Building a Performance Analytics Tool with ActiveSupport

I gave this talk at RailsConf 2020 Couch Edition and this blog article contains the source code and step by step tutorial. The talk and tutorial is inspired by my work on influxdb-rails and contains several patterns and learnings from it. By the end of this tutorial, we will have a very basic Performance Monitoring tool which measures the response and SQL query time of a Rails application. Abstract Building a Performance Analytics Tool with... [Read More]

Rails i18n - Handling formatting within translated content

At Cookpad we build a global product to not only make cooking fun every day but also everywhere. With the help of the Rails Internationalization (i18n) API we have brought Cookpad to over 30 languages around the world. However, translating a product in 30 languages is not easy, and we’re constantly learning and improving. In the following article we will introduce one approach we’ve adopted for handling formatting of translated phrases. Our Workflow Working on... [Read More]

RubyConf 2019

Last August I got an email with the following text Congratulations!!! We’d love to include your talk – Digesting MRI by Studying Alternative Ruby Implementations – at RubyConf 2019. As RubyConf is the largest (~800 attendees) and longest-running gatterhing of Ruby developers, this was really exciting news for me. RubyConf 2019 was held in Nashville, Tennessee, and it was my first time going back to the US since a couple of years. Preparation As I... [Read More]

Ruby Conference Indonesia

This autumn, I got the honour to speak at the Ruby Conference in Indonesia. It was a very well organized conference which attracted around 230 fellow Rubyists. I especially enjoyed to meet so many Ruby programmers from Indonesia :indonesia:, India :india:, Japan :japan:, Australia :australia: and even Canada :canada:. Talks The conference was kicked off by Akira Matsuda who talked about performance optimisations in Rails. He showed several approaches how he improved the performance Rails... [Read More]

How I broke bundler for JRuby

As you might remember from my last blog article, I recently refactored JRuby’s hash tables to use open addressing which improved the performance significantly. While doing so, I broke bundler for JRuby :cry: And as bundler is the most important dependency management tool for the Ruby programming language, this was severe. If you want to know what happened in detail, read on. The issue Yasuo Honda reported in issue #5280 that bundle install of rails... [Read More]

Improve JRuby's hash table performance

The last few weeks I was working on improving JRuby’s hash table implementation. Some of you might remember that with version 2.4, CRuby’s hash table performance improved by around 40% :boom:. Vladimir Makarov achieved this impressive work by implementing open-addressing algorithm. Unfortunately, this change never got implemented in JRuby :cry:. As I was already contributing smaller features over the last year to JRuby I thought it would be time to contribute something bigger. So here... [Read More]

What I learned from contributing to JRuby

Last week, JRuby with Ruby 2.5 support got released :boom:. And with it, some code from me as well. This is what I learned from my contributions. Hash & Set According to the Ruby documentation, a set is a collection of unordered values with no duplicates. In Ruby 2.5, the set class got a reset method which comes handy if you change an object after inserting it to a set. To better understand the... [Read More]

Google Summer of Code 2016

It is getting colder in Germany, so it’s a time to recap Google Summer of Code 2016. This year we had six great students and in August Google announced that all of our students successfully finished their projects. What great news! All good things come to an end This year was especially exciting as we did not make it into GSoC in 2015 and therefore all of our mentors and students worked particularly hard to... [Read More]

Google Summer of Code midterm

In this years edition of Google Summer of Code, an international annual program in which stipends are awarded to students to hack on Free Software during the summer, openSUSE members are mentoring seven students who all passed their mid-term evaluation last week. Go on to read what they have to say about their first 10 weeks in the program. Ana María Martínez Gómez This year, we have three students working on the Open Source Event... [Read More]