The idea that confidence is solely the result of positive self-talk is circular: If I believed in my ability to talk myself up, I would. But if I did, I wouldn't need to talk myself up. It's not as simple as having faith.
There's a thread amongst all peak performers and skilled practitioners: specific habits, routines, and processes that wrap uncertainty and create confidence. Oscar-winning actors rehearse, pro-drivers do laps, chefs prep.
This talk will help you recognize and design habits, routines, and practices that embed confidence into the body.
Chief Operating Officer @CodingZeal and speaker of all things related to people.
Test All the F***ing Time is one of the values of the Ruby community. But how many of us test in production in addition to running our test suites as part of CI? This talk will discuss a variety of approaches to testing in prod including canaries, blue-green deployment, beta and A/B tests, and general functional tests. I'll share a few times these techniques have found bugs before our users did and how you can use them today with your Rails Application.
Aja lives in Seattle where she is a Developer Advocate at Google and a member of the Seattle Ruby Brigade. Her favorite languages are Ruby and Prolog. In the last three years she has become a developer happiness crusader. In her free time she enjoys skiing, cooking, knitting, and long coding sessions on the beach.
One day I joined a team maintaining a huge, legacy, and slow Rails app. We thought that we have to optimize the application throughput for the user happiness, and so we formed a task force that focuses on the performance.
Now, here's the record of the team's battle, including how we inspected and measured the app, how we found the bottlenecks, and how we tackled each real problem, about the following topics:
- Tuning Ruby processes
- Finding slow parts inside Rails, and significantly improving them
- Fixing existing slow libraries, or crafting ultimately performant alternatives
A Ruby committer, a Rails committer, the creator of so many gems, to name some, kaminari, active_decorator, action_args, stateful_enum, jb, database_rewinder, gem-src... The maintainer of Haml and some other gems.
For many of us, APIs and their client libraries are the face of our applications to the world. We need to innovate with new features, but breaking changes are toxic to customer trust.
In this session you will pick-up concrete design patterns that you can use and anti-patterns that you can recognize so that your service API or library can continue to grow without breaking the world. Using real APIs and open source libraries as a case study, we’ll look at actual examples of specific strategies that you can employ to keep your API backwards compatible without painting yourself into a corner.
Alex works for Amazon Web Services, is the lead maintainer of the AWS SDK for Ruby, and author of the aws-sdk-rails and aws-record gems.
Have you ever been frustrated with code that is sprinkled with poorly named classes, methods, and variables?
One of the most valuable things you can do as a developer is to choose good names and to sensitize your teammates to the benefits of improving names.
It turns out that improving names is deeply connected to improving design. And vice-versa. You will see and experience this deep connection as we explore a real world example.
By the end of this talk, you will have learned a process to get you started with improving names and improving design—a process simple enough for you to teach others.
Alistair McKinnell has been writing software since the days of punch cards. After reading Kent Beck’s Extreme Programming Explained in 1999 he realized he had found his people. These days Alistair works as an Full-Stack Rails developer and Agile Coach at Nulogy. Alistair thinks of himself as a gardener: growing software, growing teams, and growing organizations.
Your application is a dragon and here’s how we’re going to form a successful raiding party to come out victorious (with minimal casualties!). When entering the field of web development, I discovered that the parallels of building a strong multiplayer gaming community and optimizing companies for success were undeniable. Your quest, should you choose to accept it, is to listen to these parallels and use the lessons to strengthen your biggest asset-–your team–-to build a better company and a better web.
Gaming community leader, developer convert, and toddler chaser.
Pilots have the flight deck, Captain Kirk had his bridge, but what do you have for managing failure in your application?
Every app comes under stress, whether it's from downstream failures to unmaintainable high load to a spike in intensive requests. We'll cover code patterns you can use to change the behavior of your application on the fly to gracefully fail.
You’ll walk away from this talk with tools you can have on hand to ensure you remain in control even when your application is under stress.
The granddaughter of a former MIT computer (yup, that was a job title), Amy was clearly supposed to be a programmer, but just did not get the message. Her wanderings have taken her through the land of libraries and archives and into software consulting. Now a software engineer at Heroku, she is deeply grateful for every scarce day she does not use vim commands in Google Docs.
Despite general consensus that pairing is good, the desire to pair doesn’t come with instructions. Come to this talk to learn how to pair with someone more experienced, how (and why) to pair with your peers, and how to pair productively with someone less experienced. (Hint: productivity isn’t about the speed of new features.) Pairing is a fantastic tool for your professional toolbox: let’s design, refine, and refactor, together.
André Arko is the lead developer of Bundler and RubyGems, works at Cloud City as a software development consultant, and is the founder of Ruby Together, a non-profit trade association that funds work on Ruby open source software.
Machine learning and AI are all the rage, but there’s often no replacement for real human input. This talk will explore how to automate the integration of human-work directly into a RoR app, by enabling background workers to request and retrieve data from actual human workers. The secret is Amazon Mechanical Turk, a crowdsourcing marketplace connecting ‘requesters’ who post tasks with ‘workers’ who complete them. Attendees will learn how to automate the completion of human tasks (e.g. price research, image tagging, sentiment analysis, etc) with impressive speed, accuracy and scalability.
Andy is a Brooklyn-based Rubyist, entrepreneur, nomad, maker, U.S. Open Ballperson and Guinness World Records Adjudicator. He has a passion for building products to improve his native New York: a park-finding mobile app, a tool for New Yorkers with disabilities to better utilize the Subway system, and an app that empowers immigrant New Yorkers to exercise their rights. You can find him working in cafes, bicycling, exploring new neighborhoods and cataloging their ethnic food.
It's the afterthought of every system, scrambled together in the final days before launch, updated sparingly, generally out of date.
What if we could programmatically verify that our API documentation was accurate? What if this helped us build more intuitive APIs by putting our users first? What if documentation came first, and helped us write our code?
With Swagger and Apivore as our weapons of choice, we'll write documentation that will make your APIs better, your clients more satisfied, and you happier.
Ariel Caplan is a prolific author (of tweets), editor (of pull requests), and journalist (reporting on what he ate for dinner). Despite the clear love of language, it wasn't until 2 years ago that he really began to appreciate documentation.
Ariel works at Vitals, where he evangelizes a docs-first approach to software development.
We put a lot of effort into web speed for our website dev.to. One day in November we woke to our greatest traffic day ever, and the source was Japanese Dev-Twitter catching wind of just how fast a site could be. American websites don't typically give so much care to global performance, but it pays off if you do. In this talk I will describe how we think about performance.
Founder of dev.to (@ThePracticalDev)
Creator of those parody O'Reilly book covers you might have seen around. 😄
Rails is a great framework to empower people to work smarter, not harder. I'll be sharing the evolution of technology in a Pittsburgh brewery, from a simple MVP to a production application. This talk will explore how Ruby and Rails was leveraged to help manage brewery data, control aspects of the taproom environment, and automate the tedious parts of the job to a few clicks.
Contextual Camouflage is an open-source gallery art installation built in RoR that guides visitors to anonymously report mental health disorders that affect themselves or their relationships. After users submit a disorder, they have the option to include anecdotes and demographic data for intervention researchers. The data is molded into an interactive real-time display using ActionCable. Come see how code can double as art and an educational tool.
Brittany Martin works for the Pittsburgh Cultural Trust as the nonprofit’s Lead Web Developer, where she is part of the team that develops, supports and maintains the Trust’s ticketing and festival web applications. Under her alter-ego, Norma Skates, Brittany plays and referees roller derby for the Pittsburgh East Roller Villains. She tweets at @brittjmartin.
Which outputs demonstrate the overall effectiveness of an engineering team, and what differentiates high performing teams from their peers? As engineers, our work may feel difficult or impossible to measure. This leaves us at a disadvantage, as without systems of measurement, we're left with gut feel to test and assess processes improvements. This talk attempts to break through the fog and take a first step in exploring how engineering organizations can level up their practices by applying behaviors that manifest in high performing teams.
This is a sponsored talk by Code Climate.
Bryan Helmkamp is the founder and CEO of Code Climate, where he helps software development teams improve code quality. Over the past six years, Code Climate has helped thousands of organizations improve their code review workflows and ship better code in less time. He has given talks on software engineering principles and practices around the world. Bryan co-authored the book “Service Oriented Design with Ruby” and also “The RSpec Book”.
Production support is not a priority. No one on the team wants to work on support cards. Being on-call is a pain. Does this ring a bell? We've all been there! There is a better way to handle Support Engineering for your product. A way that will level up your team, and create positive support experiences for your customers. Drawing on 3+ years of Support Engineering at two different companies, I will share successful Support patterns and tools you can start using today to improve your product support.
Software Engineer, ReturnPath. Chapter Leader, Girl Develop It Austin. Organizer, Austin on Rails. Passionate about APIs and bringing underrepresented voices into tech.
A mixture of a talk on programming and a live classical music recital. Listen to a former-orchestral-clarinetist-turned-developer talk about parallelisms between music performance and programming - such as complexity, imposter syndrome, and true concentration - with live performances throughout!
Chris pairs cause with craft as a senior engineer at Software for Good, a development firm building web and mobile applications for organizations working toward positive environmental and social change. As an open source advocate he has contributed to various projects in the Ruby ecosystem. A native Minnesotan, Chris also enjoys hockey, backpacking, and making pointless connections to Minnesota in conversations.
So this one time we ran Rails services over AMQP (instead of HTTP). You may be thinking “Why? Was that their first mistake?” It was not. From handling shared models poorly to deploying & operating services with inadequate tooling, we've made...so many mistakes. I'm glad we did; they helped us grow. We have patterns & practices for everything we’ve seen so far, from API contracts to distributed consensus protocols. Over this talk’s 40 minutes, you'll learn things it took us 3 years to grasp. Whether you have a monolith or pine for when you did, you'll be more prepared and better armed than we were.
Chris Hoffman is a Senior Developer on the Developer Empowerment team at Optoro. He builds tools and systems that help engineers develop, test, package, and deliver code to production, then understand it once it's there.
“Everything looks like this, but we want it to look like that.” This is the story of how the team at Betterment replaced our front end code base to launch our new brand. Across all our apps. In secret. And make everything responsive. In 8 weeks.
Rails conventions come in handy when a wholesale UI transformation is called for. Learn how we launched a design system, dark deployed an all-new view layer, and unveiled our new brand identity right on schedule.
We shipped a lot of code extremely quickly yet managed to elevate code quality and capabilities in the process.
Constraint breeds creativity.
Chris is a software engineer and musician who grew up as an oldest child in Delaware, the oldest state. He leads front end architecture as a Staff Engineer at Betterment, before which his career dealt in startups, Patriot missiles, and e-readers. More miscellaneously, he is an Eagle Scout who has visited 46 of the 50 states, performed on Late Night with David Letterman, ridden a private elevator with a pope, and swum a mile in Beijing. Chris is always game to debate which is better, cake or pie.
Secrets are out. Credentials are in. This new Rails 5.2 feature offers a number of advantages over the old way of managing secrets. You get atomic deploys, you avoid putting sensitive data on environment variables, and your data is always encrypted.
This talk will reveal the secrets to success in using Credentials and EncryptedConfiguration, the API it uses internally.
This is a sponsored talk by Engine Yard.
Christopher Rigor is a Technical Evangelist at Engine Yard. He writes about Ruby on Rails, system administration, and security. Christopher lives in Manila and organizes RubyConf Philippines. He enjoys swimming and scuba diving when he's bored on dry land.
Rails 5.2 ships with a new library to support file uploads: Active Storage.
In this talk, we will analyze its internal code, learning how it integrates with Active Record and Action Pack to supply amazing features out of the box, from image previews to cloud storage.
We will review its class architecture and delve into the implementation of several Active Storage methods, such as
On the way, we will better understand some Ruby patterns frequently used within Rails: meta-programming, macros, auto-loading, initializers, class attributes.
Claudio is a member of the Rails Issues team, a frequent contributor to the Rails source code (over 200 commits), the organizer of the L.A. Ruby/Rails meetup and one of the authors of the weekly newsletter "This week in Rails".
In the late 1700s the discovery of the principle of interchangeable parts shifted the demand for the expertise of artisans from production to design and invention. This shift transformed Western civilization and opened the way for the industrial revolution. We face a similar opportunity now as one generation of software developers reaches its professional peak and a new wave of developers enter the field. This talk will trace the historical evolution of the artisan and explore how understanding this history can help us to maximize and multiply the impact of senior software developers.
Coraline Ada Ehmke is a an open source advocate and developer with over 20 years of experience. She was recognized for her work on diversity in open source with a Ruby Hero award in 2016. Coraline is the creator of the Contributor Covenant, the most popular open source code of conduct in the world with over 25,000 adoptions. She is a founding panelist on the Greater than Code podcast. In her free time Coraline pursues her interests in AI and writes and records music in her home studio.
Booleans are pretty simple — they're either true or false. But that doesn't mean that they're always easy to use, or that they're always the right choice when they appear to be the obvious choice.
We'll cover several anti-patterns in the use of booleans. We'll discuss why they're problematic, and explore some better alternatives.
Craig has been using Ruby and Rails since 2005. He enjoys coding, and Ruby increases that enjoyment. In addition to development work, he specializes in helping teams improve the way they work — through technical practices, processes, and automation.
If you want to make small talk, ask Craig about attending concerts, traveling, canoeing, or beekeeping.
Sharding is a heated topic and many who have tried it have come away with a bad taste in their mouth. But it's also well proven that sharding your database is the true way to scale the data layer. From Instagram to Google to Salesforce, with large-enough data and with sufficiently demanding performance requirements, you need to shard in order to scale out. Using the lens of the Postgres open source database, I'll walk you through things to keep in mind to be successful with sharding, and which data model is the right approach for you.
This is a sponsored talk by Citus Data.
Craig is the head of Citus Cloud, a fully-managed database as a service that scales out Postgres horizontally. At Citus he works a lot with developers of multi-tenant applications (as well as real-time analytics devs) who need to get their Postgres database to scale and perform. Also: He blogs a good bit about startups/tech at craigkerstiens.com, and he curates Postgres Weekly.
Ready to containerize your Rails application? Then this session is for you. We'll walk through the process of deploying a nontrivial Rails app to Kubernetes, focusing on effective container design. You'll learn techniques and best practices for constructing images and orchestrating your deployment, and you'll come away understanding how to optimize the performance, flexibility, and security of your containerized application.
This is a sponsored talk by Google Cloud Platform.
Daniel Azuma is the tech lead for Google Cloud Platform's Ruby language team, where he works on libraries, tools, and container-based runtimes for Ruby developers in the cloud. He has been a Rubyist for twelve years, and is also known as a pioneer in geospatial support for Ruby. He lives with his wife in the Seattle area, and loves playing the piano, skiing, and having deep conversations with cats.
Understanding indexes is key to demystifying database performance, and will have huge impact on one's ability to plan, contribute, and troubleshoot as one progresses in their career. Having said all that: many engineers still don’t really know what indexes ARE. Most simply know what indexes can DO. This presentation takes a look at the most commonly used index for any RDBMS: the B-tree. We will pull apart the data structure, discuss how it works, and briefly touch on some of the algorithms they use. With this baseline established, we will revisit a few common assumptions about indexes.
I spent my 20's pursuing photography in Paris. One day, a photographer that I was assisting turned to me and asked, "can you fix my website?" The second I touched code I was hooked for life. I am currently a Rails Engineer at WeedMaps and living in Los Angeles.
rake db:migrate and
rake db:schema:load regularly, but what do they actually do? How does
rake db:rollback automatically reverse migrations and why can't it reverse all of them? How can you teach these tasks new tricks to support additional database constructs?
We'll answer all of this and more as we explore the world of schema management in Rails. You will leave this talk with a deep understanding of how Rails manages schema, a better idea of its pitfalls, and ready to bend it to your will.
Derek's been writing software for the web for nearly 20 years and is the lead maintainer of Clearance, thoughtbot's authentication library. You can hear his thoughts on interesting technology problems, exciting new languages and libraries, and industry trends on The Bike Shed.
Do you keep telling yourself you want to get into open source? Have you been thinking about contributing to Rails? Don’t know where to get started? Right here! Come learn about how to find an interesting issue to work on, set up your dev environment, and ask for help when you get stuck. We’ll also talk about what happens after the first patch and where to go from there.
Dinah is wrapping up her engineering degree at the University of Waterloo. In 2017, she spent four months backpacking around Europe and China while looking for half-decent WIFI connections to power her open-source contributions. For the last few months, she has been building a public API to expose more preloading options in Ruby on Rails.
Upgrading Rails at Shopify has always been a tedious and slow process. One full upgrade cycle was taking as much time as it takes to release a new Rails version. Having a full time dedicated team working solely on upgrading our platform wasn’t the solution but instead a proper process and toolkit. In this talk I’d like to share the different techniques and strategies that allowed to perform our smoothest and fastest Rails upgrade ever.
Edouard Chin production engineer in the Rails team at Shopify. One of the many project the Rails team works on is keeping Shopify’s monolith up to date. Before joining the team, Edouard was working in the Payments team at Shopify where he was helping to define the future of payments on the web.
git log output resemble an archaeological site from 500BC? Ransacked by Persians with some Spartan conflict?
When we code and commit, our decisions, for better or worse, are preserved. As though in an archaeological record. Thanks to the archaeological record we can understand entire human cultures, but how much do we understand about the decisions developers are making today? Applying the same practices archaeologists utilise can help us understand the decisions developers are making in 2018.
Eleanor spent many years translating Ancient Greek texts and working with antiquities before she began tinkering with code — now she writes Ruby instead of reading Homer. When she's not digging into code at The Conversation in Melbourne, Australia, she's probably cooking, attending a yoga class, or patting other people's dogs at the park.
If you've ever had inconsistent data show up in your app even though you wrapped the relevant code in a transaction, you're not alone! Database isolation levels might be the solution...
This talk will discuss what database isolation levels are, how to set them in Rails applications, and Rails-specific situations where not choosing the right isolation level can lead to faulty behavior. We'll also talk about how testing code that sets isolation levels requires special care and what to expect to see when monitoring your apps.
Emil has worked with Rails for several years in a variety of contexts and always seems to find himself looking at interactions databases and application monitoring. He has worked at a number of startups in the San Francisco Bay Area, the experience of which has inspired a few meetup and conference talks and several blog posts. He is currently a software engineer at Binti.
Content warning: This talk includes brief stories about sexual assault and IEDs in Iraq.
Fear is not a gut feeling. Fear is your brain delivering critical information derived from countless cues that have added up to one conclusion. Stop. Get out. Run.
But sometimes fear isn’t life or death. Often, it’s code smell. It’s a bad feeling before a deploy. This talk will explore fear, instinct and denial. We’ll focus on our two brains — what Daniel Kahneman describes as System 1 and System 2. And we’ll look at how we can start to view “feelings” as pre-incident indicators.
After many years of ghostwriting, Emily Freeman made the bold (insane?!) choice to switch careers into software engineering. She now works as a developer advocate for Kickbox and lives in Denver, Colorado.
Throughout much of this conference you're going to hear people state obvious things. Sometimes, they'll even tell you that they think what they're saying is obvious. Why are they saying them at all, then?
It's obvious there must be more to the story, so let's examine what we mean by "obvious". You'll leave this talk encouraged and ready to apply what you've learned to better empathize with others. Through application, you'll see growth in both your professional and personal life.
Ernie's been programming since he was 6, and professionally for a couple of decades or so. He took the better part of 2017 off from conference speaking in order to reset, and figure out what he really wanted to share with you, if he could talk about only one thing. This talk is that one thing.
Writing a system alone is hard. Building many systems with many people is harder.
As our company has grown, we tried many approaches to user-friendly, shared development environments and learned what works and what doesn't. We incorporated what we learned into a tool called devly. Devly is used to develop products at Fastly that span many services written in different languages.
We learned that the design of our tools must be guided by how teams work and communicate. To respond to these needs, Devly allows self-service, control, and safety so that developers can focus on their work.
Ezekiel Templin has worked with people to build systems using networked computers for most of the last 20 years. He also works at Fastly building developer and deployment tools.
Eric Hodel is a ruby committer and maintainer of many gems. He works at Fastly building developer tools that allow his coworkers to work on distributed teams with minimum difficulty.
Postgres 10 is out this year, with a whole host of features you won't want to miss. Join the Heroku data team as we take a deep dive into parallel queries, native json indexes, and other performance packed features in PostgreSQL. Whether you've got no idea what Postgres version you're using or you had a bowl of devops for dinner, you won't want to miss this talk.
This a sponsored talk by Heroku.
Gabe has been with the Heroku Data team since late 2016 working on fleet orchestration and infrastructure optimization for Postgres. His prior endeavor as Full Stack engineer working on API Routing & Authorization focusing on DevOps and infrastructure design for the previous two years.
Rails is made possible by Ruby’s unique combination of deep dynamism and pragmatic elegance. In turn, Ruby inherited many of its core ideas from older languages including Lisp, Smalltalk, and Perl.
In this talk, we’ll take a tour of these languages and their myriad influences on Ruby, to better understand the foundations of our tools, improve our ability to use them to their full potential, and imagine how they might be further improved.
Geoffrey is a senior software engineer at Panorama Education, using Rails to build data analytics software for K-12 schools. He enjoys thinking about the past and future of programming languages and tools.
Graham Conzett is a developer from Columbus, OH with over ten years of experience primarily in the healthcare and general startup space. As a result, he is very interested in finding ways of helping developers move quickly while still being able to scale their company, teams, and products, safely. He currently works for Orange Barrel Media.
Last summer, two high school juniors with very little coding experience joined Vitals as software engineering interns. Over the course of six weeks, they attempted to level up their programming skills while also learning the Vitals domain. They struggled through obstacles and experienced thrilling code highs, and ultimately emerged as more confident developers.
Using their story as a guide, this talk will explore practical ways of structuring mentoring and onboarding processes. Whether your next hires are newbies or seasoned pros, you’ll walk away with strategies to help them code confidently.
Gretchen Ziegler works as a Rails developer at Vitals, and volunteers as a teacher for New York On Tech. Back in the day, she taught high school English and drama. She pretends to be offended by bad puns, but it's obvious she loves them.
Most Rails applications out there in the world deal with the manipulation and presentation of data. So the speed of our application is proportional to how fast we can work with data. Rails is good with presenting data. And our Database is the one who is good at processing data. But we sometimes make the mistake of just using the database as a file cabinet, and using ruby to process. The database is built for crunching data and returning to us the results that we need. This talk is about how to optimize your database so as to speed up your existing Rails application.
Harisankar P S has been building SaaS application and API's using Ruby and Rails for the past 5 years. He is also the founder of Red Panthers, a Ruby on Rails dev shop based out in Kochi, India. He is interested in open source and organizes Open Source Saturdays and Ruby Meetup in Kochi. He also contributes to open source as well.
As you’re building out your app, you know how important it is to have your database up at all times. You need your PostgreSQL database to be HA. Jake from Compose is going to show you how to migrate your data to a HA PG service in less than 20 minutes.
This is a sponsored talk by Compose, an IBM company
Jake is an App architect extraordinaire here at Compose. He works hard on the main Compose UI and makes things work on the Compose UI. When not working (and sometimes even while working) Jake is an amateur remixer and hacktivist who loves the Longhorns.
Have you ever had a crazy idea that you were quietly convinced was great, but that everyone else thought was dumb? Well guess what: the future of Rails is depending on you.
I’d like rewind time by more than ten years, to tell you about one particular crazy idea that almost everyone hated, until it quietly became one of the core architectural components of Rails.
At the same time, we’ll meet the crazy ones, the misfits, the rebels and the trouble makers that ended up shaping Rails as we know it… and maybe, just maybe, we will realise that we can be one of them too.
James has been working with Ruby since he fell in love with its quirky charm in 2002, and professionally with Rails since 2005. He's published numerous gems, of varying value and repute. He invented Rails Engines, which, at the time, was a lot like saying "I invented the piano key neck tie!", but eventually even DHH came around, so it's not all bad.
Star Wars fans may have been excited about 2016’s release of Rogue One because of the courageous new rebel characters it introduced, but it also provided a lot more insight into the Empire's Corp of Engineers and how they ended up building the Death Star. As developers, we have a responsibility to think about the ethical implications of our work and how it might be used. This session will discuss ways of deciding for yourself what kinds of projects you are or aren't comfortable working and tips for self-accountability in your career - through the lens of characters we know and love from Star Wars.
Jamey is a non-binary adventurer from Buffalo, NY who wishes they were immortal so they’d have time to visit every coffee shop in the world. Currently they’re working as a professional plant-liker (and software engineer) for Agrilyst, a data analysis platform for indoor agriculture. They’re also a permanent panelist on the podcast Greater Than Code! They spend most of their free time camping and thinking about Star Wars, often even at the same time.
Upgrading Rails can go from easy-to-hard quickly. If you've struggled to upgrade to a new version of Rails, you're not alone. And yet, with useful deprecation warnings and extensive beta periods, Rails has never made it easier to upgrade. So what makes it hard?
By looking at the past ten years of Rails upgrades at Clio (and other notable apps), let's see what we can learn. Gain insight into the tradeoffs between different timelines and approaches and learn practical ways to keep your app up-to-date.
I love to write code, play music, cycle, and play board games. I've been an avid Ruby fan ever since I picked up Peter Cooper's "Beginning Ruby" book on a plane ride (I couldn't put it down for the entire 8-hour flight).
Rails has a reputation for being secure by default, but how deserved is that reputation? Let's take a look back at some of the low points in Rails security history: from the first Rails CVE, to the controversial GitHub mass assignment, the 2013 Rails apocalypse, and more recent remote code execution issues. Then we'll cheer ourselves up with the many cool security features Rails has added over the years! We'll cover auto-escaping, strong parameters, default security headers, secret storage, and less well-known features like per-form CSRF tokens and upcoming Content Security Policy support.
Justin is the primary author of Brakeman, a static analysis security tool for Ruby on Rails, and has been doing application security for the last eight years.
Have you ever clicked "Save" on a document, and caused a coworker to lose hours of work? Or spent more time coordinating "Who has permission to edit" in Slack than you did actually writing the document?
Google-Docs-style collaboration used to be nice to have. Now, it's expected. Companies like Quip and Coda have based their business on real-time collaboration features. Atom and Sublime Text have collaborative editing plugins. Even Confluence now supports collaborative editing!
In this talk, you'll learn how to build a great collaborative experience, based on solid fundamental ideas.
Justin Weiss writes software at Aha!, the world's #1 product roadmap software and one of the fastest growing companies in the U.S. He's the author of Practicing Rails, a book about learning Rails without being overwhelmed. On his website, http://www.justinweiss.com, Justin writes clear, simple tutorials to help Rails developers write fast, clean, well-tested apps.
Let us show you the easiest way to build, deploy and manage any Rails application on any cloud provider and under your own cloud account. We will also show you how to scale your databases, setup database replication and add off-site backups to your databases with extreme simplicity. Find out how to spend less time configuring boxes, and more time developing great web apps!
This is a sponsored talk by Cloud 66.
Khash is founder and CEO of Cloud 66 that provides a DevOps as a service for Rails and for Containers on any cloud provider. Over the past 20 years, Khash has worked at different roles from Vice President at Lehman Brothers to CTO of startups at Silicon Valley. Khash is passionate about developer tools and how they can improve daily workflow. Khash has a BSc in mechanical engineering and MSc in management of software projects.
Moving from operations powered by scripts like Capistrano to containers orchestrated by Kubernetes requires a shift in practices. We'll talk about things beyond "Getting started with Kubernetes" guides, and cover such aspects of operations as gradual deployments, capacity planning, job workers and their safety, and how cloud environments like Kubernetes drastically change how we solve them.
This presentation is about the lessons we learned while migrating hundreds of Rails apps within the organization to Kubernetes.
Kir Shatrov is a Platform Engineer at Shopify where he works on application scalability and resiliency. When not into working, Kir enjoys cooking delicious food and gastronomic travels.
We know how to communicate — we do it on a daily basis, so why spend time perfecting something you feel you already know how to do? Well, what you say and how you say it impacts how you are understood and how others perceive you. In written communication, a single missing comma can wildly change the meaning of what you said. In this talk, we'll walk through 5 tips that improve how you communicate. Using real world examples, we'll show how common these pitfalls are and how to overcome them. You'll leave armed with the ability to positively impact your relationships through how you communicate.
Laura is a software engineer with a passion for clean code and oxford commas. She's passionate about creating a better world through code, kindness, and understanding. When she isn't coding, she enjoys rescuing hedgehogs, making things, and playing games.
Authentication is one of the most common features of web applications, so it makes sense to have libraries that provide solutions for this problem. You've probably heard of or maybe used Devise: all you have to do is add it to your Gemfile and run a generator, and you have a robust authentication system.
Behind the scenes, Devise uses Warden to handle authentication. In this talk, I'll explain what Warden is, why it's useful and how Devise takes advantage of it to build the most popular authentication gem for Rails.
Software Developer who was lucky enough to work with Ruby as his first professional programming language. Passionate about open source, now he works at Plataformatec with software consultancy and open source projects - including Devise. He also loves sports - especially football and basketball - and, of course, coffee.
Creating truly 100% accessible websites often requires specialized knowledge of the ins and outs of screen reader settings, browser defaults and HTML quirks, yet most of us still need to google how to turn on a screen reader. We attend "Web Accessibility 101" seminars and workshops over and over but very few of us end up with the kind of specialized knowledge necessary to make truly accessible websites. In this talk, we'll discuss why this is, and how we can eventually get to accessibility 102.
Liz Certa has been milking her humanities degrees for talk fodder since she entered the tech industry in 2014. Liz is an Angular developer at Vitals and doesn't do as much Rails as she used to, but she enjoys coming to Rails meetups and conferences because the Ruby and Rails communities are so darn nice, and the stuff they work on is just so darn cool. Liz lives in Brooklyn with her very talented developer husband Jon and her dog Milo. Both Jon and Milo are very good boys.
Legacy code is unpredictable and difficult to understand. Most of us will work with legacy code, so it’s important for us to understand its major pain points and their underlying causes. You’ ll come away from this talk with practical strategies to help you understand, improve, and even love legacy code.
Loren Crawford is a full-time weirdo and part-time software engineer at MailChimp. As a career changer, she works to bring different perspectives into the development process, and help underrepresented groups make their own way in tech. In addition to her love of refactoring and testing, she also loves the German language and her dog, Luna Grey.
Currently, our industry has a surplus of bright junior developers, but a lack of open junior positions. Building a developer apprenticeship in your organization is a great way to provide a haven for these talented devs, while simultaneously making your team more productive and easing the pain of hiring.
In this talk, you'll learn from the mistakes I've made and wins I've had in creating an apprenticeship. From pitching the idea to growing your apprentices, you'll gain a step-by-step guide to successfully building your own apprenticeship program.
Megan Tiu is a Senior Software Engineer at CallRail that loves solving problems with Ruby and helping other developers grow. She works to make technology more accessible to women and people of underrepresented groups in any way she can. Megan also hopes to pet every dog in existence.
Polymorphism is a mainstay of the Ruby on Rails stack, affording us a lean, concise way of relating objects in a dynamic way. Using a candy shop application, this presentation will pragmatically explain and demonstrate polymorphism and its benefits/usefulness in Rails.
Michael is a creative guy who likes to make things, especially music and apps. He's spent the last 15 years performing as a professional musician, from the Minnesota Opera to clubs of all kinds up and down the East coast. Prior to joining the Ruby community in 2014, Michael taught an assortment of music courses for Camden County College and the University of Phoenix at Center City.
Come see how Rails has evolved over the years through the lens of introductory Rails tutorials. Marvel at Rails pre-REST, survive the merger with Merb, feel the joy & pain of the then-new asset pipeline, and watch testing techniques grow, evolve, and simplify. Leave with a deeper appreciation for where Rails came from and where it is today.
Michael Hartl is the author of the Ruby on Rails Tutorial and founder of LearnEnough.com.
So you have something new to sell: maybe your first book or a hip new SaaS. How do you decide the price? How do you know you're not overpricing? Or underpricing? Why, oh why, did you ever think to sell something?!
Instead of choosing a number by looking inward at your costs, you can use what programmers use best: an abstraction! You'll learn a model for picking the right price for your product and what that price communicates so you can confidently price your next great invention. You'll leave with an actionable list of next steps for pricing your future projects.
Michael is the Lead Application Engineer at Flywheel, where he builds a delightful WordPress hosting experience for creatives. He uses Ruby every day to coordinate thousands of servers that run customer sites. Yes, that's right: Ruby. Never fear that you can use your favorite programming language, even when you host PHP-based websites!
He is married to an economist and wants to help programmers better understand the application of economics to their work.
In any production rails application’s simplest form, there is one version of the app deployed to a single host or cloud provider of your choice, but what if there were laws and regulations in place that required your application to be replicated and maintained within the geographical boundaries of other countries. This is a requirement of countries that have data sovereignty laws and a regular hurdle to overcome when dealing with sensitive data such as protected health information. This talk provides a case study of how we devised an automatic deployment strategy to deploy to multiple countries.
Hi I’m Mike! I started writing software after earning a Master’s of Library Science from St. John’s University in Queens, NY. Initially, I wrote a lot of PHP but came to really enjoy working in Rails and subsequently supporting and improving Rails applications. When not programming, I spend time in Vancouver, WA with my wife, son, two cats, and our corgi named Ruby.
Stop trying to be a computer; you're a human! You know what humans are good at? Storytelling. Stop trying to write tests just to get a green test suite, and start telling rich, descriptive stories. Once you have a good story, then you can worry about the implementation details (wait, is testing a form of abstraction and encapsulation?!). In this talk, we look at writing tests as simply telling stories to the test suite. By telling stories about the application (methods, controllers, features, &c.) the suite holds the storyteller accountable for making those stories become, and stay, true.
I'm a developer at Quikly in Detroit. In 2016, I pivoted my career aspirations from academic sociology to software development (graduate of Turing School in Denver). I have a deep passion for learning, teaching, and writing elegant code for software that improves everyday life. I believe cultivating a perspective around testing that brings developers closer to the perspective of an end-user (via storytelling) helps us write holistically better software.
On March 28, 1979 at exactly 4:00am, control rods flew into the reactor core of Three Mile Island Unit #2. A fault in the cooling system had tripped the reactor. At 4:02, the emergency cooling system automatically kicked in as reactor temperature continued to climb. At 4:04, one of the operators switched the emergency cooling system off, dooming the reactor to partial meltdown. Why?
Let’s let the incredibly complex failure at Three Mile Island teach us how to dig into our own incidents. We'll learn how the ideas behind just culture can help us learn from our mistakes and build stronger teams.
Nickolas Means is infatuated with disasters of all kinds and the amazing things we can learn from them. When he's not stuck in a Wikipedia binge loop reading about plane crashes, he leads the engineering team at Muve Health, helping build software to improve the joint replacement experience for patients and caregivers. He works remote from Austin, TX, and spends most of his spare time hanging out with his wife and kids or going for a run.
Have you written JSON APIs in Rails a few times? Even if you’re escaped implementing a “render: :json” call, some day soon you’ll need to get JSON data out to a native client or your front-end framework. Your Rails apps might change, but the pitfalls for JSON APIs stay the same: They’re hard to discover, difficult to change from the client side, and documenting them is a pain. For your next app, or your current one, let’s consider GraphQL. I'll show you how to implement it in your app and offer real-world advice from making it work in an existing Rails app.
Nick has been writing Ruby for over 10 years. After attending a panel at RailsConf 2008, he started a small website to share gems that turned into RubyGems.org. Nick is a recovering GIF hoarder and loves taking long walks through codebases. He is a short, sturdy creature fond of industry.
Now that it has become a mature web development framework, Rails is no longer the exclusive realm of burgeoning startups. Healthy small and large businesses have grown with Rails for years. Shrinking and dying companies too. In this talk we'll look at how Rails and its ecosystem of libraries and services can support both newborn and aging apps, and when it struggles to do so.
Olivier likes to use computers to help people and not the other way around. He's worked on Code School for the past six years, created Shields.io and Keep a Changelog to try and make open source projects more accessible to humans. More importantly, he's the kind person who stops in the middle of a book to figure out the etymology of a cool new word.
When it comes to evaluating candidates for software engineering roles, it's hard to keep up with the latest and greatest techniques. We know logic puzzles don't work. Writing pseudocode on a white board is so tired and cliche at this point that companies brag about not doing that. Teams have resorted to what seems like an obvious choice at first blush: just have the candidate write some code. This new trend may have some unintended consequences, though.
In this talk, you'll learn how to design an interview process which allows you to evaluate candidates without making them code for you.
Pete Holiday is an Engineering Manager at CallRail. He's been programming for more than 20 years and took his first engineering leadership role eight years ago. Pete and his wife live in Atlanta with their three dogs, who would absolutely love to lick your face.
Perhaps you've thought about switching to Webpack. Then you open a Webpack config file and your heart sinks; it looks like an alien life-form. You try to get it working, but your old jQuery plugins won't even load in the browser.
Moving from Webpack basics to using it in production means understanding how it works. We'll demystify how Webpack bundles assets for the browser, how it differs from the Rails asset pipeline, and highlight common challenges that may occur coming from Sprockets.
This is the talk we would have wanted to see before recently adopting Webpack in our own Rails app.
Ross Kaffenberger loves building things for the web and feels lucky to have been doing so for over ten years. He counts Webpack among his favorite topics to go along with Wes Anderson movies and long-distance triathlons.
Individuals can only advance when they know they are valued, listened to, and understood. Without having lived the same life as them, it's often hard to understand why people do what they do. It requires empathy, and practicing empathy can be tough when someone differs greatly from you, personally or professionally. But, being empathetic can be learned, for instance through method acting.
Let's talk about the fascinating acting techniques of Stanislavski, Strasberg, Adler & Meisner, and learn how you too can employ the Method to better understand (and work with) the people in your life.
Roy Tomeij is a co-founder of AppSignal, the best APM for Ruby and Elixir. At night, he takes acting lessons and has been doing that on and off for the past nine years. He has starred in various plays and has many years of improv experience. During the day, he plays a better version of himself.
Minitest 5 ships with ruby and is the standard test framework for rails. It already provides a traditional unit test framework, spec DSL, mocks, stubs, test randomization, parallelization, machine agnostic benchmarking, and tons of assertions all in under 2kloc. So what would Minitest 6 do differently? Hopefully to the end user, not much will change, and yet it will be worlds apart from Minitest 5. Come see how you can massively speed up your rails test runs and improve your testing practices by upgrading your test framework.
Ryan Davis is made of meat. He eats food, breathes air, and burns calories. He's also an independent consultant who has been using Ruby since 2000 and is a founding member of the Seattle Ruby Brigade, the first and foremost ruby brigade in the world.
A good test suite can help you catch errors in development, but how do you know if your code starts misbehaving in production?
In this talk, we’ll learn about checkups: a powerful and flexible way to ensure that your code continues to work as intended after you deploy. Through real-world examples, we’ll see how adding a simple suite of checkups to your app can help you detect unforeseen issues, including tricky problems like race conditions and data corruption. We’ll even look at how checkups can mitigate much larger disasters in real-time. Come give your app’s health a boost!
Ryan is a developer, a designer, and cofounder of Splitwise, an app for splitting expenses used by millions of people around the world. He’s grateful to have had opportunities to work in a variety of areas, including API design, ops, security, mobile development, and more. This is his first RailsConf! @rofreg / rofreg.com
LendingHome is on a mission to simplify the mortgage process, but that’s not always easy in a world where we hear “API? What’s that?” from our third-party vendors. For the ones that do have technology solutions the phrases “FTP” and “Fixed-Width” are frequently thrown around.
This talk will dive into the solutions we’ve built that abstract away some of these concepts and how we provide clean interfaces for these services to the rest of the organization. If you’ve ever wanted to learn how modern companies interface with the old, this is the talk for you.
This is a sponsored talk by LendingHome.
Sam Aarons is a Senior Software Engineer at LendingHome and has been with the company for almost three years. In addition to building their Retail investment platform, he is also responsible for the internal system that shuffles every dollar to its final destination. When he's not simplifying mortgages or dealing with the vagaries of the banking system, Sam enjoys collecting and hacking smart cards.
In this talk, you'll learn about the new system specs in RSpec, how to set them up, and what benefits they provide. If you want to improve your RSpec suite with full stack testing this talk is for you!
Sam Phippen is a Senior Engineer at DigitalOcean. He comes to the table with enthusiasm, and a great deal of love for the Ruby community. He fights for the forces of justice as a member of the RSpec core team. He's sad that he can't hug every cat.
An ode to DHH's classic, let's build a blog with a Rails backend using a graphQL API and a React frontend. Through this live-coding session, you will learn how to set up an isomorphic app, the basic concepts of each library, and at the end have a fully functioning blog application! Follow along on your computer or clone the repo.
Tracking down bugs can be hard. Tracking down bugs in a codebase touched by 5000
people is even harder. Making heads or tails of an inheritance-happy codebase
like Rails can be a nightmare. How do you find where the bug in
save is when
save is overridden by 15 different modules?!
In this talk, we'll look at the process that goes into fixing a bug in Rails itself. You'll learn about every step from the initial report to when the fix is eventually committed. You'll learn how to navigate Rails' internals, and how to find the source of the problem -- even if you've never committed to Rails.
Sean is a committer on Ruby on Rails, the maintainer of Active Record, cohost of The Bike Shed podcast, and the creator of Diesel, an ORM and query builder for Rust. Having spent over a decade in the industry, he now works for Shopify doing open source full time.
It’s easier than ever to integrate a distributed commit log system like Kafka into your stack. But once you have it, what do you do with it? Come learn the basics about Kafka and event-driven systems and how you can use them to power your Rails services. We’ll also venture beyond the theoretical to talk about practical considerations and unusual operational challenges that your event-driven Rails services might face, like monitoring, queue processing, and scaling slow consumers.
Stella Cotton is a Ruby engineer at Heroku and co-founder of AndConf and Fog City Ruby. She loves good abstractions and boring technology.
We are told that junior developers are a secret weapon, but this alleged "competitive advantage" is so elusive! Typical advice about evolving talent can be broad, un-relatable, and impractical. Aren't there any specific and actionable tactics that teams can employ for leveling up new devs? (Yes, there are!)
Sumeet Jain is the Development Director at Unabridged Software, in Omaha, Nebraska. He loves developing for the web, but his latest passion is building teams that grow gracefully and creating software development processes that make everyone's life a little easier.
Taylor Jones is a Florida-based Software Developer working at IZEA. He also writes for publications like Codeship and his personal blog at hiimtaylorjones.com
Being a mom is awesome! You finally get to be the one to post a million cute pictures of your adorable baby. It is also one of most challenging and hard things a woman can go through, especially if they're in software.
In this talk you'll hear stories from women in the programming community, struggles they have gone through, and why many of them left their jobs after or during maternity leave (including me). If you want to help your mom friends stick around and feel included, or if you are from a company who wants to support the growth of your mom employees, then this talk is for you.
Having moved around a lot, Tess has settled in New Mexico with her husband Sean and her one year old daughter Ruby. She is a web developer at Headway.io and is a graduate and former assistant instructor the Turing School of Software Design.
Lying on the beach and enjoying the 4-hour work week: who wouldn't like the recurring revenue stream of a SaaS business? It's why many start building a SaaS company "on the side", only to find out they don't make enough money to buy a latte and fall back to getting paid by the hour. They're stuck on the long, slow Ramp of Death.
Coming to you live from the trenches of running an organically growing SaaS for five years, this is an honest –and sometimes brutal– story of perseverance, sacrifice and reward. Find out how to overcome the ramp, and why it isn't as bad as you might think.
Thijs is a co-founder of AppSignal, hailing from Amsterdam. Ruby developer for thirteen years, Ramp of Death navigator for five.
Building a business is both mysterious and hard. We can't do much to make it easier, but after 6 years running Test Double, we can make it less mysterious. This talk is a slow-motion Q & A: submit a question to http://testdouble.com/business and we'll build a slide deck that gives as many practical (and colorful) answers we can fit in a 45 minute session.
This talk is for anyone whose interest in starting a software company has ever been held back by fear, uncertainty or doubt. It assumes no knowledge of business jargon and will strive to explain each financial concept covered.
Nobody knows bad code like Justin Searls—he writes bad code effortlessly. And it's given him the chance to study why the industry has gotten so good at making bad software. He co-founded Test Double, an agency focused on fixing everything that's broken about software.
Rails is incredibly powerful because of its abstractions. For years, developers have been able to hit the ground running and be productive without having to know the in's and out's of the core computer science concepts that fuel this framework. But just because something is hidden away doesn't mean that it's not worth knowing! In this talk, we'll unpack the CS fundamentals that are used in the Rails router. Together, we'll demystify the graph data structure that lies under the hood of the router in order to understand how a simple structure allows for routing to actually work in a Rails app.
Vaidehi is an engineer at Tilde, in Portland, Oregon, where she works on Skylight. She enjoys building and breaking code, but loves creating empathetic engineering teams a whole lot more. In her spare time, she runs basecs, a weekly writing series that explores the fundamentals of computer science, and is co-host of the Base.cs Podcast.
Applying the tried and true answers of “It depends.”, “Maybe?”, and “It works for me, what if you try …” to our engineering organizations themselves turns out to work better than trying to find the One True Way. We all know that every engineering project is full of trade-offs, caveats, surprising complexities, and hidden depths; so it should be no surprise that we, the engineers who build such systems, are at least as complicated.
This is a sponsored talk by Procore.
Vietor is currently a Director of Engineering at Procore where he leads a variety of teams working on core platform fundamentals. Previously he’s founded a few startups with varying degrees of success, worked at a few others, and generally been getting paid to do “that computer stuff” he always did instead of his homework for about 20 years now. Looking for challenging problems and ways to be ever more effective has led to the most abstract meta-programming he’s tried yet: Engineering Engineers.
Rails brings us a lot of useful tools out-of-the-box, but there are missing parts too. For example, for such essential tasks as authorization we are on our own. Even if we choose a trending OSS solution, we still have to care about the way to keep our code maintainable, efficient, and, of course, bug-less. Working on Rails projects, I've noticed some common patterns in designing access systems as well as useful code techniques I'd like to share with you in this talk.
A mathematician found his happiness in programming Ruby and Erlang, contributing to open source, mentoring Rails devs and being an Evil Martian. Author of AnyCable and TestProf.
This is a sponsored talk by Skylight
Yehuda is a member of the Ember.js, Ruby on Rails and jQuery Core Teams; his 9-to-5 home is at the startup he founded, Tilde Inc, where he works on Skylight, the smart profiler for Rails. Yehuda spends most of his time hacking on open source—his main projects, along with others, like Thor, Handlebars and Helix—and traveling the world doing open source evangelism work.
Godfrey Chan is a member of the Ruby on Rails core team and an Ember.js Core Team Member. He currently works at Tilde as an in-house Canadian. In his previous life, he was also an award-winning WordPress™ plugin author.
OTCBTC, a cryptocurrency exchange founded in Oct 2017, was developed with Rails. It grows rapidly and has reached hundreds million of dollars of GMV and millions of pageviews within only two months after being launched.And quickly become the largest OTC exchange in Asia. Its ICO had successfully raised the amount equivalent to series B funding.
In this talk, Xdite will share how she and her team members struggled through the rapid growth of OTCBTC, the future opportunity in blockchain industry, and the challenge in developing such level of project.
This is a sponsored talk by OTCBTC.
Xdite, the current CEO of OTCBTC, has been involved in cryptocurrency for about 2 years. Previously being the CTO of well-known ico.info, Xdite dedicates herself to developing projects with Rails for a decade so deep that she has deep knowledge in rapid development & scaling. As the founder of RailsPacific Conf in Taiwan, she had once founded GrowthSchool, the largest online school of Rails in Asia.