RubyConf 2018 - Building Generic Software by Chris Salzberg