RAILSCONF 2018 RETROSPECTIVE

Jesse Spevack
Building Ibotta
Published in
6 min readApr 25, 2018

This year at RailsConf I learned about being a good software developer, but not in the way you might think. The conference, held on a snowy April weekend in Pittsburgh, PA, offered a plethora of technical workshops, talks, and the opportunity to network with talented software developers from across the world. While I did leave with a few new tools, techniques and a larger professional network, that’s not what I mean when I say that RailsConf taught me about being a good software developer. RailsConf showed me that being a good software developer is much more than being able to implement cutting edge features.

Reason #439 why I love working at Ibotta is that they take seriously my professional development. Every year Ibotta engineers get to pick a tech conference to attend. I chose RailsConf because I knew it would push my learning and help me bring new ideas back to the company. My manager, Brett Guy, was happy to send me and my coworkers were jazzed at all the stickers I brought back (and the knowledge). The added bonus was that my teammate Tori Wood also came to the conference and two Ibotta engineers at a conference is always better than one. Tori and I systematically went through the conference schedule and divided up talks that applied to our work and would make us better developers.

The conference began with a keynote (which I summarize more fully here) from the creator of the Rails framework, David Heinemeier Hansson (DHH), which challenged participants to think of progress in software development in terms of conceptual compression. This means taking difficult concepts and abstracting them in such a way as to make their implementation much more effortless thereby making space for new advances in what is possible. Conceptual compression is deeply embedded in software, computation, and technology in and of itself.

DHH was not arguing for conceptual compression for its own sake. Rather, its purpose is to lower the barriers to entry into the field of software development. He pointed to the rise of code schools, of which I am a product, that can train people to be productive contributors in a matter of months. He also described how increasingly specialized tools breed alienation from labor because they tend to separate the worker from the final product. So from the start, RailsConf was framed by the inventor of Rails in terms of getting more people into software development in a manner that fosters a deeper connection with their work and better solutions for the world.

David Heinemeier Hansson (DHH) at RailsConf 2018

Incidentally, I found myself sitting directly behind DHH in a session later that day. After the talk I introduced myself and I was impressed by how approachable he was and how he seemed genuinely interested in my journey into the Rails community.

The theme of looking beyond the immediate needs of feature implementation and seeing the bigger picture of the role of software and its creators in society was ever-present in the talks that I enjoyed throughout the week. For example, Loren Crawford’s talk “Down the Rabbit Hole: An Adventure in Legacy Code,” offered a humble and honest take on working on inherited code. Rather than bashing technical debt, Crawford focused on improving a codebase through rigorous test driven development and a ‘leave it better than you found it’ ethos. She outlined a framework that starts with writing tests to capture current behavior. Next refactor existing code while preserving functionality. Next add a new tests for new functionality. And lastly implement the new desired behavior.

Eileen M. Uchitelle at RailsConf 2018

Day two’s keynote by Rails core team member Eileen M. Uchitelle was “The Future of Rails 6: Scalable by Default”. While she went into staggering technical detail on how she and the core team are working on making Rails scalable by building out test parallelization and out of the box multi-database support, that was not her point. Rather her talk was a call to action about how the entire community has a responsibility to compress concepts and push them upstream. The community’s cutting edge innovations should be features in the next version of Rails so that no one has to reinvent the wheel.

Next, Michael Herold gave a talk called “What’s in a price? How to price your products and services.” Herold took tough economic concepts and made them feel approachable with great visuals, organization, and delivery. He described a system for collecting data from potential customers about perceived value and then using economic models to hone in on a non adversarial pricing scheme.

Slide from Thijs Cadier’s “Reporting Live from the Ramp of Death” at RailsConf 2018

The third talk in the series was given by Thijs Cadier from AppSignal titled “Reporting Live from the Ramp of Death”. Cadier used accounting principles written out in Ruby code to show why running a SaaS business can be so challenging. In the end the prescription was to weather the storm and ultimately focus your energy on making your customers really, really happy. In all of these cases, the speakers’ goals were not to sell product or hawk services. Rather their interest was to share the lessons they’ve learned in their own business ventures.

Sara Mei at RailsConf 2018

Sara Mei’s impromptu keynote on day three of the conference further cemented the theme of what it means to be a good software developer. She said our code base is where we live as developers, so our goal must be to make it livable. She used physical buildings and architecture as a powerful metaphor for software. Our fellow developers are our roommates in our shared living space and we should all take turns doing the dishes and cleaning up after ourselves. While it is easy to just pile one more book on the stack of books and magazines on the coffee table, strive for improvement over conformity and find a better place for all that clutter.

Claudio Baccigalupo at RailsConf 2018

The last talk I went to was given by Claudio Baccigalupo, titled “Inside Active Storage: a code review of Rails’ new framework”. He expertly dove into the new cloud storage solution built into Rails. He showed how to use Active Storage, then he described the main classes that make up the framework, and lastly he explained how each of these classes works by diving into the source code. His point, however, was only partly about teaching Active Storage. The bigger message was Rails source code is approachable, understandable, and we should all try to improve it when we can. This was underscored when he asked Rails contributors in the room to raise their hands and asked for a round of applause from the audience.

I also left with a feeling of deep pride in the contribution and reputation the Turing School has in the Rails community. There were a total of four different talks given by Turing alum, not to mention Jeff Casimir’s planning contributions to the conference.

  1. Let’s Get SASSy — Ilana Corson
  2. The Intelligence of Instinct — Emily Freeman
  3. The War is Over: Rails, JavaScript & webpacker — Jhun de Andres
  4. Stop Testing, Start Storytelling — Mike Schutte

All of these developers (except Jeff) entered the field within the last few years. But, already they are sharing their knowledge and experience with the community at large and making an impact.

Being a good software developer is about more than the ability to implement features. It is about sharing knowledge and making that knowledge easier for other developers to use. It is about assuming the best, as in the case of working with legacy code, and looking for areas where we can improve through open source contributions. It is about being open, honest, and humble. It is about treating clients and customers with respect. Software development is about building liveable spaces. And being a good software developer today matters more than ever because as they say, software is eating the world.

--

--