Five of our favorite talks from RailsConf 2019

Opendoor
Open House
Published in
5 min readDec 3, 2019
Members of the Opendoor Engineering at RailsConf 2019

By: Vijay Edupuganti

At Opendoor, we use Rails extensively for our business logic and tooling, in addition to other services written in Python and Go. This past May, six members of our engineering team traveled to Minneapolis for RailsConf.

While there were a ton of great topics covered, here are five of our favorite talks from the conference.

1. Opening Keynote — David Heinemeier Hansson

https://youtu.be/VBwWbFpkltg

As with every RailsConf, the opening keynote was given by none other than DHH. To kick things off, he lightheartedly remarked that he had prepared for the talk for close to a year. Safe to say, he did not disappoint as the hour-long talk was filled with interesting insights on topics ranging from stoicism, to how the concept of Jubilee applies to Rails contributors. I had never really considered how Bill Gates and Richard Stallman were similar in approach, or how I should feel about tech companies not always contributing back to the framework.

One of his most interesting points was that there is often an adverse relationship between developer happiness and consumerism. He used many examples to illustrate this.

Open source maintainers can be pressured to be subservient to the people they are supporting, trying to please rather than work on what’s most interesting. Engineers often make technology choices for scientific and business reasons, considering performance and scale, but not always humanistic reasons like what language is most enjoyable to work in. Overly grandiose mission statements are created sometimes to the detriment of work-life balance.

At the very least, watch the talk to find out why no one at a file cabinet company talks of changing the world! It’s well worth a listen.

2. The Elusive Attribute — Chris Salzberg

https://youtu.be/PNNrmNTQx2s

foo.bar_changed?

How exactly does this line of code work? I kind of knew. Most Rails developers have an idea of what an attribute is, but can largely trust Rails metaprogramming to make the correct decision. That wasn’t good enough for Chris though.

Going into the talk, I assumed an attribute was essentially synonymous with a database column or a method defined on a certain model. Using introspection, Chris took us through the fundamentals of the attribute methods that Rails generates for us. From there, he showed us the exact process Rails uses to determine an attribute’s value: sometimes relying on a generated attribute method, sometimes relying on a database column, and sometimes even relying on the record returned from the database.

The talk was an excellent technical deep dive and an opportunity for Chris to pitch cleaning up some of the attribute method matching logic under the hood.

Bonus: A PR that Chris referenced in the talk was recently merged into Rails!

3. The Selfish Programmer — Justin Searls

https://youtu.be/k5thkp4ZXSI

Antisocial. Egotistical. Irresponsible. Three stereotypes of a solo programmer right?

Justin Searls seems to think so. Specifically, he argues that these characteristics are actually ideal when working alone. This talk was filled with useful and interesting techniques to drive solo projects through to the finish line. Debating how to handle authentication in your Rails app? Consider implementing it from scratch rather than using devise. Seeing the same code repeat itself in multiple places? That’s fine, punt on refactoring. And when in doubt, always use Heroku.

A must watch talk for those with side projects and wavering motivations, or those with aspirations to work on something on their own. Also, our favorite slide deck of the conference!

4. Code Spelunking — Jordan Raine

https://youtu.be/LiyLXklIQHc

A common complaint amongst those who work with Rails codebases revolves around “Rails magic.” There’s nothing more frustrating than furiously searching through StackOverflow and poring over unclear logs to debug an issue pertaining to something you didn’t even write. Jordan Raine’s talk delved into techniques to navigate through these moments, especially when the issue involves digging through core Rails source code.

In his talk, Jordan cited a study in which researchers found that only 5% of an engineer’s workday was spent writing code. On the flip side, over 80% of time was spent comprehending and navigating through code, from understanding the scope of what to work on, to actually finding answers to questions. As a result, when trying to level up and advance as an engineer, improving the ability to find the correct answer is more important than anything else.

Give it a listen to discover some nifty methods to get unstuck.

5. Fixing Flaky Tests Like a Detective — Sonja Peterson

https://youtu.be/qTyoMg_rmrQ

While tests should be deterministic, it’s crazy how often a build pipeline can look like this:

The picture above can be a common one in large Rails codebases. Often, fixing these flaky tests consists of blindly re-trying or going down many fruitless rabbit holes.

We enjoyed Sonja Peterson’s talk as it detailed a systematic approach for any engineer, of any level, to dive into fixing a flaky test. The approach outlined five common causes of brittle tests — async code, order dependency, time, unordered collections, and randomness — along with gems and techniques to easily avoid introducing them. A great talk for those interested in writing better tests or improving the quality of an existing test suite.

About Us:

Here at Opendoor, we are trying to simplify the home transaction. Selling a home has traditionally been a very stressful and time-intensive process. By selling directly to Opendoor, sellers are able to avoid the many hassles of listing, such as showings, buyer financing fall-through risk, and months of uncertainty. We also support the full customer journey from selling to buying to trading-in.

Opendoor is hiring! Check out our jobs page for open roles in data science, engineering, and more.

We operate in 21 markets and counting, including Minneapolis! During our visit, we were able to visit the local Opendoor operations office and even check out a few homes that we own.

Acknowledgments:

RailsConf 2019 was exceptionally well planned and we want to extend thanks to the organizers — Ruby Central, Inc. — and sponsors for putting the conference together. Additional props to Confreaks for the videos, all the speakers and incredible engineers we met over the week. See the full list of talks here.

--

--