In this workshop we'll learn how to transform complex, highly coupled code into a simpler, more readable and maintainable shape. We'll target known software anomalies with Refactoring Patterns, following steps with a confined scope, assuring that we stay distant from "changed everything" commits while achieving quick design improvements.
We'll talk different solutions for Fat Models, God Objects, long method chains, NoMethodError on nils, long methods, bad naming and cold coffee.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 .
The ultimate goal of the Coding Dojo is to share knowledge and improve the technical and social skills required in software development. This is a hands on Coding Dojo using Ruby as the language of choice. Participants will pair program with each other trying to solve a simple problem.
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.
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.
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.
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.
Mike Moore believes software is written for humans first and computers second. He is a living breathing person with many quirks and interests.
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.
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.
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.
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.
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".
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.
Teamwork ain’t always easy. From meetings where everybody has something to say but nothing gets done to poor decisions being made because the most senior or most forceful team member won the argument; sometimes you long for the days of high-walled cubicles and lone ranger coding. Long no more.
In this workshop, you will learn a few simple techniques that drastically improve a team’s ability to work together toward common goals with less conflict and more genuine collaboration.
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.
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.
".. 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.
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.
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.
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.
Elixir provides the joy and productivity of Ruby with the concurrency and fault-tolerance of Erlang. Together, we'll take a guided tour through the language, going from the very basics to macros and distributed programming. Along the way, we'll see how Elixir embraces concurrency and how we can construct self-healing programs that restart automatically on failure. Attendees should leave with a great head-start into Elixir, some minor language envy, and a strong desire to continue exploration.
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.
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.
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.
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.
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.
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?
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.
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.
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.
This is a panel discussion featuring Jeff Casimir of Jumpstart Labs, Bree Thomas of iTriage, Jen Meyers of devbootcamp, Liz Abenante of Instructure and co-leader of Girl Develop It in Chicago, Kathryn Exline of Fooda and leader of Girl Develop It in Chicago, 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?
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.
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.
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.
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.
Your Rails app is full of data that can (and should!) be turned into useful information with some simple machine learning technqiues. We'll look at basic techniques that are both immediately applicable and the foundation for more advanced analysis -- starting with your Users table.
We will cover the basics of assigning users to categories, segmenting users by behavior, and simple recommendation algorithms. Come as a Rails dev, leave a data scientist.
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.
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.
“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.
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 front end to the back. Come see how we collect and analyze business metrics in seconds so you can make better data-driven decisions.
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.
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.
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.
Rails applications come together quickly in the beginning. Drop all these gems in and voila! Overtime test slow down and the productivity is gone. Have you ever questioned why? The framework was used incorrectly. Rails is not your application. It's a delivery mechanism. This talk is about leveraging different design patterns, roles, and boundaries to implement the business logic before even thinking about rails new.
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 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.
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.
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.
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.
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.
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.
00:01:24 - Josh
00:05:00 - Sachin Shintre
00:08:52 - Gyani & Siddant
00:12:00 - Andrew Nordman
00:17:26 - Justin Love
00:21:47 - Matthew Nielsen
00:25:58 - Andrew Cantino
00:29:34 - Yehuda Katz
00:34:18 - Ryan Alyea
00:37:29 - Adam Cuppy
00:40:32 - Mark Lorenz & Mike Gee
00:44:28 - Trever yarrish
00:49:34 - Mike Bourgeous
00:54:15 - Gostavo Robles
00:57:16 - Hector Bustillos
01:02:00 - Victor Velasquez
01:06:03 - Kay Rhodes
01:10:31 - Kevin Fallon
01:15:50 - Andrew Vit
01:20:53 - Brian Garside
01:25:37 - Mike Virata-Stone
01:30:36 - Kiyoto Tamura
01:35:41 - David Padilla
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!)
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.
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.
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.
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.
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
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.
Don’t you hate when testing takes 3x as long because your specs are hard to understand? Or when testing conditional permutation leads to a ton of duplication? Following a few simple patterns, you can easily take a bloated spec and make it readable, DRY and simple to extend. This workshop is a refactor kata. We will take a bloated sample spec and refactor it to something manageable, readable and concise.
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.
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.
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.
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.
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.
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 Principal Consultant at Cigital where he helps drive better secure programming practices. 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.
Technologies used will include Jasmine, Lineman, Rails, and Angular; but they do not define the workshop. Skills earned here are applicable to any Web project.
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.
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.
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/.
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.
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.
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.