Tales from the Crypt
Aaron Bedra, Justin Collins, Matt Konda
In this talk, three Rails security specialists will take a journey through a terrifying Rails application to illustrate common security problems we have seen in the real world. The discussion will include how to identify, fix, and prevent the issues with an emphasis on practical advice. Along the way we will share our experiences and perspectives concerning securely implementing applications. We hope it is a bit scary, and yet fun … like a horror movie!
Aaron is a Senior Fellow at Groupon where he works on all things open source. Aaron is the creator of Repsheet, an open source framework for web application attack prevention. He is a co-author of Programming Clojure and a previous member of Clojure/core.
Justin is a PhD candidate at UCLA, a member of the application security team at Twitter, and primary author of Brakeman, a static analysis security tool for Rails.
Matt is a veteran agile software developer with a focus on security. His mission is to empower developers to build code more securely through training, secure agile process adoption (Security in SDLC) and technical solutions. He enjoys soccer, reading and spending time with family.
Rack::Attack: Protect your app with this one weird gem!
Mature apps face problems with abusive requests like misbehaving users, malicious hackers, and naive scrapers. Too often they drain developer productivity and happiness.
Rack::Attack is middleware to easily throttle abusive requests.
At Kickstarter, we built it to keep our site fast and reliable with little effort. Learn how Rack::Attack works through examples from kickstarter.com. Spend less time dealing with bad apples, and more time on the fun stuff.
Aaron Suggs is the Operations Engineer at Kickstarter, where he backs too many video game projects.
He enjoys writing code that makes developers' lives easier, especially while wearing his grizzly bear coat.
Service Extraction at Groupon Scale
Abhishek Pillai, Jason Sisk
You've probably heard it over and over that extracting services from Rails monoliths is tricky business. But we're here to assure you—it's even trickier when you've got 40+ million active global customers and development teams distributed across the world. So to help illustrate the work that goes into that process, two Groupon engineers are here to talk about the lessons they've learned along the way.
Abhi is a software engineer at Groupon and is currently working on a handful of back-end applications that enable inventory configuration, transaction, and management. A little over two years ago, he attended Code Academy (now known as The Starter League) and was introduced to awesome mentors at Groupon. Since then, Abhi has spent each day surrounded by amazing developers and learning how to build great software at scale.
Jason has been a software engineer at Groupon since March 2012. Prior to being abducted out of an Indiana cornfield by Groupon’s notorious cat-piloted spacecraft, he spent four years as the primary builder and Ruby/Rails foreman at Mobi Wireless Management in Indianapolis. Before that, he wore a lot of different hats inside Indiana University's IT enterprise. Earlier still, he went to college to become a journalist—but became entranced by the web instead. He loves software as a means to solve real-world problems and derives joy from agile production, pair programming, and knowledge sharing.
LivingSocial Lightning Talks
Dan Mayer, Ed Weng, Tyler Montgomery, Rodrigo Franco, and Nick Sieger, hosted by Adam Keys
A fast-paced look at the diverse interests of LivingSocial engineers, from sharing views in a service-oriented architecture to staying focused while working from home.
Unreasonable Estimates and Improbable Goals
Your job doesn't start when your fingers touch the keyboard. It starts when someone utters the words: "How hard would it be?"
This is a crash course in estimating work, identifying hidden costs, and dealing with constraints. Along the way we will also learn how to defend against tricks from the Dark Side such as estimation bargaining, ego manipulation, and crunch time.
They taught me Big-O notation, I wish they taught me this.
I'm a full stack Rails developer at LiquidPlanner, and have been writing software that helps people get work done for the past dozen years. You'll find me running, walking, biking and eating about town.
Ruby on Rails Hacking Guide
Rails is a platform to serve your Ruby applications, and yet is a very well crafted open-source product written in the language that composes your apps.
So, if you're curious to know how things work underneath your app, you can read everything!
This talk will be a good guide to step into the Rails internal. We'll cover these topics:
- How Rails loads itself, libraries, and application when booting
- How Rails deals with HTTP requests and databases
- How to debug, patch, and extend Rails
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.
Authorization in a Service-Oriented Environment
In a SOA environment users can interact with multiple parts of your system, and the rules for authorization become dispersed across applications. The task of maintaining rules becomes complex. The challenge compounds further in a heterogeneous environment, with services built in different languages.
In this talk, I focus on the topic of authorization, specifically how we can scale and grow our services with confidence. I’ll walk through a new framework we've developed to approach this problem.
Alan Cohen is a Software Engineer at Climate Corporation working on the Insurance product back-end and other core pieces of their risk management platform.
Designing the APIs for an internal set of services
The success of an API is measured by how fast and easy developers can integrate with that.
In the micro-services environment, where each service has a well-defined responsibility, it's not enough to have a well designed API, it's necessary to establish a contract between the APIs, so the integration between them may be feasible.
In this talk, I will go through a set of best practices that will help to design APIs and define a communication service contract.
Improve Performance Quick and Cheap: Optimize Memory and Upgrade to Ruby 2.1
You spend big money on servers or Heroku dynos? Your app exceeds hosting's memory limit? Your background processes can't keep up with the work? Your cache invalidation code is too complex? Then it's time to optimize the code.
Join this session to learn why memory optimization is the #1 thing you can do to improve performance. Understand how to optimize memory. Find out what difference Ruby 2.1 makes and what to do if you can't upgrade. Get to know optimization tools and processes.
Alexander is an entrepreneur, Y Combinator alum and free software developer. He has 9 years of experience of Rails application development and performance optimization. Alexander contributed performance-related patches and optimizations to both Ruby and Rails. His website and blog: www.alexdymo.com.
Where did the OO go? Views should be objects too!
Is app/views the worst part of your codebase? Have you ever told someone on your team “remember to update the client-side views too”? Too long has the node.js community touted their advantage of using the same code on the client and the server. It’s time that Rails got a few punches in.
We should think of views as objects, not template files. In this talk I show how that lets us tease apart presentation from data, and build logic-less templates that are shared between client and server.
Andrew Warner studied CS and Psychology at Wesleyan. He has worked at companies large and small and with tech stacks ranging from Java/Spring to Ruby on Rails. He is currently a developer at Rap Genius, where he helps build and scale a Rails backend so that all of text can be annotated.
Ultra Light and Maintainable Rails Wizards
Wizards have been common in web applications since the dawn of the Internet, with the most popular example being the Shopping Cart, yet many struggle with writing wizard code effectively, resulting in a huge untraceable rat's nest of copy/paste code. In fact, many implementations violate REST and include Fat Controllers as well as overly complicated wizard-step management, data, session, and validation code. This talk covers a better way that yields Ultra Light and Maintainable Rails Wizards!
Andy Maleh leads at Big Astronaut by embracing agile practices and software craftsmanship while perfecting software products. He helped Groupon develop their 33M-user-website by working on user subscription and personalization features. Andy likes to drum, snowboard, and longboard in his free time.
Eliminating Inconsistent Test Failures
Does your test suite fail randomly now and then? Maybe your cucumbers are a little flakey. Maybe you're busy and just kick off the build again... and again.
If you've had a week or two where the build just won't pass, you know how fragile a TDD culture is. Keep yours healthy, or start bringing it back to par today.
Why do tests fail randomly? How do we hunt down the causes? We'll review known sources of "randomness", with extra focus on test pollution and integration suites.
I empower people to make a difference with appropriate technology. Now I'm working to turn around the diabetes epidemic.
I was a founding partner and lead dev in a tech cooperative for nonprofits, and a team anchor for Pivotal Labs, training and collaborating with earth's best agile engineers.
Deploying Rails is easier than it looks
Heroku makes it quick and easy to get your app up and running without worrying about "server stuff". But that server stuff is a lot simpler than it seems and once you know it, can make your projects more flexible (and save a lot of money!).
I'll start by looking at the basics of what's happening behind the scenes when you deploy a Rails app and why you might want to setup your own server. Then I'll look at the tools you'll need to do so and some common gotchas when getting started.
Rails Developer, author of 'Reliably Deploying Rails Applications'. Avid indoor climber. Believer in "Small Steps Taken Quickly".
Middleman: The missing front end of the Rails API stack
There's a lot of talk around using Rails as a JSON API back-end, but less on how to use the same great tools we've been using in Rails to build front-end HTML/JS apps.
Learn how Middleman, a Ruby static site generator, can be used to build massively scalable and responsive front-end JS apps that talk to a Rails API server. I'll discuss topics including dependency management between several front-ends and an API, env targeting with Foreman, deployments using rsync and nginx, and more.
Cofounder and CTO of Poll Everywhere, the world's largest realtime polling website. Creator of firehose.io. Builder. Traveler.
Bring Fun Back to JS: Step-by-Step Refactoring Toward Ember
You just wanted to add some nice interactive functionality to your Rails app. But then one jQuery plugin turns to three, add a dash of statefulness, some error handling, and suddenly you can't sleep at night.
We'll walk through using Ember Components to test-drive a refactor until your front-end code is understandable, usable, and extensible. Armed with TDD and components, you can start to get excited, not exasperated, when asked to add advanced client-side interactions to your website.
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.
Branding for Open Source Success
If you build it, they might come. We all want our open source projects to be widely adopted, but competition in the open source landscape is fierce. Reaching levels of notoriety and adoption akin to the likes of Linux, Rails, or WordPress is increasingly challenging amongst today's volume of seemingly never-ending options. How do you differentiate in a way that is meaningful? It's really about building a 'who', not just a 'what'.
Bree Thomas (@BreeThomas33) is a Developer at iTriage, and a recent graduate of gSchool by Jumpstartlab. She has a background in Brand Strategy/Marketing and blogs about experiences in both development and marketing at: http://www.nooblife.com/ and http://www.thebratblog.com/.
Discovering User Interactions
There's no magic mojo that helps a designer notice bad design; there's no secret compendium of design mysteries that developers just don't have access to. Good interaction design is about keeping your senses honed – noticing the little things and respecting user intuition. In this talk I won't be showing code – I'll be breaking down the usability of the world around you, and preaching the virtues of interaction awareness. Trust me: you'll never look at a microwave the same way again.
Cameron Daigle is a senior designer/consultant/purveyor-of-common-sense at Hashrocket. He works with Ruby and iOS, and has been building for the web since long before that – but through it all has maintained a deep and steadfast love for beautiful user experiences.
Advanced aRel: When ActiveRecord Just Isn't Enough
We all love Rails, and lots of us love ActiveRecord. It's intuitive and easy to use in small apps that don't have lots of models. You can select, join, and where your way into a great, working app in no time. Then your app starts to grow, you add more models, and you need to start building more and more complex queries. This talk describes how to harness the awesomeness of aRel, ActiveRecord's powerful relational algebra system, to perform arbitrarily complex queries using nothing but pure Ruby.
Cameron Dutro works on Twitter's International Engineering team, primarily on the Twitter Translation Center, a large Rails application. He's been building stuff in Ruby for the past three years, including the TwitterCLDR internationalization library, and loving every minute of it.
Supercharge your workers with Storm
If you have ever needed to scale background jobs, you might have noticed that using the database to share information between tasks incurs a serious performance penalty. Trying to process large amounts of data in real-time using the database for coordination will quickly bring your servers to their knees.
This talk will show you how to use Apache Storm, a distributed, realtime computation system, to solve these types of problems in a fast, consistent, and fault-tolerant way.
Carl is currently working at Tilde, a small company he co-founded, where he spends most of his day hacking on Skylight and drinking too much coffee. In the past, he has worked on a number of ruby open source projects, such as Bundler and Ruby on Rails.
Tricks that Rails didn't tell you about
Carlos Antonio da Silva
Rails allows us to write very concise code hiding a lot of the complexity. However, it’s common to face situations that require us to write more complex code on our own, and sometimes we forget a little about what Rails can do for us. We are going through some Rails features that people might not be aware of, talking about Active Record queries, custom template handlers, routing niceties, view helpers and more, to learn how these tricks can help simplifying complex code on our apps.
Carlos (@cantoniodasilva) hacks beautiful code at Plataformatec, a consultancy firm based in Brazil, and is member of the Rails Core Team. He enjoys writing about a variety of subjects at the company’s blog, and helping maintaining open source projects like Simple Form and Devise.
The Power of M
Client-side MVC is a different beast from the one we're used to in Rails. On the client, more than anywhere else, the M is the key to creating powerful user experiences.
To demonstrate this principle in action, we'll first create an in-memory model of what a color is, and then use it to build an interactive 3D color chooser that is both beautiful and intuitive.
Sound hard? Not with when you're armed with well defined models... not when you've got the Power of M on your side.
Charles is a rubyist and entrepreneur who has been building software human interfaces for over ten years.
Secrets of a World Memory Champion
You don't have a bad memory, you were just never taught how to use it. We are going to practice several powerful memory techniques that have been perfected by memory contest champions over the last hundred years. By the end of this talk, you will know how to quickly memorize a foreign language, driving directions, phone conversations, the entire Chuck Norris filmography, your friend's credit card number, a shuffled deck of playing cards, and the name of every person you meet at RailsConf.
Chris Hunt works for GitHub from a standing desk in Portland, Oregon. Prior to GitHub, Chris worked on Rails applications for Square, Apple, Department of Defense, and his very critical mother. You can find him on Twitter as @chrishunt
Too Big to Fail
It's 5am and a multi-million dollar process fails halfway through. Hours of nightmarish, manual brain surgery later, enough is enough.
What happens when background jobs grow as bloated as the MonoRail™ that begot them?
Rather than reach for the latest fad off of HackerNews, we'll user Ruby and Rails to automate error-recovery, concurrent processing, and catch corrupt data before it brings everything down.
Typist, Philosopher at ZenPayroll. Humanist with a penchant for dystopian novels, St. George gin enthusiast, and wearer of colorful pants.
Building kick-ass internal education programs (for large and small budgets)
Chuck Lauer Vose
There are not enough senior programmers in the world to satisfy the needs of our organizations; but educating your own developers is crazy expensive and hard, right?
It turns out there lots of effective, low-cost, low commitment ways to inject education into your organization, I'll show you some of the low commitment ways to engage your peers, how to evaluate your needs, how to measure your progress, and how to plan for future ed needs.
Chuck has been programming for the last 10 years, but recently switched full-time to a lifelong passion of teaching and education. Formerly he founded the Portland Code School, and now he's working with New Relic to build an incredible internal education program for incredible engineers.
Artisans and Apprentices
Inspired by the medieval guild-and-apprentice system, the increasing popularity of bootcamps and apprenticeship programs in software development has great promise but may also bring with it some serious negative side effects. Let's explore the benefits of applying 12th century best practices to the challenge of preparing a new generation of developers, and discuss ways to avoid the mistakes of the past: technologically conservative monocultures comprising and serving a privileged few.
Coraline Ada Ehmke is a speaker, author, teacher, open source advocate and technologist with 20 years of experience in developing apps for the web. As a co-founder of LGBTech.org and founder of OpenSourceForWomen.org, she works diligently to promote diversity and inclusivity in the tech industry. Her current interests include small-application ecosystems, services and APIs, business intelligence, machine learning, and predictive analytics.
Web applications with Ruby (not Rails)
Whenever you say that you're building a web application with Ruby, its almost implied that you will be using Rails to do so.
But imagine for a second that Rails does not exist at all. What kind of Ruby code would you write to make a web application work from scratch?
During this talk we will think about and implement some of the MVC patterns that are taken for granted when using a framework like Rails, while at the same time write a web application with only a little help from Rack
David Padilla is CEO at Crowd Interactive, a leader Ruby on Rails consultancy based in Mexico.
Through his career, he has been devoted to promoting the Ruby on Rails community in Mexico through rails.mx and the organization of the only Ruby conference in the area: Magma Conf.
Domain Driven Design and Hexagonal Architecture with Rails
Declan Whelan, Eric Roberts
You know that Domain Driven Design, Hexagonal Architecture, and the Single Responsibility Principle are important but it’s hard to know how to best apply them to Rails applications. Following the path of least-resistance will get you in trouble. In this session you will learn a way out of the “fat model, skinny controller” hell. You will leave with a roadmap to guide your design based on concepts from Domain Driven Design and Hexagonal Architecture.
Declan loves to code and help others get joy from their code. When not coding he is the CTO at Printchomp, an agile coach at Leanintuit and an Agile Alliance Board Member.
Eric Roberts is a software developer at Boltmade and co-founder at 20Skaters. He is enthusiastic about creating maintainable software.
Don't Forget Your People
We have a tendency to forget that the product isn't just the pretty website that the user sees. The product also includes all the people standing behind it. Taking on non-development roles gives us a broader perspective and helps us find ways that we can use our development skills to help the human parts of our products.
Listen to this developer's experiences playing support agent for a few hours each month, and how this turned into tools that made support a happier experience.
Emily works for TeamSnap, where she helps write delightful software to organize teams, especially of the sports variety. She enjoys both the consumption and production of music and improv.
Engine Yard's New and Improved Cloud Platform
This talk will reveal an exciting and improved version of the Engine Yard Cloud product. We'll go over some recently added unique features as well as how Engine Yard's support team help our happy customers everyday.
An Iterative Approach to Service Oriented Architecture
While there are resources on why other companies have made the transition to SOA, and end-game service boundaries may be clear, there are few resources on how to make progress towards SOA without sinking an entire team or stopping concurrent product development. Faced with a growing codebase, slower tests and performance issues, we've extracted services from our large Rails app the way we do everything else: iteratively. I’ll walk through what we did right, and what we almost did wrong.
It took a while for Eric to come around to programming, trying a few other careers first. Now he focuses on the intersection of code and process, using buzzwords such as TDD, agile and devops to describe his ham-fisted hammering on keyboards. He finds it most interesting when code fails, and why.
Mutation Testing with Mutant
Tests are a good tool to verify your code but how do you verify your tests? Mutation testing is a technique to evaluate the quality of your tests by programmatically mutating (i.e. making a series of small modifications to) your code and ensuring that the tests no longer pass. This talk will attempt to demonstrate the value of mutation testing and show you how to use Mutant to improve the quality of your tests and your code.
Erik Michaels-Ober is a programmer.
Curmudgeon: An Opinionated Look at an Opinionated Framework
Rails has opinions about how we should organize code, interact with a database, write tests, format URLs... just about everything. These conventions, the wisdom goes, free us up to focus on the specifics of our application. "Convention over configuration" becomes our mantra as development hurtles forward with startling speed.
At some point, we stop. We take stock of what we've built, and it's a mess. How did we get here?
Turns out, the decisions that Rails made for us had consequences.
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.
WebRTC (Real Time Communications) is revolutionizing the way we handle voice, video and data communication by providing native peer-to-peer communication inside the browser. In this talk we’ll discuss:
- History: How has WebRTC evolved since it’s birth just three years ago?
- Applications: How are developers using WebRTC beyond video conferencing? (Such as a peer distributed CDN and “bittorrent in the browser”).
- Getting Started: What is the WebRTC Hello World?
Make an Event of It!
Are your controllers jumbled with seemingly unrelated steps? Does testing any bit of application logic require fixtures and setup helpers a mile long?
Evented patterns create a vocabulary of what happens in your system, and a way to separate code triggering events from code that responds to them. That helps tame the sprawl by setting clean boundaries, simplifying tests, and keeping your dependencies isolated.
This talk reveals the power of events and what's already in Rails to help you.
I fell in love with programming watching my dad work in Clipper and dBase III (no, really). That obsession continues today. My current language crushes are Ruby and Haskell, and I work for New Relic on the Ruby Agent. When not at work, I enjoy cycling, homebrewing, and hanging out with my family.
What is REST? Why is it part of the Rails Way?
When David Heinemeier Hansson started talking about REST in 2006, little could we suspect it'd become such a central part of Rails (and of web development in general). Back then a web service meant something you coded using XML and SOAP. Those were dark times. REST changed it all.
In this talk, I'll explain REST for beginners, I'll talk about why it is such an important architecture, and I'll show all the nice things Rails offers you for building a RESTful application or a RESTful API.
Web developer, daydreamer and all around happy person.
Founder of https://teowaki.com where we try to make developers happier by helping them share technical information, best practices, gossip and lifehacks with their developer friends.
Elements of Design: A Developer’s Primer
“Oh, don’t ask me, I’m a terrible designer.” That's something I've heard from Rails developers ever since I started working with them. But it’s never true. It's just that most Rails devs don't have the scaffolding (no, not that scaffolding) around which to structure their designs.
In this talk we'll cover the things every developer should know about design: contrast, repetition, proximity, hierarchy, flow, typography, and color.
Jenn Scheer is a designer & developer who began designing for web but was frustrated with the inability to build it herself. She’s taught design at General Assembly, to students who were clearly arming themselves for the web. She is currently at Rap Genius, helping users annotate the world.
Service Oriented Authentication
Getting started with authentication in SOA environments can seem like a daunting subject, but it doesn't need to be difficult. This talk will cover everything you need to know to get started building your own SOA systems. We'll look at the details of building a centralized authentication service and allowing other apps to delegate their authentication needs to the service.
Jeremy is a full stack engineer who has been creating web apps for over 15 years. He's an organizer of the OkcRuby developer group and an active open source contributor. You might also find him drumming, shooting photos, or brewing.
Sketchnoting: Creative Notes for Technical Content
As developers, most of our time is spent on computers; but sometimes pen and paper is the best way to explore and develop our ideas. Sketchnoting uses hand-drawn elements to enhance focus, improve memory, and visualize important concepts. This talk will cover techniques to visually capture ideas, how to approach the mental multitasking required to sketch during technical talks and meetings, and explain why "I can't draw" is just a mental barrier to embracing creativity in your notes.
I am a web designer and front end developer at Shopify. I love UX and web development, Sass, and riding my refactor tractor through views and CSS. I love talking about comic books, wine, cats, and how cold it is in Canada. You can often find me with my nose buried in a sketchbook at conferences.
How To Be a Boss without the B-S
I think a lot of developers secretly harbor the desire to start their own company, but don’t realize that running a business means a lot more than just cutting great code all day long. Others may be at a point in their career where they feel stalled out and might want to see if management is right for them. Moving from a software role to a management role doesn’t mean you have to sacrifice all your technical/coding skills, but it does mean you need to cultivate some new ones.
Jessie is the Director of Engineering at Lookingglass Cyber Solutions. She enjoys mentoring young developers and is an active coach and participant with RailsGirls. Though she mostly spends her day herding cats, on occasion her devs let her into the code repo to do some damage.
I've Pair Programmed for 27,000 Hours. Ask me Anything!
I've pair programmed almost every work day for 13 1/2 years. You've got questions. I've got answers.
Presentations I give, regardless of topic, grind to a halt once I mention pairing. Do we pair all day? Who owns the code? How do I convince my boss to let us pair? When do you take bathroom breaks? What about remote pairing? Pairing is a scam!
I'll answer all questions, from the poignant to the silly, and want you to share your own pair programming experiences. Ask me anything!
Joe began writing software in the late ’90s, soon joining eXtreme Programming pioneer Evant in 2000. He joined Pivotal Labs in 2005 as a founding member of their Rails consulting practice. Joe remote pairs full time for Pivotal and blogs at http://remotepairprogramming.com. His Ward Number is 1.
Debugger Driven Development with Pry
When our tests fail all we get is output in a terminal. Testing is core to the culture of Ruby, and the tools are sophisticated, but something big is missing from the workflow. Namely, a powerful debugger.
Integrating Pry creates an interactive, enjoyable TDD workflow. In this talk, I'll recount the somewhat unique development experience that made me a believer. I'll demonstrate with Pry a responsive and immersive TDD cycle, taking a test to green before it exits its first run.
Joel Turnbull is a Code Designer at Gaslight. He's been a staple in the Cincinnati development community for over 10 years. This is his first presentation at a Rails Conf.
How They Work Better Together: Lean UX, Agile Development and User-Centered Design
Design has often been cut off from the development side of the house, creating static images that are then handed off to developers to build. Invariably, this waterfall approach leads to unhappy designers and frustrated programmers, and often a product that misses the mark. We’ll study successes and failures from both consultancies (InfoEther, Hyphenated People, Meticulous) and product companies both large and small (LivingSocial, CargoSense).
John Athayde is a designer and developer who spends a lot of time fighting bad coding practices in the Rails view layer. He is currently the VP of Design for CargoSense, a logistics product company. Prior to this he was the Lead for UI/UX and Front-end Development–Internal Apps at LivingSocial.
Double Software Development Productivity
How quickly could you build if the contributors of Rails, Ember, Android & AWS were on your team?
Rack-AMQP: Ditch HTTP inside SOA!
We’re comfortable with HTTP, but using it for communication in your SOA isn’t simple. You need load balancers, URL discovery, SSL, and there’s a cost to set up and tear down that HTTP window.
Rack-AMQP lets you serve your rack (and rails) apps over AMQP, a robust, open protocol for messaging. You get simple queues, load balancing, security, and persistent connections for free (plus pub-sub!)—without changing your app.
Learn the pitfalls of HTTP and why you should use AMQP in your SOA!
Josh is the host of the Ruby Hangout, an online Ruby meetup. Josh also coorganizes DCRUG and is the CTO at Optoro, a Washington, DC startup in the reverse logistics industry. Josh has been developing web applications with HTTP for 16 years and thinks that SOAs should think differently.
Software Development Lessons from the Apollo Program
In 1961, MIT was awarded the contract for a guidance system to fly to the moon, the first for the entire Apollo Program. Software was not mentioned. Six years later, the project had 400 engineers writing code.
The Apollo Guidance Computer flew men to the moon before UNIX or C were created, and is to this day a marvel of engineering.
NASA and MIT records of its creation allow us to look back on some pioneers of our industry, relive their experiences, and maybe learn a few things ourselves.
Julian Simioni is a software developer at 42floors in San Francisco, CA. When not working tirelessly to bring technology to the world of commercial real estate, he can be found riding his bicycle, flying planes, and eating spaghetti.
Concerns, Decorators, Presenters, Service Objects, Helpers, Help Me Decide!
Let's take some tangled code and untangle it together! We'll improve some model, controller and view code by applying view concerns, helpers, Draper decorators, presenters, and service objects. In doing so, you'll better understand where and when to use these techniques to make your code DRY'er, simpler, and easier to test. As a bonus, you'll also see how RubyMine with VIM bindings boosts refactoring productivity.
Justin, aka @railsonmaui, is freelance Rails programmer and the technical
evangelist for RubyMine. Passionately writing software since 1985, and focusing
on Rails since 2011, he has a popular technical blog at
http://www.railsonmaui.com. Degrees include a BA, Harvard and a MBA, UC Berkeley.
Justin Searls has two professional passions: writing great software and sharing what he’s learned in order to help others write even greater software. He and his team at Test Double have the pleasure of living out both passions every day, working closely with clients to find simple solutions to complex problems.
Technical Onboarding, Training, and Mentoring
With the increase of code academies training new engineers there is an increase in junior engineers on the market. A lot of companies are hesitant to hire too many young engineers because they lack sufficient resources to train them. This is a talk about how to make junior engineers into independent and productive members of your engineering team faster and cheaper by outlining a plan for how to onboard engineers effectively based on data and anecdotes gathered from companies in San Francisco.
I am a web applications developer from the bay area who builds full-stack web applications. I got my MSCS at Stanford but did my undergrad degree in Communication. I am active in the community with organizations like Hackbright Academy, PyLadies, and Girl Geek Dinners.
How to be a Better Junior Developer
Are you from a non-C.S. background? What about someone you mentor? Many junior devs’ top focus is building technical knowledge. However, they already have other skills that can help them in their roles immediately! Some of these include helping their team focus on the right tasks and working well with stakeholders like PM and support. This talk will discuss the non-technical contributions junior devs can make now and how their senior dev mentors can help them ramp up more quickly as a result.
I studied Biology in college and was all set to attend medical school and fulfill my mother’s dream of my becoming a doctor. Instead, I got a job at Google in tech support. After five years at Google, I took a sabbatical to attend Hackbright Academy. Now I’m a junior developer at New Relic.
Keith and Mario's Guide to Continuous Deployment with Rails
Keith Pitt, Mario Visic
Recently it has become common practise for development teams to deploy their code several times a day, as well as encouraging new developers to deploy on their first day at work.
In our talk Mario and I will discuss how we use continous deployment to push these practises to the extreme. Automatically deploying the master branch on new changes is an awesome way to improve your development process.
Automatically deploying master will fundamentally change how you work.
Keith is a Ruby Developer from Adelaide living in Melbourne. By day he works at Pin Payments and by night he works on Buildbox.
In Keith's spare time, he watches many scary movies, and wins Magic Competitons.
Mario is a Ruby on Rails developer from Perth Australia, he currently works on the Microlancer team at Envato in Melbourne. As well as being a Co-Founder of Desktoppr he has also worked on some cool projects such as iMeducate and Airtasker
In his spare time he enjoys eating different types of cheeses.
Distributed Request Tracing
Twilio's distributed architecture makes manually tracking down a communication bottleneck or failure almost impossible. By utilizing a distributed tracing system, Twilio can follow any request through each service layer and each host. In this talk, we will demonstrate how a Rails application can gain the same insights by instrumenting a multi-tier application and investigate tracing integration into a larger distributed ecosystem.
Kenny Hoxworth is a software engineer at Twilio dedicated to the reliable delivery of messaging communication. He previously co-founded a cyber-security company in Baltimore, Maryland, where he helped design and build the company's Rails flagship application and backend technology stack.
Building an OSS-Centric Company (and Why You Want To)
Open source is the bread and butter of the community; it also makes us happy, but can it sustain a company? Execu-types will happily leech off OSS without contributing back, but there’s a better way! In this talk I’ll walk through how you can build an OSS-centric company. How to fund it, run it, and use it to build your project and community. Whether you’re looking to build a new company around open source, or simply integrate more OSS-love into your existing business, this talk is for you.
Leah is an all-around OSS advocate, & Co-founder of Tilde, a successful OSS-centric business. She’s a member of the Ember Core Team, and works on annual events like GoGaRuCo, EmberConf and RailsConf. She’s spent years supporting OSS projects however she could, all while maintaining real paying jobs.
Culture of Continuous Delivery
Leena S N, Vaidy Bala
The first principle written in the Agile Manifesto reads: "Our highest priority is to satisfy the customer through early and continuous delivery of valuable software". But how do we do that? This talk focuses on a key part of Continuous Delivery [CD] i.e. "culture of collaboration", and tips and tricks for building the same. We'll also touch upon important CD practices such as Feature Toggles, Automated tests and Automated build & deployment scripts.
Leena is the Head of Engineering @ Multunus Software, Bangalore. She is a Pragmatic & Passionate Programmer, Lean Thinker and XP Evangelist who's now hooked onto Continuous Delivery. She's also a mother of 2 lovely angels.
Vaidy is the founder and CEO @Multunus, Bangalore. His interests include lean startups, continuous delivery, great workplaces and entrepreneurship. He's also a geek, dad & husband.
You'll Never Believe Which Web Framework Powers Upworthy
Luigi Montanez, Ryan Resella
Launched just two years ago, Upworthy has quickly become one of the most popular sites on the Web. According to Quantcast, it's a Top 40 site in the U.S. and is the most visited site hosted on Heroku. And yes, it's powered by Ruby on Rails! Hear the story of how Upworthy started out as a modest Sinatra app, then moved to a monolithic Rails app, and has now been broken up into a set of services powered by Rails. Technical decision-making in the midst of massive growth will be described in detail.
Luigi is the founding engineer at Upworthy, a viral media site that aims to drive massive amounts of attention to the topics that matter most. Before Upworthy, Luigi was a software developer at the Sunlight Foundation. He also co-organizes Code for Atlanta.
Ryan is a Senior Engineer at Upworthy. In 2012 Ryan was an Engineer on the Technology Team at Obama For America that helped re-elect the President of the United States. Prior to OFA, Ryan was a 2011 Inaugural Code for America Fellow and then went on to become Technical Lead at Code for America.
Looking Backward: Ten Years on Rails
In Edward Bellamy's utopian novel "Looking Backward", a man from the 1890s awakens after 100 years and sees the wonders of the new age. What would a programmer from 2004 think if they woke up in 2014's web development utopia?
When you work with Rails every day, it's easy to forget how much it changed web development. But the influence of Rails is still being felt today in the Ruby world and beyond. Let's rediscover the Rails revolution by looking backward at its impact on how we work now.
Luke Francl is a developer at Swiftype, which provides search engines as a service. His career has focused on web application development using a variety of technologies, including Tcl (seriously). He has been working with Ruby on Rails professionally since 2006.
Luke Melia is Co-founder & CTO of Yapp & Yapp Labs. Luke discovered Ruby in 2005, is an active member of NYC.rb, co-organized the first GoRuCo, and was a co-author of Manning's "Ruby in Practice". He contributes regularly to Ember.js and organizes the Ember.js NYC Meetup .
Get More Hands on your keyboard
VinSol has been developing on Ruby on Rails since November 2005. Over the years we have created hundreds of great products for the world's best known brands and most innovative start-ups. Whether you are a Solo Developer, a Development Shop, an Agency or a Company of any size - VinSol has something to offer for everyone - Augment your team, Incubate your team or get your product developed by us. Manik will be talking about all our offerings, including our super successful Partnership Program for the Busy Developer.
Writing Small Code
Writing small classes is hard. You know you should, but how? It's so much easier to write a large class. In this talk we'll build up a set of small classes starting from nothing using a set of directed refactorings applied as we build, all while keeping our tests green. We'll identify abstractions yearning to be free of their big class cages. In the process we'll also see how basic patterns such as composition, delegation and dependency inversion emerge from using small objects.
Mark Menard is president of Enable Labs, a consulting firm, in Troy, NY specializing in large scale web and mobile app dev. Mark talks about Ruby and coding at conferences and user groups. Mark also gets his hands dirty doing construction work from time-to-time, and is a happy husband and father.
Real-time Rails with Sync
Mike Moore believes software is written for humans first and computers second. He is a living breathing person with many quirks and interests.
Effectively Testing Services
Our Ruby world is becoming increasingly service oriented. Even in trivial applications, we often glue on multiple services ranging from Twitter to AWS. Services can, however, be confusing to test.
Many questions arise such as: How thoroughly should I test a service? Should I stub out responses or consume an API in test mode? How do I know a service is returning what I believe it returns?
In this talk, I answer these questions and more so that you may test services more effectively.
I am an independent consultant who slings Ruby code for a variety of clients. In the past, I have worked as a developer at thoughtbot and ZURB. I was developing on the web back when marquees were cool.
Modeling on the Right Side of the Brain
Since your first web application, you have struggled with identifying domain objects. Assigning business rules and services appears to be a talent that only other developers are born with. Fear not! Object Modeling is a learnable, teachable skill. This talk demonstrates the five essential skills you need for modeling objects and their responsibilities. Think beyond ActiveRecord and your database, and learn how color and patterns will help you explain, maintain and extend your application.
Nicholas Henry is an independent Rails developer and object modeling enthusiast. Passionate about developer education, he is an active teacher at Rails Bridge workshops in his home town. Originally from New Zealand, he is now living and coding in Montreal, Canada.
You Are Not An Impostor
Despite the attention that impostor syndrome has gotten in the Ruby community recently, so many amazing developers still hide in fear of being discovered as frauds. These developers chalk their achievements up to everything except their own talent and don't believe they deserve their success. I know, because I've struggled with impostor syndrome my whole career. In this talk, I'll show you what makes impostor syndrome so powerful and how you can break free from the grip it has on your life.
Nickolas Means is a software engineer at WellMatch Health and spends his days remote pairing from Austin, TX. He's an advocate for all things pairing, and thinks vulnerability and egolessness are the two most important virtues in software development.
Empowering Rich Internet Applications (RIAs) with Accessibility
Nitin Dhaware, Dnyaneshwar Nerkar (Gyani)
Did you know that there are many web users all over the universe with different impairments and they could not use the web apps we develop just because they are not accessible? Being blind, Nitin and his colleagues have experienced this and hence in this talk, they underline the importance of Web Accessibility by discussing aspects of WAI-ARIA guidelines, along with the practical demonstrations of accessible forms, tab panels, grids etc., while developing RIAs in Rails.
Nitin is a Rails programmer working at Techvision - a team of MAD (Motivated and Dedicated) people and a company run by him and his visually challenged mates. They are based in India and love programming. Web accessibility is their expertise and passion. Do visit their website (http://techvision.net.in).
Gyani is a Java/J2EE professional and Ruby/Rails newbie. Having worked as a Technical Specialist in IT industry for more than 9 years, 9 months back he decided to join Techvision – a small start-up run by visually challenged Rubyists. Currently he is playing the role of Technical Mentor cum facilitator for the Techvision team and helping Techvision grow in all the domains, one among them is Accessibility which is their niche.
Panel: Teaching the Next Great Developers
This is a panel discussion featuring Dave Hoover, co-founder of DevBootcamp Chicago, Jeff Casimir of Jumpstart Labs, and Ben Orenstein of Thoughtbot about how best to bring new developers into the field, and what kind of knowledge they will need to be successful. What can we, as a community, do to improve our management of new developers? What can new developers do to give themselves the best chance of success?
Panel Discussion: The Future of Rails Jobs
Obie Fernandez & Panel
Join Obie and special guests Chad Pytel, Corey Haines, Allan Grant and others (TBA) to discuss how the mainstreaming of Ruby on Rails in our post-modern programming society will impact job prospects for developers in the future.
Rails as an SOA client
Our monolithic apps are evolving into ecosystems of connected services. It's becoming quite common for Rails apps to be working mainly as clients to other services. In this talk we'll cover tools and techniques for a happy and productive existence when your Rails app is acting as a front end to other services.
Pete Hodgson is a lead consultant with ThoughtWorks. He helps teams get more awesome by delivering quality maintainable software at a sustainable pace, using agile practices like test-driven design, pairing and continuous delivery.
Build the API First
Rosie Hoyem, Sonja Hall
The next five years of web development are all about data applications and APIs. Learn how to leverage Rails-API to build them. This modular subset of a normal Rails application streamlines the process of building a standardized API that can easily be consumed by a wide-array of applications. We’ll explore example applications using Rails API, demonstrating the expanding utility of this framework as user interfaces extend beyond HTML into native applications and APIs.
Rosie writes code in Minneapolis at the Minnesota Population Center, a leading developer and disseminator of demographic data. She's a designer turned city planner turned energy policy nerd turned web developer and proud 2013 graduate of the Flatiron School in NYC.
Sonja is a U.S. Fulbright Scholar and recent graduate of the Flatiron School in NYC who is a developer at Venga in Washington, D.C. Inspired by design and the great outdoors, you can find her commuting on her road bike or hanging out with dogs when not mastering the art of Rails.
Front-End: Fun, Not Frustration
Writing front-end code can be frustrating. That sidebar won't stay on the left, no matter how much CSS you throw at it. The logo looks ugly on your smartphone, but after fixing it, it's broken in browser X. And why encode video in four different formats for that HTML5 player (Flash was so much easier)?!
It's time to fix the most common issues back-end developers have. Front-end coding should be fun!
Roy Tomeij (@roy) is co-founder of AppSignal in Amsterdam. He has been writing front-end code for Rails since early 2005. He previously co-founded 80beans, one of the earliest and well known Ruby consultancies in Europe. Critically acclaimed banjo player.
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies
Experienced developers tend to build up a library of creative problem-solving tools: rubber ducks, code smells, anthropomorphizing code, &c.
These tools map abstract problems into forms our brains are good at solving. But our brains are also good at lying to us.
We'll talk about some of these tools, when to use them (or not), and how their biases can lead us astray.
“A change in perspective is worth 80 IQ points.” -Alan Kay
New developers very welcome: we don't teach this in school!
A developer from sunny* Portland, Oregon, Sam's been working in code since 1998, in Ruby since 2006, and at LivingSocial since 2012. He likes TDD/BDD/TATFT, pair programming, and refactoring—but finds that long walks on the beach tend to result in sandy keyboards.
All the Little Things
Theory tells us to build applications out of small, interchangeable objects but reality often supplies the exact opposite. Many apps contain huge classes of long methods and hair-raising conditionals; they're hard to understand, difficult to reuse and costly to change.
This talk takes an ugly section of conditional code and converts it into a few simple objects. It bridges the gap between OO theory and practice and teaches straightforward strategies that all can use to improve their code.
Sandi Metz, author of "Practical Object-Oriented Design in Ruby", 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.
Reading Code Good
As a new programmer, everyone tells you to build. But just as important is reading. Reading code is a powerful exercise - dissecting the source code of gems and libraries used in Rails offers the opportunity to examine patterns and design choices, while building confidence in new developers. But good code reading isn’t as simple as scanning the source. The concrete guidelines outlined in this talk can maximize the benefits of your future code reading sessions and help you grow as a developer.
Hacker-in-Residence at the New York Tech Meetup. Graduate of the Flatiron School.
Saving the World (literally) with Ruby on Rails
Two thirds of honeybee hives have died out in Virginia. Is it possible for us to devise a way of monitoring beehives in remote locations to find the cause? Enter a raspberry pi + rails. Using a combination of this robust hardware and software solution, we were able to successfully track, monitor and provide real time reporting on the well-being of hives from across the county. Find out how we used ruby, rails, solar panels and other libraries to provide insight into this problem.
Sean is rubyist who works at George Mason University and he has the extreme pleasure of being one of the founders/organizers of the best meetup group out there, Arlington Ruby.
What the cache?!
".. and then cache the hell out of it!" This is usually how the talk ends when it comes to rails performance tips, but in reality it is where the fun starts. This talk goes way beyond Rails.cache, it explores layered caches, discusses the CPU cost of marshaling, the latency even Memcache adds and how to dodge the unavoidable stampedes that invalidating your caches will cause. This is the tale of how to survive half a billion requests per day with Rails and MySQL (hint: don't query it).
Simon took his experience from 12 years of freelancing for various companies around the globe and working with a very diverse set of technologies to build his dream team at SponsorPay and work with the language he loves - Ruby.
Using Software Analytics to Help Make Better Business Decisions
Shiv Kumar, Vince Foley
Join New Relic and learn how to make sense of the millions of metrics your software generates. Take a tour of New Relic’s extensive product suite and learn how to monitor your software from the frontend to the back. Come see how we collect and analyze business metrics in seconds so you can make better data-driven decisions.
Biggish Data With Rails and Postgresql
Once your database hits a few hundred million rows normal ActiveRecord conventions don't work so well.
...you find yourself in a new world. One where calling count() can bring your app to its knees. One where migrations can take all day.
This talk will show you how to work with big datasets in Rails and Postgresql. We'll show how normal conventions break down, and offer practical real-world advice on maintaining performance, doing maintenance, and tuning rails for optimal DB performance.
Refactoring towards Component-based Rails architectures
You have a big Rails app and are feeling the pains? Stories are hard to deliver, code is hard to refactor, and your tests take a looong time? Getting you and your codebase out of this situation requires you to stop developing a "Rails application” and start refactoring towards your domain. I will discuss how and where you refactor towards a more structured and manageable application, a component-based Rails architecture.
For his day job Stephan is a Pivot - developing software at Pivotal Labs. With every project he especially enjoys the continuous search for doing the right thing, and doing that right. Outside of that he enjoys more work: on his old house or his rock climbing skills.
Heroku 2014: A Year in Review
Terence Lee, Richard Schneeman
It’s been an exciting year for running Ruby on Heroku. Rails 4, Ruby 2.1.1, and a slew of new platform features were released. In this session, we’ll be looking back at developments on the Heroku platform and the Ruby community. We'll cover the features that have made running your apps easier and faster. We’ll dig into Matz’s Ruby team's progress. If you don't want to miss out on any of last year's news, be sure to not miss this session.
Terence leads Heroku's Ruby Task Force curating the Ruby experience on the platform. He also works some OSS projects such as Ruby (the language), Bundler, as well as helping with the Rails Girls movement. When he's not going to an awesome Heroku or Ruby event, he lives in Austin, TX, the taco capital of America. (Terence loves Friday hugs, EVERY DAY OF THE WEEK! Give him a big one when you see him!)
Richard writes Ruby at Heroku and maintains codetriage.com. 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, a proud graduate of Space Camp and is married to Ruby, literally.
An Ode to 17 Databases in 33 minutes
A detailed, deep-diving, in-the-deep-end and occasionally humorous whirlwind introduction and analysis of a suite of modern (and sometimes delightfully archaic) database technologies. How they work, why they work, and when you might want them to work in your Rails application.
Including but not limited to:
- PostgreSQL (now with JSON!)
- Animated Gifs
Toby is a mild-mannered Rails Developer & occasionally Polyglot Programmer, based in Sydney, Australia.
He really likes databases.
Toby's hobbies include collecting programming languages and databases, playing the drums, cutting code and pondering the nature of existence.
Demystifying Data Science: A Live Tutorial
To get a grip on what "data science" really is, we'll work through a real text mining problem live on stage. Our mission? Trace the evolution of popular words and phrases in RailsConf talk abstracts over the years! We'll cover all aspects of the problem, from gathering and cleaning our data, to performing analysis and creating a compelling visualization of our results. People often overlook Ruby as a choice for scientific computing, but the Rails ecosystem is surprisingly suited to the problem.
Originally a “math guy”, Todd spent six years working for a hedge fund building models to value mortgage-backed securities before a fortuitous foray into web programming got him tangled up with Rap Genius. His recent Rails work includes Rap Stats, Wedding Crunchers, and Gambletron 2000.
Class Reloading in Ruby on Rails: The Whole Story
Ruby on Rails applications do not need to require the files that define their classes and modules. In development mode, code changes take effect without restarting the server. How's that possible? This talk explains how this works in depth.
You'll come out with a deep understanding of how constants work in Ruby, constant autoloading in Rails, how and why does it differ from Ruby's builtin algorithms, and how class reloading is implemented.
Xavier Noria is an everlasting student and father of the most wonderful girl. An independent Ruby on Rails consultant from Barcelona, Xavier is a member of the Ruby on Rails core team, Ruby Hero 2010, and proud author of Rails Contributors.
Return to the top
How to Build a Smart Profiler for Rails
Yehuda Katz and Tom Dale
Customers love fast apps. We've got tools to help us figure out how our Rails apps are performing on our development machines, but that's not what matters. It's critical that we also be able to measure how our apps are actually performing in the production environment.
That's the reason we built Skylight, and in this talk, we'll show you how we did it. We'll discuss the underlying principles Skylight uses to profile your apps across multiple production servers, and take a look at our tech stack, including Storm, Kafka, Cassandra, Rails, and Ember.js.