Real World Ruby Performance at Scale

Aaron Quint

Large scale and fast production Ruby applications are not a myth. As we've continued to scale out our infrastructure and our application, we've been able to keep things fast and reliable. We do this by building and using tools that take advantage the great improvements that have come in Ruby 2. I'd like to share some of the lessons we've learned in scaling our app as well as show off the latest and greatest in open source performance tooling.

Aaron Quint was born and raised in Brooklyn, NY. Despite spending some time in the Bay Area, he realized he couldn't live without good bagels, so he moved back home. He spends his time as the Chief Scientist at Paperless Post and contributing to Open Source Ruby, JavaScript and Go projects.

TDD For Your Soul: Virtue and Software Engineering

Abraham Sangha

Software engineering pushes us to our limits, not only of cognition, but, perhaps surprisingly, of character. Using the cardinal virtues as a framework, we can see that developers need courage to learn, temperance to prioritize goals, a sense of justice by which to discern, and wisdom to act. By being honest about where we lack virtue, and implementing steps to develop character, we can perform TDD on ourselves. This process can help us grow not only as coders, but as human beings.

Abraham’s first taste of programming was writing violent choose-your-own-adventure games in TI-BASIC on his graphing calculator instead of paying attention during algebra class. A former civil engineer and minister, he learned web development through Dev Bootcamp Chicago and is currently solving problems in advertising technology as a software engineer at Centro. He studied the virtuous life in graduate school but has still failed to obtain it.

Rapidly Mapping JSON/XML API Schemas in Ruby

Adam Cuppy

Whether you are using a 3rd party or custom JSON API service, integration into an existing application can be time consuming: Where do you start? How can you build an object relational model that can adapt to changes in the schema?

In this talk we'll start with an existing JSON schema and build a Ruby adapter to provide a pure Ruby interface to: consume, modify and re-export that schema into JSON and XML.

Partner & Co-founder of ZEAL (@CodingZeal) an Agile Ruby on Rails, AngularJS and Node.js consultancy in Oregon. Adam's currently an Airpair Ruby on Rails and Pair Programming Expert, Rogue Rails (@RogueRails) Event Organizer, Technical Consultant and.... musical theater lover.

A World Without Assignment

Aja Hammerly

In Ruby, assignment is our primary tool. By contrast, functional programming makes much less use of assignment and mutation. Instead techniques like function composition, recursion, and anonymous functions are used.

Despite being OO, Ruby accommodates pure functional approaches. This talk will demonstrate how tasks can be accomplished without assignment. Ruby and Scheme will be used for examples. I'll also discuss some of the great resources available for those interested in digging deeper into functional programming.

Aja lives in Seattle where she is a developer at Substantial and a member of the Seattle Ruby Brigade. Her favorite languages are Ruby and Prolog. She also loves working with large piles of data. In her free time she enjoys skiing, cooking, knitting, and long coding sessions on the beach.

Template engines in Ruby

Akira Matsuda

HTML template engine is one of the most important library to build a web application. But who actually knows how it works? Who can explain how the engine parses the given template and finally composes the HTML body?

In this session, I will dig into implementation details of several Ruby libraries such as ERB, Haml, Slim, Tilt, Temple, etc. and give you a quick tour into the world of template engines!

Rails committer, Ruby committer, Haml committer, creator of widely used Rails plugins such as Kaminari, activedecorator, actionargs, html5validators, erd, databaserewinder, etc. Founder of "Asakusa.rb", the most active Ruby community in Japan.

Ruby Performance Secrets and How to Uncover Them

Alexander Dymo

Did you know that inject() and especially all?() iterator nested in another loop can really slow you down? Or that bigdecimal and string comparison is unbelievably slow in Ruby < 2.0? Or that parsed CSV is 13x larger in memory than on disk? Want to know these and other performance hints with in-depth explanations? Want to learn how to use profilers to find what's slow by yourself? Then this session is for you.

Alexander is an entrepreneur, Y Combinator alum and free software developer. He has 9 years of experience of Ruby and Rails application development and performance optimization. Alexander contributed performance-related patches and optimizations to both Ruby and Rails. His website and blog:

Sweaters as a Service

Amy Wibowo

In the 1980's, Nintendo had plans for a knitting add-on to the NES, with an interface that resembled Mariopaint, but with patterned sweaters as output. Sadly, this product never saw the light of day. Devastated on hearing this, a group of Airbnb engineers (who knew nothing about machine knitting) set out to hack a knitting machine from the 1980's to be computer-controlled. Learn about how we wrote our own yarn printer API in ruby and printed our first doge meme in yarn. And watch us as we send knit requests to our yarn server, and behold as it knits ugly sweaters from those images!

Amy is a software engineer at Airbnb. Prior to Airbnb, she's done machine learning research on the ASIMO team at Honda Research Institute in Japan and HCI research at the University of Tokyo. She also enjoys hardware hacking and the intersection of art and technology-- in particular, making tools that enable people to be more creative.

Rubyists, have a sip of Elixir!

Benjamin Tan Wei Hao

This talk is about Elixir – a functional, meta-programming aware language built on top of the Erlang VM.

I introduce some of Elixir's more interesting language features. Then I will demonstrate some of the features that Erlang gives Elixir for free, such as the OTP framework, that let's you build fault tolerant and distributed systems.

So come along and join me to experience programming joy.

I am a Software Engineer at Neo Innovation, Singapore. Deathly afraid of being irrelevant, I am always trying to catch up on my ever-growing reading list. Currently, I am writing a book on Elixir and OTP.

Your Bright Metaprogramming Future: Mistakes You'll Make (and How to Fix Them)

Betsy Haibel

Ruby's full of nice little metaprogramming tricks. Learning a new one's always the same cycle: 1. scared & tentative; 2. drunk on power; 3. woefully repentant; 4. mature & reasonable. Using my own history (of poor choices), I'll take you through stages 1-4 for: mazes of twisty little send calls, all alike! replacing def with method_missing! hook method indirection "magic!" Ill-timed define_methods! Sure, you could skip to the end - stage 4 is mostly "obey SRP; extract service objects" and "anonymous module inclusion's your BFF" - but getting there is half the point and all the fun.

Betsy Haibel is a senior developer at Optoro, one-half of the Irregular Gentlewomen, and an mentor with RailsGirls DC. She writes both fiction and nonfiction in English, Ruby, JavaScript, and occasionally Python.

My Little C Extension: Lego Robots are Magic

Brandon Hays

I didn't know squat about C or building extensions in Ruby. But I did want a Ruby-controlled Lego Mindstorms robot to get kids excited about Ruby. We'll dive into the basics of building C extensions, build a Ruby DSL to teach kids to drive cool Lego robots, and show off the amazing things you can do when you pull up Ruby's floorboards and look at the actually-not-too-scary C code underneath.

Brandon left the world of marketing to find that creating software made him happy. Brandon lives in Austin, TX, where he helps run The Frontside, a Rails and Ember.js consultancy. Brandon's lifelong mission is to hug every developer.

Harnessing other languages to make Ruby better

Brendon McLean

What do you do when your Ruby startup takes off and you realise that Ruby might not be best suited for everything? This talk covers our initial attempts to use Ruby as a data analytics platform, and how we ultimately ended up solving the problem using ideas from LISP and ActiveRecord scopes to bring the power and performance of data science languages to Ruby. We will also cover how Ruby can learn from other languages, and why Ruby is still our language of choice.

Brendon McLean studied engineering because his career guidance councillor told him there were no jobs in software. He's been writing software ever since. He narrowly escaped a verbose career in enterprise Java when he was offered the role of heading up development at Intellection, a start-up in market research analytics. He jumped at the opportunity and helped build their data analytics platform for market research in Ruby.

A Partial-Multiverse Model of Time Travel for Debugging

Brock Wilcox

Ever type 'next' into your debugger and then realize you should have used 'step'? Or perhaps invoked a method that you wish you could take back? Regret no more! Just turn the clock back a few ticks and begin again! With only a few restrictions and side-effects we will learn how to construct and use a time machine.

WARNING: Time travel may cause zombies.

Brock enjoys doing Mad Computer Science, especially seeing how far he can push the boundaries of day-to-day programming languages and systems. As a developer at Optoro he gets paid to write Ruby, thereby subsidizing said habit. He lives in Washington, DC with his Wife, Cats, and Pug, and would like you to come visit one of the many DC-local programming groups.

JRuby 9000

Charles Oliver Nutter, Thomas Enebo

JRuby 9000 is the largest update to the JRuby platform during its lifetime. We will support Ruby 2.1 (or perhaps 2.2) features, replace our execution pipeline with a new optimizing compiler, support true native IO and Process logic, and finally bring character transcoding in line with MRI. At the same time, people are building more and more amazing things with JRuby. In this talk, we'll unveil JRuby 9000 and talk about the future of JRuby and Ruby.

Charles works to better humanity with OSS at Red Hat.

Thomas Enebo is co-lead of the JRuby project and an employee of Red Hat. He has been a practitioner of Java since the heady days of the HotJava browser, and he has been happily using Ruby since 2001. Thomas has spoken at numerous Java and Ruby conferences, co-authored "Using JRuby", won the Ruby Hero award, and was awarded the "Rock Star" award at JavaOne. When Thomas is not working he enjoys biking, anime, and drinking a decent IPA.

2 + cats = 4 * cute: How Math Works in Ruby

Chris Hoffman

Do you know how addition works in Ruby? It's simple right? You just add 2 and 2 and out pops 4. But what if you add 2 to cats? That makes no sense, but how does Ruby know it makes no sense? And what if you had a Really Good Business Reason for adding 2 and cats. To achieve the needed degree of cuteness, you're going to need to be positively cat-like yourself. In this talk you'll learn about the magic of the coerce method, and that can't be coerced into Fixnum isn't a warning, but a dare, and what you can do to make your coworkers, collaborators and future self regret it.

Rubyist, Javascripter and Pythonist of 5 years. I dabble in Lispand Haskell. I've subclassed Module (& not regretted it). I prefer js to coffee, I think it's impossible to know too much math, and I'm pretty sure 6 * 9 == 42.

Deoptimizing Ruby

Chris Seaton

Ruby is notoriously difficult to optimize, but there is a solution: deoptimization. This means jumping from compiled code back to an interpreter, and it allows Ruby implementations to take shortcuts, make guesses and pretend Ruby is simpler than it is, but at the same time still be ready to handle the full language if it’s needed.

You’ve seen talks about what makes Ruby slow: monkey patching, bindings, set_trace_func, object space & so on. We’ll show how with a Ruby implementation using deoptimization, such as JRuby+Truffle, you can use these features without any runtime overhead at all.

Chris Seaton is a member of the Virtual Machine Research Group at Oracle Labs, a member of the JRuby project, and a PhD student at the University of Manchester in the UK.

He works for Oracle Labs on the new backend in JRuby using next-generation support for dynamic languages in the JVM. He also has research interests in concurrency and parallelism, and contributes to the concurrent-ruby gem.

In his spare time he works on a startup writing mobile apps for the UK National Health Service.

Epic Intro Music: BLE Beacons and Ruby

Christopher Sexton

Would you like to stroll into the office to your own dramatic theme music? We can arrive in style with an epic score. Learn how to use RubyMotion, a Raspberry Pi and iBeacon Technology to play the Imperial March when the CEO walks in.

The ability for mobile devices to detect their proximity to beacons is relatively new. We will learn how they work, the common gotchas, and how to integrate with a bigger system.

Let's build something fun with Ruby and Beacons. Plus, who doesn't want an awesome theme song?

I am Christopher Sexton. The Director of Engineering at Radius Networks, where we build mobile proximity tools and services.

I built Captured app and blog at Codeography. I cofounded the Arlington Ruby group, help organize both the Ruby Retrocession unconference and the Ruby for Good event.

On the Outside Looking In

Cindy Backman

The view of an outsider – What I have learned over the past 2 years from attending nearly 40 programming conferences on 3 different continents (with most of them being Ruby Conferences) and working on just under 1000 presentations.

  • Have you ever felt like you were on the outside...
  • What programming looks like to an outsider
  • Connections that are created
  • A better community experience
  • Superheroes are human too
  • Why an outsider loves the Ruby Community

Cindy is the Operations Manager for Confreaks. When she is not recording a conference, editing videos or working on the growth of Confreaks she is spending time with her family. She loves to ride motorcycles (cruisers - yes, she has her own) and playing games, enjoying the outdoors and watching movies with her family. At times you will find her husband, James working with her at conferences as well as her son, William. "There's nothing better than working with my family and best friends!"

Ruby Idioms You're Not Using Yet

Craig Buchek

Idioms are some of the smallest patterns that we use in our programming languages. Learning the idioms of a language helps you more quickly understand commonly used patterns. Over time, some idioms fall out of favor, and new idioms are developed and adopted.

In this talk, we'll explore a few idioms that are relatively new to the Ruby community. These include:

  • Module factory
  • Tag module
  • Circuit breaker
  • Fetch with default block

Craig Buchek is a developer specializing in Ruby, Rails, Rails rescue projects, and Agile techniques. Craig started using Rails in late 2005, and found a home in the framework, the language, and the community.

When he's not coding, Craig enjoys canoeing, concerts, and Cardinals baseball.

Benchmarking Ruby

Davy Stevenson

Testing is firmly ingrained in our culture, and many of us rely on a network of services to test, evaluate and profile our code. But what about benchmarking?

Learn tips and tricks about how to approach benchmarking and the variety of gems that are available. Learn about tools to help determine algorithmic complexity of your code, as well as how this information can help you make development choices. Learn how to properly set up your benchmarking experiments to ensure that the results you receive are accurate. More importantly, discover that benchmarking can be both fun and easy.

Davy is a Lead Developer at Esri's R&D Center in beautiful, sunny Portland, Oregon, where she helps create next generation mapping technologies. When not writing Ruby, she enjoys gardening, knitting, drinking all the fantastic beer that Portland has to provide, and ignoring her cats as much as they ignore her.

You can find Davy on Twitter as @davystevenson and on GitHub as davy.

Promises in Ruby

Dinshaw Gobhai

Sequential workflows are easy to write (top down), but hard to write well. State machine workflows start to feel hacky, when complex; presenter patterns can be very heavy. Promises are a beautiful way to define and execute progressive routines while allowing access to independent steps for things like logging, exception handling, and picking up where you left off.

Dinshaw Gobhai has been writing Ruby for close to 10 years and currently works as a programmer at Constant Contact. His first computer was an iMac. He began learning to code at his bar tending job at Scores NYC on slow nights in 1999. He is passionate about testing, automation, and song writing.

Ruby-red onions: Peeling back Ruby's layers in C extensions

Emily Stolfo

The fact that Ruby has different implementations is both strange and powerful. Writing an extension for the language can be a daunting task but there's no better way to get to the heart of what exactly Ruby objects are and the reason for some of the language's quirks.

In this talk, we'll use an example of writing a C extension for Ruby to use a third-party C security library. We'll peel back the layers of Ruby objects to deepen our knowledge of MRI and to understand in a little more detail what it really means to write object-oriented code.

Emily is a software engineer at MongoDB where she co-maintains the Ruby driver and aids in Ruby community development. She previously worked as a Rails developer in NYC and at Paris' Louvre Museum. She enjoys running, attending concerts, and teaching Rails at Columbia University in her free time.

Rsense Knows Your Code

Eric West

Rsense brings the kind of static analysis tooling to Ruby that programmers in other languages take for granted. The kind of tooling I kept hearing was impossible to implement for Ruby. Accurate type inference, code completion, definition finding, and eventually so much more. How about a real refactoring tool, or the ability to find whole classes of bugs without executing the code? This is where Rsense is headed.

Learn how Rsense does its magic, find out how you can use it to improve your daily coding experience, where it's going next and where you can pitch in to make rsense even better.

Eric West is a Ruby developer at LonelyPlanet. After being instructed in programming by a Time Travelling robot, Eric began investigating bringing better tools to Ruby. He spent an amazing summer fighting aliens with the JRuby team for GSoC, and working on JRubyParser and Rsense. When he’s not busy in the war against beings from Dimension K, he continues to develop Rsense and other opensource tools.

Ruby After Rails

Ernie Miller

What happens to Ruby when Rails dies?

Ruby rode the Rails rocketship to worldwide renown. While a handful of us were writing Ruby code before Rails came along, most of us owe Rails a debt of gratitude for taking Ruby mainstream, allowing us to make a living writing code in a language we love.

But opinions codified in Rails are falling out of favor. We're not writing apps that do heavy server-side rendering. Our apps have complex domain logic that grates against "The Rails Way."

Is that it, then? Has Ruby entered its twilight years?

Ernie's been writing code since he was 6 years old, but only getting paid to do so for the past 16 years or so. Sometimes he still can't believe people actually pay us to have this much fun.

6 reasons Jubilee could be a Rubyist's new best friend

Forrest Chang

Do you do web development in Ruby? Have you been forced to go to node or other technologies just for concurrency/websockets etc. Do miss your gems, and tire of functionality you have to implement from scratch? Do you hate javascript?

Well no need to switch languages/platforms, Jubilee could be your new best friend.

Jubilee, a rack server on top of Vert.x gives you

  • Concurrency
  • Speed
  • Easy Websockets support
  • Shared Memory
  • Access to the JVM ecosystem
  • Ability to reuse your existing Ruby knowledge and gems

"Say Hello to your new friend" - Al Pacino

Forrest has been loving Ruby since 2004, and a number of other programming languages long before that. He has enjoyed Rails since 2006 and can't believe it's been so long.

'Good Luck With That' : Tag Teaming Civic Data

Hsing-Hui Hsu, liz rush

In this end-to-end discussion about the challenges with civic data, from no-documentation & incomplete government code to figuring out how to scale data-driven SOA, we'll show you how two Ruby newbies managed to create an awesomely useful parking app in just four weeks. For those new to coding, or experienced devs looking to work with civic data, we'll show you our roadmap as well as what we learned pairing as two junior developers just starting out in the big bad world of programming.

Hsing-Hui Hsu is a member of the inaugural cohort of Ada Developers Academy and currently works as a backend developer for CareZone in their Seattle office. She is a classical musician & math teacher, who now loves backend development, application architecture, and pranking Liz.

Liz Rush is also a member of the first cohort of Ada and has recently accepted a dev role at the Nordstrom Innovation Lab in Seattle. She is a former technical translator and comics creator; now passionate about building digital products and development methodologies.

Future-proofing your 3rd party integrations

Jeffrey Matthias

It's 2015... your stakeholders have decided that PayPal is out and Stripe is in. Fortunately, you're a planner. You have all of your PayPal interactions isolated in an adapter gem and your interface is clearly defined, easy to re-implement and enforce. Rewriting your adapter isn't small, but it is surmountable and can be estimated accurately so it won't lead to surprises. You win.

This talk will cover a collection of best practices for defining, enforcing and test-driving the adapter for your 3rd party service to provide easier flexibility in the future.

After pursuing several unfulfilling careers, Jeffrey wandered into the world of software development by way of San Francisco's Dev Bootcamp, and he hasn't looked back since. A software engineer at SendGrid, Jeffrey also co-organizes the beginners track for Denver.rb and Boulder Ruby.

Roda: The Routing Tree Web Framework

Jeremy Evans

Roda is a new Ruby web framework designed around the concept of a routing tree. Roda gives you the simplicity of Sinatra for simple cases, while being able to scale well to handle larger, complex cases. It provides performance very close to a pure Rack application, with a flexible plugin system powerful enough to handle almost any needs. Come learn about routing trees, how they make web development better, and how Roda adds a twist on the routing tree concept to avoid the scope pollution problem inherent in many other Ruby web frameworks.

Jeremy Evans is the lead developer of the Roda web framework, the Sequel database library, and many other Ruby libraries. He is the maintainer of the Ruby ports for the OpenBSD operating system. He has contributed to many Ruby libraries and all three major Ruby implementations.

Easy rewrites with ruby and science!

Jesse Toth

Ruby makes it easy to prototype a new data model or codepath in your application and get it into production quickly to test it out. At GitHub, we've built on top of this concept with our open source dat-science gem, which helps measure and validate two codepaths at runtime. This talk will cover how we used this gem and its companion analysis gem to undertake (and complete!) a large-scale rewrite of a critical piece of our Rails app -- the permissions model -- live, side-by-side, and in production.

Jesse is a lead ruby engineer at GitHub, where she spends a lot of time thinking about forking, permissions, and data quality. When she's not working, you can find her traveling, hiking, or playing with her cats.

Eastward Ho! A clear path through Ruby with OO

Jim Gay

Messy code often begins with a simple "if". Continuing down that path is a road to ruin, but there's a simple way to avoid it. East-oriented Code is an approach that helps you follow Tell, Don't Ask. It guides you away from Feature Envy and toward better encapsulation. See before and after code and walk through easy to repeat steps that will make your Ruby programs better and easier to maintain.

Jim Gay is the author of Clean Ruby and has been exploring object-oriented techniques in his code. His 4 children have taught him to embrace chaos and attempt to make clarity.

Strong Duck Type Driven Development

John Cinnamond

As a language, Ruby plays fast and loose with the type system. Developers rely on duck typing to check that the things they want to do with an object are permissible. Whilst this freedom makes writing code frictionless and often a whole lot of fun, it doesn't always scale up well to writing larger systems.

I can't promise that strong duck typing - adding automated checking to inter-object interfaces - will make writing complex systems easy but it will help you think about how to structure code in new ways and bring some of the lessons learned from other languages to the Ruby community.

A freelance developer from the UK, mostly working with Ruby but interested in other programming languages and what we can steal from them to make Ruby even better.

Ruby Changed My Life


When I found Ruby several years ago, I had no idea how strong an influence it would be in my life.

It made my life happier and I was eager to share this new found happiness with other developers.

Then by the way of MagLev - I found the magical world of Smalltalk - and my joy was complete.

Come hear about this journey, how Ruby.is_a? Smalltalk and appreciate the following quote on another level:

I always knew that one day Smalltalk would replace Java. I just didn't know it would be called Ruby. -- Kent Beck

JohnnyT (a.k.a. John Thornton) has been developing web applications for 16 years, the last 8 of which have been in Ruby. He was converted to Smalltalk in 2010 after looking into MagLev and discovering the magical world of GemStone/S powering it all. He works on Amber Smalltalk and SubWars (an open-source GPS browser based submarine game) to scratch his Smalltalk itch and earns his living working for Creditera in Salt Lake City, Utah.

Sauron: DIY Home Security with Ruby!

Jonan Scheffler

This is the story of how I built an all-seeing eye with Ruby, and how I use it to defend the sanctity of my suburban home.

Using a Raspberry Pi and some homemade motion detection software I've developed a home security system that can send me notifications on my phone and photograph intruders. It uses perceptual hashes to detect image changes and archives anything unusual. I can even set a custom alerting threshold and graph disturbances over time.

If you've ever had the desire to be an evil wizard with a glowing fireball of an eye this talk is perfect for you. Come play with Sauron.

I work on the Ruby agent team at New Relic with some brilliant developers in Portland, Oregon. In a past life I was a car salesman, poker dealer, bouncer and concierge. Software is better than all of those, take my word for it.

In the evenings I work with Go, hack on hardware, play CCGs/board games and cavort about as a pirate with my two children: Kaja (7) and Tavin (4). My wife Becky frequently guest stars in our pirate adventures.

Come say hello, I promise not to pirate you.

Learning from FP: Simulated Annealing in Haskell and Ruby

Josh Szmajda

Haskell is a functional programming language that cleanly separates pure algorithms from messy real-world concerns. To learn how it ticks, I've translated an algorithm for Simulated Annealing from Haskell to Ruby. It also gave me an excuse to play with ruby-processing, a toolkit for graphics processing ;). Come learn about Functional Programming and how it can make your Ruby better!

Josh organizes the DC Polyglot Programming Meetup, The Ruby Hangout, DCRUG, and is the CTO at Optoro, a DC-based startup in the reverse logistics industry. Josh has used lots of languages and thinks you should too!

Stress Testing as a Culture

João Moura

If you are working on a serious project, you want it to scale. The thing about scale is, you only focus on it once you really need it. I’m the CTO of an soccer social network based in Brazil. To put it mildly, soccer is big in my country. This summer, we focused our marketing on the World Cup, preparing our application to support as many users as possible. To do that, we had to benchmark and improve, but how could we load test? What tool should we use? Those are just some questions that I'll go through in this talk, that will show youhot to address this challenge so stress test you app.

I'm a CTO and lead engineer, currently living in São Paulo, a technology enthusiast that loves open source, a blog author in RubySource, and also a speaker of some international and national conferences like Ruby Conf Brazil, TakeOff in France, Rails Israel, Italian Ruby Day, RuPy Brazil, DevCon in Israel and others.

The Social Coding Contract

Justin Searls

Social coding revolutionized how we share useful code with others. RubyGems, Bundler, and Github made publishing and consuming code so convenient that our dependencies have become smaller and more numerous. Nowadays, most projects quickly resemble a Jenga tower, with layer upon layer of poorly understood single points of failure.

As we celebrate a decade of RubyGems, let's reflect on our relationship with open source. Convenience and ego drive most open source adoption, but these shortsighted motivations raise long-term problems we need to clearly identify if we can ever hope to solve them.

Justin Searls has two professional passions: writing great software and sharing what he’s learned in order to help others write even greater software.

Going Evergreen

Kane Baccigalupi

Consultants divide projects between greenfield and brownfield projects, and talk about this evolution from green to brown as inevitable. It's not true. Large evolving software projects can stay easy to change, easy to grow, easy to reimagine throughout their long lives. This talk explores the code and social practices that make this kind of project succeed.

Kane Baccigalupi has been building technology-based startups since 2005. She has held a variety of roles from Founder/CTO, to Agile Development Consultant. Before working in the startup world, she did engineering work on the largest particle accelerator in the world. She went to school for Mechanical Engineering at Berkeley, and Fine Art at the San Francisco Art Institute.

5 Things I Wish Someone Had Told Me About Programming Before I Started

Kerri Miller

There's more to being a successful developer than simply being great at programming. The gotchas that slow us down or trip us up are often outside of the code we write, manifesting instead in our process or how we work with our peers. Whether you're new to programming or a veteran of many projects, these 5 things can improve your code, your career, and your team, and is a refresher course on what goes into the day-to-day, reminding us to have some empathy for individuals new to our community.

Kerri Miller is a Sr Software Developer and Team Lead based in the Pacific Northwest. She has worked at enterprise companies, international ad agencies, boutique consultancies, start-ups, mentors and teaches students, and somehow finds time to work on Open Source projects. Having an insatiable curiosity, she has worked as a lighting designer, marionette puppeteer, sous chef, and professional poker player, and enjoys hiking, collecting Vespas, and working with glass.

Switch Up: How to Switch Careers to Become a Ruby Engineer

Kinsey Ann Durham

The transition from working in advertising agencies to becoming a full-time developer was something I never thought I could do. 6 months into it, I found myself working for one of the best Ruby consultancies. There are 8 things that I wish I would have known before jumping head first into a career as a software engineer, especially coming from a non-technical background. You will leave this talk not only feeling inspired to enter the Ruby world as an engineer, but have concrete action items on how to make it a successful transition.

Kinsey is a Ruby and Java developer at GoSpotCheck, hailing from thoughtbot's apprentice program. She is actively involved with Railsbridge and Women Who Code in Colorado. She is passionate about dogs, women's rights and hopes to one day solve dire world problems through the lens of software development.

Build the Unified Logging Layer with Fluentd and Ruby

Kiyoto Tamura

As software becomes less monolithic and more service-oriented, log collection becomes a real problem. How can we stop hacking together brittle log parsing scripts and start building a unified logging layer?

Fluentd is a data collector written in Ruby to solve this problem. Unlike other log management tools that are designed for a single backend system, Fluentd aims to connect many input sources into several output systems.

This talk surveys Fluentd's architecture and shows real-world use cases of how different users extend it to do more with their logs with less code.

Kiyoto is a maintainer of Fluentd, the open source data collector to unify log management.

He spends much of his day at Treasure Data as a developer marketer/community manager for Fluentd. He also is a math nerd turned quantitative trader turned software engineer turned open source community advocate and cherishes American brunch and Japanese game shows.

Incremental GC for Ruby interpreter

Koichi Sasada

In this presentation, I will talk about incremental GC algorithm for Ruby interpreter.

Ruby 2.1 has Generational GC algorithm, which improves GC performance dramatically. However, long application pause time problem on major GC is not solved.

To overcome this problem, we Matz team at Heroku, Inc. implemented a well-known incremental GC algorithm into MRI/CRuby interpreter to reduce application pause time without any compatibility issues, with our "write-barrier-unprotected" objects technique. In this talk, I will explain the algorihtnm, implementation and evaluation results about new GC.

Koichi Sasada is a programmer, mainly developping Ruby interpreter (CRuby/MRI). After the 13 years life in university, now, he is a member of Matz's team in Heroku working on development of Ruby interpreter.

Kids, Ruby, Fun!: Introduction of the Smalruby and the Ruby Programming Shounendan

Kouji Takao

We will explain the introduction of the Smalruby and the Ruby Programming Shounendan, For more information about the implementation of the smalruby-editor of the Ruby programming visual editor.

One of the Ruby commiter (Readline module maintainer) and a leader of the Ruby Programming Shounendan.

Containerized Ruby Applications with Docker

Laura Frank

Docker’s lightweight virtualization may supplant our hypervisor-backed VMs at some point in the future, and change the way that tomorrow's Ruby applications are architected, packaged and deployed. Using Docker, your Ruby applications will sit atop an excellent platform for packing, shipping and running low-overhead, isolated execution environments. You will get a brief intro to the Docker ecosystem, get to know the tools and processes needed to create containerized Ruby applications, and learn best practices for interacting with the Docker API from Ruby.

Laura Frank is a developer who creates tools to make development processes simpler. She started coding after receiving a hand-me-down DOS system and has been lost in the code mines ever since. She is currently a senior software engineer at CenturyLink Labs and lives in Chicago.

Programming, Education, and the American Dream

Liz Abinante

The learn to code movement has popularized the idea that coding is a skill everyone can and should learn. It's the American dream: learn the desirable skill and you'll succeed financially. Those who master the skill and achieve the goals are held up as prime examples of just how easy it was. But if it was that easy, why are there so few victors encouraging hoards of hopefuls? I'll discuss the history of the American Dream, how new programming education endeavors have repackaged it, and how the lack of awareness and analysis of this privileged rhetoric is damaging our culture and workforce.

Liz Abinante is an engineer living in Portland working for New Relic. She has served as co-leader for the Chicago chapter of Girl Develop It, and currently volunteers as an advisor and for the curriculum review team nationally. She is infectiously enthusiastic about web development, teaching, learning, and feminism. Her greatest dream in life is to spend her entire day surrounded by puppies while coding.

It's so quiet. Let's make music.

Loren Segal

Ruby is used for a lot of things, but for some reason, only a few people are using it for music. In a language that is meant to make programming fun, the lack of such creative code is scary. Let's fix the current landscape by learning how to use the tools available in Ruby (and some not) to let those creative juices flow. We will be focusing on how to build sounds from the ground up (the powerful amplitude, and the majestic waveform), so you don't need any prior audio wizardry. Just bring yourself and a Ruby console and we just might create some beautiful music in a beautiful language.

Loren Segal is an SDKs and Tools developer at Amazon Web Services working on the AWS SDKs for JavaScript. In his spare time, Loren likes to create technology and hacks on a diverse set of open source projects like YARD, a Ruby documentation tool, RubyCorrect, a static analysis and automatic test case generation tool, and Samus, a tool to help with project releases.

The Quiet Programmer

Mark McSpadden

Hi, I'm [NAME] and I'm an introvert. But contrary to what you might think, it's not a problem and I am not working on it. In fact, I've embraced it.

In this session, we'll explore the strengths of introversion within the realm of programming and software development. We'll discuss how it plays a role in your interactions with other developers, your preferred work environment, and yes, even your code.

Mark is the Director of Technology at Sabre Labs, the founder of Big Ruby Conf and previously led the Dallas Ruby Brigade. He is also a sucker for a good code contest.

Off-screen, Mark enjoys cooking, eating, laughing, playing, and exploring the world with his wife and 3 young daughters.

Enumerable for Fun & Profit

Michael Hartl

Let's peek under the hood of the the Enumerable module, a goldmine of examples of the power and flexibility of Ruby. Although some of Enumerable's methods are familiar from workhorse Ruby data structures such as Array and Hash, there are tons of hidden gems, including cycle, lazy, partition, and grep. Mastering the ins & outs of Enumerable will save you time, avoid bugs, and help you write clearer and more concise code. Join the author of the Ruby on Rails Tutorial on a journey through one of the most captivating and illuminating modules in Ruby's Standard Library.

Michael Hartl is the author of the Ruby on Rails Tutorial and cofounder of the Softcover self-publishing platform. In 2011, he received a Ruby Hero Award for his contributions to the Ruby community. Michael is a graduate of Harvard College, has a Ph.D. in Physics from Caltech, and is an alumnus of the Y Combinator program.

Building Your API for Longevity

Mike Stowe

One of the greatest challenges to developing an API is ensuring that your API lasts. After all, you don't want to have to release and manage multiple versions of your API just because you weren't expecting users to use it a certain way, or because you didn't anticipate far enough down the roadmap. In this session we'll talk about the challenge of API Longevity, as well as ways to increase your API lifecycle including having a proper mindset, careful design, agile user experience and prototyping, best design practices including hypermedia, and the challenge of maintaining persistence.

Mike Stowe is a Software Engineer with over 10 years experience building applications for law enforcement, the medical field, nonprofits, and numerous industrial companies. Over the last two years he has been focused on APIs and ways to improve industry standards and efficiency. He now works for MuleSoft, a company on the leading edge of API development and management, as well as SOA/ ESB architectures. Follow him on Twitter @mikegstowe

Chat Robots Next Level Tooling

Ole Michaelis

Developers are lazy! So we are great in creating tooling for our daily work. But it has its weaknesses, we are creating a tons of scripts on our local maschine, sometimes we share them via git or other vcs systems. But all over all this tooling sucks when it comes to collaboration. We developers also love hanging out in chat rooms like campfire or jabber.

Why not combine this via chat robots. Our tooling would be available to everyone without installing wired shell scripts plus we can get rid if questions like:

Do you have the deploy lock?

Ole Michaelis is the co-founder of SoCoded, a hackfest and web development conference in Hamburg. He’s a Software Engineer at Jimdo, a DIY website creator, where he focuses on backend development. In his free time, he’s building, a hazzle-free slide sharing platform. Ole is passionate about open source software, enjoys traveling, and loves Mexican food. He classifies himself as a 'bad' German as he dislikes beer and soccer – the traditional German past-times.

Polishing Ruby

Olivier Lacan

There are gems out there solving very common problems that could easily be contributed back to Ruby itself. Suggesting a new Ruby feature isn't as daunting as it sounds. As long as you're diligent, you too can push ruby forward.

Software bricoleur, word wrangler, scientific skeptic, and logic lumberjack. I work at Code School, talk about Ruby and Rails news on the Ruby5 podcast, and I'm really curious about how people learn and work — alone and together.

Testing Isn't Enough: Fighting Bugs with Hacks

Paul Gross

Bugs and mess-ups are serious problems in software. Mistakes are inevitable - but the stakes can be high. If you're writing a hospital management system, they can cost lives. In a payments system, they can cost money. Since we can't eliminate bugs, this talk will cover strategies, hacks and monkey patches in Ruby to prevent bugs from leading to disaster. This isn't a traditional testing talk, but rather a thinking outside-of-the-box approach to busting bugs and building more robust software.

Paul Gross is a Developer at Braintree, an online payments company focused on making payments better for developers, business owners and end-users alike. Before Braintree, Paul worked at ThoughtWorks, a global IT consultancy, building custom software in diverse languages, including Java, .NET, Python and Ruby. Paul has been creating and delivering software for over 15 years. Paul is an experienced speaker, presenting around the US and across the world, in Australia, India, England and more.

Affordances in Programming Languages

Randy Coulman

A good design communicates the intended use of the object. In the physical world, this communication is accomplished by "affordances" as discussed by Donald Norman in "The Psychology of Everyday Things".

Programming languages also have affordances, and they influence the kinds of solutions we develop. The more languages we know, the more we "expand our design space" so that we can come up with better solutions to the problems we face every day.

We will look at a few example problems and show how they can be solved using the affordances provided by different languages.

Randy Coulman is a Senior Software Engineer at Zeal (@CodingZeal), an agile web development consultancy in Oregon. He's been developing software for more than 20 years, mainly in Ruby, Smalltalk, and C++. He writes about software on his Courageous Software blog at

Letting Concurrency Help You Today

Richard Bishop

Ruby has never been renowned for its performance. We choose to love Ruby for its more admirable traits, like simplicity and expressiveness. But it turns out that we can have the best of both worlds by kicking the single-threaded model to the curb and using tried and true concurrency abstractions.

We will take a look at the building blocks Ruby offers for concurrency and how Rubyists have used these to build scalable, performant libraries just dying to be used. You’ll walk away with an understanding of concurrency and how you can leverage it in your applications today.

Richard works as a consultant and specializes in concurrency, maintainability and scalability. He is passionate about how software gets built from both a technical and people standpoint. When Richard isn't writing Ruby, he is probably inspecting the concurrency model of another language and seeing how he can leverage that from Ruby.

Going the Distance

Richard Schneeman

If you've ever misspelled a word while searching on Google, you've benefitted from decades of distance algorithm development. In this talk we'll break down some popular distance measurements and see how they can be implemented in Ruby. We'll look at real world applications with some live demos. It won't matter if you get your kicks "Hamming" it up, if you drink your coffee in a "Levenshtein", or if you're new to Ruby: this talk is Rated R, for "all Rubyists". You'll be guaranteed to walk away with O(n^n) expectations met.

Richard writes Ruby at Heroku and maintains When he isn't obsessively compulsively playing Starcraft 2, he writes such gems as Wicked, Sextant, and oPRO. Richard is a member of the Rails issue team, is married to Ruby, literally.

Isomorphic App Development with Ruby and Volt

Ryan Stout

As single page apps become common, more and more of our logic becomes duplicated between the front and back-end. We also spend more time writing API glue code to move data between each side. With isometric development you can remove the boilerplate of web development and the cognitive load of switching between languages.

Existing isomorphic web frameworks run JavaScript on the server. Volt lets developers write their app code in ruby and have it run both in the browser and on the server. Data is automatically synchronized to remove the need for REST API development.

Ryan has been programming since the age of 13 and has been doing professional ruby development for the past nine years. He has written gems for things like reactive programming, matrix manipulation, deployment automation, and graphing. Ryan is a frequent speaker on topics such as web development and machine learning. His most recent startup uses natural language processing to predict personality and interests from social data.

An Introduction to Spies in RSpec

Sam Phippen

Spies are a relatively new feature in RSpec. In this tutorial-style talk: we'll look at what spies are, how spies work in RSpec and how one can write better tests with spies. We'll work through some of examples of writing new tests with spies, improving old tests with spies and the reasons why spying is a useful tool for your testing practice.

If you're new to RSpec and looking for ways to improve your testing practice, understand the library better or just ask some questions, this session will be great for you.

Sam Phippen is a swashbuckling hacker from London, UK. He fixes every size of data problem at Fun and Plausible Solutions. He helps fight for the forces of justice as a member of the RSpec core team. He's sad that he can't hug every cat.

Madam Sandi Tells Your Future

Sandi Metz

Life's demands are such that it's easy to get lost in the day-to-day, trapped inside your own private world, expecting today to repeat endlessly and the future to remain a distant, untroubling land. The future is coming, however, whether you are ready or not, and when it does everything will change.

This talk is a history lesson that covers 3,000 years of technology. It uses the past to lend perspective to the present and give guidance for the future. It reminds us where we come from and suggests how technology can help us to choose where we’ll go next.

Sandi Metz, author of "Practical Object-Oriented Design in Ruby" (http:\, believes in simple code and straightforward explanations. She prefers working software, practical solutions and lengthy bicycle trips (not necessarily in that order) and consults and teaches on all things OOP.

Scalable deployments - How we deploy Rails app to 100+ hosts in a minute

Shota Fukumori

If you're developing webapps, I guess you deploy sometime using tools like Capistrano. We think existing tools slow for huge apps and a lot of servers.

We serves, which is a huge Rails app, and the largest recipe site in Japan. It's backed 120+ app servers. We've used Capistrano + SSH + rsync, but it became a bottleneck, slower and slower, as well as server increases. Our developer have wanted to focus on development. Deployments should be done in short time.

In this talk I'll introduce about our new deploy tool Mamiya, and will talk about how we deploy webapp in a minute.

A Ruby committer, works for Cookpad Inc.

Norikra: SQL stream processing in Ruby


Data streams (ex: logs) are becoming larger, while analytics in (semi-) real time is also becoming more important today. Moreover, there are many non-programmers who wants to write queries in this big data era.

Norikra is an open source server software that provides "Stream Processing" with SQL, written in JRuby, runs on JVM. We can write and add queries for stream easily on Norikra, without any editors, compilers or deployments. I will talk about implementation of Norikra and its application in LINE corporation.

A software engineer working in LINE Corp, data analytics platform team. Data analytics, logging managements and performance enhancements are my responsibilities, and we solve these problems with OSS. A committer of Fluentd project, an author of Fluentd plugins, a user of Hadoop/Hive and founder of the Norikra project.

A Lever for the Mind

Tom Stuart

Our brains are great at social interaction and pattern matching, but terrible at reasoning about the complicated non-human systems which dominate our world. Abstraction is the adapter between the fearsome complexity of the universe and our simple primate minds; when the real world is too intricate for us to manipulate directly, abstraction gives us big friendly levers to pull instead.

I’ll explain how this single powerful idea underlies computers, mathematics, language and everything else we rely on in our daily work as computer programmers, and then show you how to use it effectively.

Tom is a computer scientist and programmer. He has lectured on optimizing compilers at the University of Cambridge, co-organizes the Ruby Manor conference, and is a member of the London Ruby User Group. His latest book, Understanding Computation, was published by O’Reilly in 2013.

Writing mruby debugger

Yurie Yamane, Masayoshi Takahashi

mruby forum released mruby 1.0.0 in Feb. 2014. It's been stable to use. However, because mruby is used on small boards or in application programs, it's hard to debug mruby applications. When we develop mruby application, we should write not only Ruby code, but also C code. So we need to debug both codes. To make debugging mruby application easier, we are writing prototype of mruby debugger. Current mruby distribution has no debugger, but there are some useful API sets to implement own debugger. In this talk, we introduce their API and how to use them to write a debugger.

Team Yamanekko is a developer group of Yurie Yamane and Masayoshi Takahashi. We are using mruby for micro controllers, with the slogan ""tanoshii mruby(mruby for fun)"". Yurie Yamane is a programmer who is interested in embedded systems.

Masayoshi Takahashi is an old-time Rubyist and the founder of Nihon Ruby no Kai, the non-profit Ruby community in Japan. He is also the founder of Tatsu-Zine Publising, the e-book publisher for IT engineers in Japan.

nobody knows nobu

Zachary Scott

Nobuyoshi Nakada is the most prolific contributor to Ruby. He is the all time leader in commits to the CRuby source code. With over 10,000 commits, he leads second place by double the number of commits. Leading to his psuedonym "Patch Monster".

Allow me to introduce you to the man, the myth, and the legend that is nobu.

You will learn the true story of how nobu came to be, and witness exactly how he earned that psuedonym and why everyone loves nobu.

We will also show you what it takes to make it in ruby-core using nobu as an example.

Ruby committer from Vermont living in San Francisco

Overcoming Our Obsession with Stringly-Typed Ruby

❺➠ David Copeland

We use Strings. A lot. We use them for pretty much everything that isn't a number (it's jokingly referred to as "stringly-typed").

It ends up creating unnecessary complexity in our applications, making the boundaries between classes and modules hard to understand.

What if we used Ruby's power to create richer data types? These types would define clearer boundaries in our system, and make our code much easier to understand.

I'm a programmer and author. I wrote "The Senior Software Engineer" and "Build Awesome Command-Line Applications in Ruby", and have over 18 years of professional development experience. I've managed high-performance, high-traffic systems at LivingSocial, helped build the engineering team at Opower, and worked consulting gigs both large and small. Currently, I'm Director of Engineering at fashion start-up Stitch Fix, building a platform that will change the retail shopping experience.

Return to the top