Discover the benefits of training your entire organization to contribute code. Kickstarter teaches GitHub for Poets, a one-hour class that empowers all staff to make improvements to our site, and fosters a culture of transparency and inclusivity.
Learn about how we’ve made developing with GitHub fun and safe for everyone, and the surprising benefits of having more contributors to our code.
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, and wearing his grizzly bear coat.
Did you know that Shakespeare wrote almost no direction into his plays? No fight direction. No staging. No notes to the songs. Of the 1700 words he created, there was no official dictionary. That’s right the author of some of the greatest literary works in history, which were filled with situational complexity, fight sequences and music, include NO documentation! How did he do it?
In this talk, we're going "thee and thou." I'm going to give you a crash course in how: Shakespeare writes software.
Partner & Co-founder of ZEAL (@CodingZeal) an Agile Ruby on Rails, AngularJS and Node.js consultancy in Oregon. Adam's currently an Airpair Ruby on Rails and Pair Programming Expert, Rogue Rails (@RogueRails) Event Organizer, Technical Consultant and.... musical theater lover.
Like most programmers I am lazy. I don't want to do something by hand if I can automate it. I also think DevOps can be dreadfully dull. Luckily there are now tools that support lazy DevOps. I'll demonstrate how using Docker containers and Kubernetes allows you to be lazy and get back to building cool features (or watching cat videos). I'll go over some of the pros and cons to the "lazy" way and I'll show how these tools can be used by both simple and complex apps.
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. She also loves working with large piles of data. In her free time she enjoys skiing, cooking, knitting, and long coding sessions on the beach.
We all run
bundle install so we can use some gem or other, sometimes several times a day. But what does it do, exactly? How does Bundler allow your code to use those gems? Why do we have to use bundle exec? What's the point of checking in the Gemfile.lock? Why can't we just
gem install the gems we need? Join us for a walk through the reasons that Bundler exists, and a guide to what actually happens when you use it. Finally, we'll cover some Bundler "pro tips" that can improve your workflow when developing on multiple applications at once.
André thinks Ruby is pretty neat. He is Bundler team lead, and provides expert development, architecture, and training through Cloud City Development in San Francisco.
Running tasks outside the request-response loop is a must in modern web apps.
ActiveJob is a great addition to Rails (in 4.2) providing a standard interface to various asynchronous gems (Delayed_Job/Sidekiq etc). Has it also ushered in something else? A way to do 'Service Objects' the 'Rails Way'?
Designer/Developer, iOS & Ruby on Rails Chap. Conference Organizer. Book writer.
Currently at housetrip.com
Rails and the ActiveRecord gem are really handy tools to get work done, and do it quickly. They aren't a silver bullet, though. Sometimes the database is the best place to run a complicated query. Especially when you have big transactional or time-series data. Databases are also incredibly powerful, and can do remarkable things at scale. Why not take advantage of that power?
This talk will discuss some of the things that you can do with PostgreSQL that will both blow your mind and also help you transform data into knowledge. Let's have some fun playing with data together!
I am a Rubyist turned polyglot. I currently work at Sabre Labs, where we experiment with the intersection of emerging and current technologies. I've done a lot of work with mapping, geolocation, indoor location, and proximity (beacons). I don't always write code in Ruby, but when I do I prefer to write backend servers and services.
Docker has taken the world by storm as a tool for deploying applications, but it can be used for much more than that. We wanted to provide our students with fully functioning cloud development environments, including shells, to make teaching Ruby easier.
Learn how we orchestrate the containers running these development environments and manage the underlying cluster all using a pure ruby toolchain and how deep integration between Rails and Docker has allowed us to provide a unique experience for people learning Ruby online.
Rails Developer, author of 'Reliably Deploying Rails Applications'. Avid indoor climber. Believer in "Small Steps Taken Quickly".
When you want to talk to someone, where do you turn? Skype? Slack or HipChat? Maybe even an old-fashioned telephone? As great (or not) as these are, they all fail in one important way: Context. As developers, why don’t we enable our users to communicate where they are doing everything else, right inside the browser or mobile app? The technology to make contextual communications is evolving quickly with exciting technologies like WebRTC, speech recognition and natural language processing. This talk is about how to apply those building blocks and bring contextual communication to your apps.
Ben Klang is the founder of Mojo Lingo, an Atlanta-based consultancy specializing in real-time communications applications. He has been involved in Open Source for nearly 20 years, and is currently the lead of a Ruby-language (Rails-inspired) framework for communications apps called Adhearsion. A regular speaker at conferences, he enjoys surprising the audience by making telephones do unexpected things. Native to Atlanta, he lives there today with his wife and daughter.
We talk about bringing new developers "up to speed quickly." Imposter syndrome is bad enough, but often junior developers feel pressured to learn faster and produce more. Developers often focus on velocity as the critical measure of success. The need for speed actually amplifies insecurities, magnifies imposter syndrome, and hinders growth. Instead let's talk about how we can track and plan progress using meaningful goals and metrics.
Bree (@BreeThomas33) was a Turing grad and is currently a developer with Mode Set. She also organizes the Denver chapter of Girl Develop It. Every once in a while she blogs: http://www.nooblife.com/ and http://www.thebratblog.com/.
What does accessibility entail as it is related to the web? Most developers don't consider that someone with visual impairments may use the web and don't think about what this experience may be like for someone who has a visual impairment. The current trend is to push access-driven design to the end of feature building, but we will explore why this needs to be a top priority.
Chandra (@chandracarney) is a proud Turing School graduate, currently living in Denver, CO. When she's not coding she likes looking at art, talking about accessibility, and giving others inspiration to become developers.
In Rails 5, the old way of returning
false to implicitly halt a callback chain will not work anymore.
This change will impact any codebase using ActiveSupport, ActiveRecord, ActiveModel or ActiveJob.
before_validation will require developers to explicitly throw an exception in order the halt the chain.
This talk will explain the motivations behind the new default, will delve into the internals of Rails to show the actual code, and will help developers and gem maintainers safely upgrade their apps to Rails 5.
Whether it’s through bootcamps or sheer willpower, hundreds of freshly-minted developers have used Rails to begin their careers. But all of the well-formed Twitter clones in the world are not a replacement for experience working on an active project.
Enter open source. Open source contributions hone crucial web development skills, like version control; comprehension of an full code base; and even an understanding of agile processes--not to mention being a clear indicator of your hirability. Join us to learn how to push through any intimidation and strengthen your portfolio with open source!
Courteney Ervin is an Events Platform Engineer at CodeMontage. The confluence of open source and social good were the seed of her tech career, and she is thrilled to be writing code at the junction of such important movements. Ervin is also firmly committed to fostering a more diverse tech industry through accessible educational opportunities.
Previously, Ervin was a founding teacher of Dev Bootcamp’s NYC campus and has led events and tech projects at a variety of nonprofits.
We had a real-time API in Rails that needed much lower latency and massive throughput. We wanted to preserve our investment in business logic inside ActiveRecord models while scaling up to 1000X throughput and cutting latency in half. Conventional wisdom would say this was impossible in Ruby, but we succeeded and actually surpassed our expectations. We'll discuss how we did it, using Event-Machine for the reactor pattern, Synchrony to avoid callback hell and to make testing easy, Goliath as the non-blocking web server, and sharding across many cooperative processes.
My name is Daniel Kozlowski, and I'm a Rubyist based in Santa Barbara, California. I build awesomely fast things at Invoca.
Colin is CTO of Invoca (formerly RingRevenue), a call marketing automation company based in Santa Barbara, California. He has enjoyed programming in Ruby and Rails since co-founding the company in 2008.
While most parts of Rails have been thoroughly overhauled during the past few years, one part has stubbornly refused improvement. The view layer is still by default using ERB to transform your app’s objects into HTML. While trying to solve a seemingly unrelated problem we discovered a design that suddenly enabled us to move past the limitations of ERB while still integrating closely with Rails. We could now separate presentation logic from display structure; reason about our views and how they relate; and dramatically improve our code. We called the library Curly, and it's pretty awesome.
Daniel Schierbeck has been programming in Ruby since 2005 after completing level 99 in PHP and figuring out there was no prize to win after all.
He studied Computer Science at the University of Copenhagen, where he primarily spent his time trying to avoid writing C++. He got into Concurrent Sequential Processes before it became cool, and wrote a Ruby implementation called Minx for his bachelor thesis. As with all academic code, it is used by no one.
Born and raised in Brooklyn, NY, Daniel is very opinionated about his bagels, can navigate around a subway blindfolded and enjoys EDM a little too much. He is currently working as a Ruby and iOS developer at Lifebooker and is a proud graduate of the Flatiron School.
So you are building an app that has a ton of forms each with tons of fields. Your heart sinks as you think of writing and managing all those models, migrations and associations. PostgreSQL JSON column and ActiveRecord::Store to the rescue! This talk covers a way to wrap these Rails 4 features to simplify the building of extensive hierarchical data models. You will learn to expressively declare schema-less attributes on your model that act much like “real" columns, meaning they are typecast, validated, query able, embeddable, and behave with Rails form builders.
I started coding at age 12. After a long detour through a PhD in history, I returned to the world of code and found Rails in 2006. I lead the Rails team at the GORGES consulting company in Ithaca, NY.
Code reviews are not about catching bugs. Modern code reviews are about socialization, learning, and teaching.
How can you get the most out of a peer's code review and how can you review code without being seen as overly critical? Reviewing code and writing easily-reviewed features are skills that will make you a better developer and a better teammate.
You will leave this talk with the tools to implement a successful code-review culture. You'll learn how to get more from the reviews you're already getting and how to have more impact with the reviews you leave.
Derek has been doing professional web development for over 15 years and is currently a developer with thoughtbot and host of The Bike Shed podcast. He's worked to implement or improve code reviews with small business, enterprises, and startups.
Capybara has allowed us to build complex and ambitious applications with the confidence that everything comes together in the user experience we're targeting. As the capabilities of the web have grown, interactions and behavior in our applications have become more complex and harder to test. Our tests become coupled to CSS selectors, fail intermittently, take longer and our confidence dwindles. In this talk, I'll go over best practices for working with a large Capybara test suite and dig into APIs and options we can use to handle complex apps such as a chat app not written in Ruby.
Aside from a passion for web development, Eduardo has interests in biking, hanging out and chatting about passions and interests.
Developers often refer to their trade as both “art” and “craft," using the two interchangeably. Yet, the terms traditionally refer to different ends of the creative spectrum. So what is code? Art or craft?
Come explore these questions in this interdisciplinary talk: What is art versus craft? How does coding fit in once we make this distinction? Is the metaphor we use to describe coding even important––and why? You’ll walk away from this discussion with a better understanding of what creating and programming means to you, and what it could mean to others.
Emily Xie is a software engineer at Wayfair. In her spare time, she organizes the Boston chapter of Girl Develop It and enjoys botching Italian recipes.
Software is grown, not built, and that becomes clearest when we need to change it. This talk will discuss the motivations behind a framework migration, how to divide that migration into soluble subproblems, and how to conquer those subproblems in a test-driven way, all while ensuring the new codebase is designed with further growth in mind. We'll touch on mounting Rack applications inside Rails, SOA architecture, and how to map components of one framework to another.
Eric Weinstein is the author of Ruby Wizardry (No Starch Press), an illustrated guide to the language for children. He writes Ruby for internal tools and DevOps at Rent the Runway.
Agile. Scrum. Kanban. Waterfall. TDD. BDD. OOP. FP. AOP. WTH?
As a software developer, I can adopt methodologies so that I feel there's a sense of order in the world.
There's a problem with this story: We are humans, developing software with humans, to benefit humans. And humans are messy.
We wrap ourselves in process, trying to trade people for personas, points, planning poker, and the promise of predictability. Only people aren't objects to be abstracted away. Let's take some time to think through the tradeoffs we're making together.
Ernie's been programming since he was 6, and professionally for the past 16 years or so. He's passionate about creating things, and sees software development as an especially powerful medium for creation. Sometimes he still can't believe that people actually pay us to have this much fun.
He's currently the Director of Engineering at nVisium.
Every once a while, Rails might behave in strange ways that you did not expect, and it could be difficult to figure out what is really going on. Was it a bug in the framework? Could it be one of the gems I am using? Did I do something wrong?
In this session, we will look at some tips, tricks and tools to help you debug your Rails issues. Along the way, you will also learn how to dive into the Rails codebase without getting lost. The next time you a mysterious bug finds its way into your Rails applications, you will be well-equipped to pry open the black box yourself!
Godfrey Chan is co-founder at Brewhouse Software in Vancouver, Canada. He is a member of the Ruby on Rails core team and the author of several critically acclaimed Ruby libraries, including the
When Voldemort and his forces threatened us all, two of the three wizards (and witch) who led his defeat were not raised in the magical world. Schools like Hogwarts can help us identify and train those with innate magical talents and interests whom we might otherwise never discover.
But how to find and teach those beyond the reach of our owls? This talk explores our options and will serve as a call to action for the Magical world.
As we will see, these challenges are almost magically mirrored by the Rails community as we seek to find and train developers from non-traditional paths.
I love code.
I love to write it, read it, discuss it and wrestle with it. I've yet to meet a language that I didn't like.
Discovering programming was like finally getting my letter from Hogwarts.
Background job processing is an important component of most large Rails applications. Two of the most common solutions - Resque and Sidekiq - are largely differentiated by one underlying architectural decision: processes or threads?
Is this talk, we'll provide a gentle introduction to threads and processes, and then crack open the Resque and Sidekiq gems to see how they work. Along the way, we'll learn a bit about concurrency at the OS and Ruby layers, and about how some of the tools we rely on every day are written.
James is a reformed topologist, now vowing to use his graph skills for good. He currently teaches Ruby at The Iron Yard and runs the Atlanta Intermediate Ruby group meetup. In those rare instances when he's not coding or evangelizing category theory, he also enjoys drumming - mostly math rock, natch.
A gentleman wizard and his sarcastic manservant examine a common anti-pattern in schema design, in which indexes are “left for later”. The pitfalls and dangers of this approach are set forth. Right incantations (which is to say, scenarios and sample code) for battling this devious tendency will be presented, with all magic (that is, “buzz”) words thoroughly demystified and clearly explained. Walk away with a new understanding of why your application tables deserve indexes from day one, and how to make sure you’ve got them covered.
Formerly of 37signals/Basecamp. One-time author of lots of software that you probably don't even realize you use every day (sqlite3-ruby bindings, Net::SSH, Capistrano, and even bits and pieces of Rails itself!). Lately writing a book about maze algorithms.
When we want to offer customizability to the users of our applications, things can get tricky. How do we allow users to customize the look of the user interface while reusing the static CSS we’ve already designed?
There is a way, but it is fraught with many dangers. Learn about the power of dynamically generating CSS from Sass files. Tackle the foes of dynamic content injection, rendering, caching, and background processing. In the end, we will look triumphantly at our ability to reuse our application styles to create customizable interfaces for our end users.
Working with large CSS codebases can be hard. Large-scale refactors, or even just tweaking styles on our more general elements, could end up having unintended consequences on the rest of the site. To catch these problems, we manually check every page on our site, which is a slow and error-prone approach. We need a better way to test our CSS. This talk will walk through how we implemented a visual CSS testing framework using RSpec & Selenium, using automatic screenshot comparison to catch style regressions.
Jessica is a self taught full-stack software engineer in the heart of San Francisco. She works at Bugsnag, the leading real-time crash detection service for mobile and web applications. Her expertise runs the gamut from developing rich in-browser applications to building service-oriented backends. When not coding or playing games, she likes to hang out with her dog named Boo.
New programmers often react with dread when the word "refactoring" starts getting thrown around at standup. Maybe you've seen fellow Rubyists struggle with old code, or a colleague spend days on one module only to end up with exactly zero changes to functionality. What exactly is refactoring, and why would anyone want to do it? What are some tips for approaching a refactor, both generally and in Rails?
I'm a software engineer at Contactually, in Washington DC.
For dynamic apps, Rails has taken a backseat to client side frameworks such as AngularJS, Ember and Backbone.
I'm a software engineer of 16+ years and work as an independent consultant. I live in San Francisco with my wife Renee and son Maverick. I enjoy working on open source and personal projects in my spare time.
User Centered Design as a process is almost thirty years old now. The philosophy has permeated our products and the way we build our interfaces. But this philosophy is rarely extended to the code we write. We'll take a look at some principles of UX and Interface Design and relate them back to our code. By comparing code that gets it right to code that gets it desperately wrong, we'll learn some principles that we can use to write better, more usable code.
Joe Mastey is a software engineer of over twelve years, and has worked on Rails codebases from 1.2 to 4.2. He's been spending his time lately teaching organizations to build fantastic internal education programs. He also digs rock climbing and kayaking, despite being based in Chicago.
Over 10 years ago the first line of code was written for what would become Shopify. Within this codebase we can see the evolution of Rails from the early 0.13.1 days to where we are today, on Rails 4.1. Through the history of this git repo we can revisit some of the significant changes to Rails over the years, and simultaneously observe what has withstood the test of time. By looking at the challenges that we have overcome while building and using Rails, we can inform future decisions so that we can continue to build a framework, and applications, that last years to come.
John has been writing software professionally since 2006, with much of that time spent in Rails. He has worked across various local start-ups on social video sites, hospital patient management applications, and now e-commerce.
He eventually arrived at Shopify where he has worked on features, performance, overall product direction and anything else he can get his hands into. John is now Director of Engineering, responsible for managing the majority of the 150 person development team.
With the "Path to 2.0" CFP EmberCLI was and is projected to become a first class citizen in the Ember world. And there was much joy. However, it placed a question mark on the Rails integration story. First we had globals, then ember-rails, then Ember App Kit. Just as a bead was being drawn on the proper way... EmberCLI. EmberCLI Rails is a new gem which facilitates an integration story we can love.
- Full stack testing (no "Air gap")
- simple installation
- Configurable setup
- Potential for simple deployments
Let's learn how easy integration can be.
As a consummate polyglot software engineer, Jonathan enjoys the challenge of learning new ways to solve complex coding problems. He has extensive experience working with legacy code, which has honed his ability to build carefully thought out programs that are highly flexible and durable. When not scouring the interwebs for new programming patterns or writing his next blog post, he can be found spending time with his wife at the beach.
A lot of people have being using Rails to develop both their internal or external API, but building a high quality API can be hard, and performance is a key point to achieve it.
I'll share my stories with APIs, and tell you how Active Model Serializer, component of Rails-API, helped me. AMS have being used across thousands of applications bringing convention over configuration to JSON generation.
This talk will give you a sneak peek of a new version of AMS that we have being working on, it's new cache conventions, and how it's being considered to be shipped by default in new Rails 5.
I’m the CEO and Founder at Gioco.pro. I'm an enthusiast technologist that love open source, a blog author in SitePoint, and also a speaker of some international and national conferences like Ruby Conf, TakeOff Conf France, Rails Israel, Ruby Italian Day, RuPy, April pro Ruby and others.
What actually happens when we visit a website? As developers, we're supposed to know all about this, but when our browsers have millions of lines of code, and our backends have fancy service-oriented-architectures with dozens of components, it's hard to keep it all in our heads.
Fortunately, we have amazing tools to help us. We can bypass the complexity of browsers and servers, and simply examine the communication between them. Let's use these tools and look at the underlying patterns shared across the entire web, from the simplest static pages to the most sophisticated web apps.
Julian Simioni is a software developer from San Francisco now living in Berlin. Outside of work Julian is a pilot, cyclist, and servant to two cats.
Learning to keep your Rails application secure is an often-overlooked part of learning Rails, so let's take a trip through the world of Ruby on Rails security! The journey will start with an overview of security features offered by the popular web framework, then we'll detour through dangerous pitfalls and unsafe defaults, and finally end with suggestions for improving security in Rails itself. As a bonus, we'll talk about how to integrate security into the development process.
Justin is a member of the application security team at Twitter, a recent PhD graduate from UCLA, and the primary author of Brakeman, a static analysis security tool for Rails.
You grok SOLID. You practice TDD. You've read Sandi's book…twice. You rewatch Destroy All Software monthly. You can pronounce GOOS. You know your stuff!
But some of your coworkers say your code is too complex or confusing for them. You might rush to conclude that must be a them problem.
But doubt lingers: what if they're right?
After all, the more thought we put into a bit of code, the more information that code carries. Others must extract that embedded meaning, either by careful reading or shared experience. Sometimes boring code is better. Let's figure out when to be dull.
Justin Searls has two professional passions: writing great software and sharing what he’s learned to help others write even greater software. He helped start a software agency called Test Double, whose crack team of double agents solve complex problems with clean and simple solutions.
According to Gartner, there will be nearly 26 billion devices on the Internet of Things (IoT) by 2020. ABI Research estimates that more than 30 billion devices will be wirelessly connected to the IoT by 2020. This discussion provides examples examples, ideas, tools and best-practices for Rails developers to start building IoT applications that connect their web applications to the real world.
Karim Butt (@karimbutt) is an ex-management consultant now working as a full-stack web developer out of New York City. He attended the Flatiron School in New York City in 2014 where his love for Rails really blossomed. He is now working at a startup called Caseflex (www.caseflex.com), as the Head of Engineering, to launch an innovative Rails-based platform for law firms and financial institutions, while also continuously working on side projects (particularly in the Internet of Things space).
For developers, there are two things that are certain for time zones: you can’t avoid having to deal with them, and you will screw them up at some point. There are, however, some ways to mitigate the pain. This talk will discuss tactics for avoiding time zone mayhem, using a feature to send out weekly email reports in a customer’s local time zone as a case study. It will cover idiosyncrasies of how time zones are handled in Ruby and Rails, how to write tests to avoid false positives, and advice on how to release time zone-related code changes more safely.
KWu is a software engineer at New Relic. Prior to New Relic, she attended Hackbright Academy and had worked at Google for 5 years in various technical support and product operations roles. A proud New Jersey native, she nevertheless fits in well in Portlandia, what with biking to work and spending weekends canning and preserving the fruits and veggies from a local farm share.
An interview too often feels like a first date - awkward, strange, and not entirely predictive of what’s to follow. There are countless books and websites to help you when you’re a job seeker, but what about when you’re the one doing the hiring? Will you just ask the same puzzle questions or sort algorithm problems? What are your metrics for evaluating or contextualizing the answers? In this talk, I’ll describe successful practices and techniques to help you find someone who will innovate your business, bring new energy to your team, get the work done, AND be someone you’ll want to work with.
Kerri Miller is a Sr Software Developer and Team Lead based in the Pacific Northwest. She has worked at enterprise companies, international ad agencies, boutique consultancies, start-ups, mentors and teaches students, and somehow finds time to work on Open Source projects. Having an insatiable curiosity, she has worked as a lighting designer, marionette puppeteer, sous chef, and professional poker player, and enjoys hiking, collecting Vespas, and working with glass.
Performance regressions in edge Rails versions happen quite often, and are sometimes introduced even by experienced Core commiters. The Rails team doesn’t have any tools to get notified about this kind of regressions yet. This is why I’ve built RailsPerf, a regression detection tool for Rails. It resembles a continuous integration service in a way: it runs benchmarks after every commit in Rails repo to detect any performance regressions. I will speak about building a right set of benchmarks, isolating build environments, and I will also analyze some performance graphs for major Rails versions
Kir Shatrov is a Russian-born programmer who currently lives in Finland. A lead developer at Evil Martians, he is also a current maintainer of Capistrano and a member of the Rails team. He coaches RailsGirls and hosts the RubyNoName Podcast.
We will talk about introspection features of Ruby interpreter (MRI) to solve troubles on your Ruby on Rails application. Rails application development with Ruby is basically fast and easy. However, when you have trouble such as tough bugs in your app, performance issues and memory consumption issues, they are difficult to solve without tooling. In this presentation, I will show you what kind of introspection features MRI has and how to use them with your Rails application.
Koichi Sasada is a programmer, mainly developping Ruby interpreter (CRuby/MRI). After the 13 years life in university, now, he is a member of Matz's team in Heroku working on development of Ruby interpreter.
"Did you really think you could make changes to the database by editing the schema file? Who are you, Amelia Bedelia?"
The silly mistakes we all made when first learning Rails may be funny to us now, but we should remember how we felt at the time. New developers don't always realize senior developers were once beginners too and may assume they are the first and last developer to mix up when to use the rails and rake commands.
This talk is a lighthearted examination of the kinds of common errors many Rails developers make and will dig into why so many of us make the same mistakes.
Kylie is a Web Developer at Big Nerd Ranch in Atlanta, GA. Untrained in computer science, she first taught herself Visual Basic as a survival tactic and then Ruby on Rails in an attempt to switch careers. As a recovering Visual Basic developer & business major she defaults to using while loops with embarrassing frequency.
With projects like Doorkeeper, OAuth has pretty solid support in Rails when dealing with one application. However, when Rails applications get larger, many project teams break up their monolithic application into services. Some suggest installing Doorkeeper on every service, whereas others recommend routing all traffic through a single service.
Recently, we worked on a project where neither of these solutions seemed right. Join us as we talk about our experience in federating OAuth in order to handle over 30,000 concurrent users.
A experienced Ruby developer who regularly practices clean living with lots of well-tested code, class composition, and fun dynamic languages as a developer/startup CTO for hire with extensive experience in Ruby and committer on open source projects such as the Passbook-iOS, Asari and Active Asari Gems. When he’s not helping to organize conference like RubyDCampZA and Rubyfuza he is known to practice interspecies pair (purr) programming with his cat, Allie.
We know that low bus numbers, silos, and grueling hours can make hiring a dev nigh impossible. So why are bad conditions accepted as facts of life for open source software maintainers? Let's stop.
Come learn about how maintainers can become leaders instead of heroes, techniques for building an awesome team for your project, and the ways that everyone else can jump in and support open source software in an effective and sustainable way.
Lillie Chilen is a software engineer, bike commuter, and cat snuggler. In her free time, she is the chair of the RailsBridge board and CTO of Double Union, a feminist hacker/makerspace. She works at Omada Health, a digital health company in San Francisco.
Fostering diversity is a commonly cited goals for the tech community, and - let's be honest - the liberal arts are kicking our butts at it. This was not always the case, though; until very recently, the faces of the liberal arts were exclusively white and male. This changed thanks to distinct strategies and deliberate cultural shifts brought about in the late 20th century, some of which the tech community has copied and others we can use more effectively. In this talk, we will explore some of those strategies by examining the education, history, and culture of the liberal arts.
Until recently, Liz was a student of the English language on her way toward a life in academia. She is currently living in an alternate universe where she designs websites instead. Liz dreads the day when her comic book writers merge the universes and she has to fight canon Liz.
Bootcamps and other non-traditional education options are producing junior developers that can't wait to jump into their first jobs, but many teams are still figuring out how to successfully onboard people whose skills are solidifying and may be hesitant to add a junior to the group. As a junior, how do you go about finding a place for yourself? From thinking through what type of company may be the best fit to strategizing how to find a mentor to help guide you, this talk will discuss what you can do to make sure you get your career off on the right foot.
A graphic designer turned developer, Louisa has a soft spot for user experience and loves soaking up everything she can about back and front end technologies. She is a developer (and sometimes designer) at Haught Codeworks and is currently serving as the Director of Colorado for Women Who Code. She shares her home with a toothless, tail-less cat, two dogs, and her partner, Anthony.
Lotus is a simple, but yet powerful web framework that is focused on maintainability, testability and performance.
The prominent aspect of Lotus is the balance between instantaneous productivity and long term sustainability. The first is about convenience, magic and opinionated software. The latter is about control, explicitness and agnosticism. They are both important and only the appropriate amount of the two is the right compromise for healthy applications.
Family man, indie OSS developer, music connisseur and avid tea lover. Author of Lotus a complete web framework for Ruby.
React is the best way to bring interactive UIs to your Rails apps. But using React.js on Rails can be hard. NPM libraries are difficult to include, JSX seems nonsensical, and “can we still use CoffeeScript?”
Michael is a Web Developer at Planning Center Online. He organizes Full Stack Talks for aspiring web developers and teaches React.js through the Learn React screencast series. He thinks his wife and two ridiculous kids are super cute.
Most of us have some form of cache anxiety. We’re good at caching static content like images and scripts, but taking the next step - caching dynamic and user-specific content - is confusing and often requires a leap of faith. In this talk you’ll learn new and old strategies for caching dynamic content, HTTP performance rules to live by, and a better understanding of how to accelerate any application. This is just what the doctor ordered: a prescription for cache money.
Michael May is an engineer at Fastly, where he spends way too much time thinking about caching. He co-founded CDN Sumo, hates over-abstraction, and isn’t afraid to go back to basics. Hailing from deep in the heart of Texas, he enjoys BBQ, cowboy boots, and things that go fast.
Payments applications typically require a strong audit trail, very predictable failure behavior and strong transactional integrity. In Ruby/Rails, ActiveRecord allows any part of the code to modify anything in the database, failures are often silently ignored, and database transactions are hidden for convenience by default. In this talk I'll explore how to solve those problems and use RoR to build a large scale payments system.
Michel Weksler has been writing code for fun and for work for the past 30 years, working for small startups and large companies. Over the years he has become fascinated with the payments industry and spent the past decade working in payments related companies. He worked for PayPal, for a few startups, was part of the NFC Wallet project at Google, and now works as an engineer on the payments team at Airbnb.
What does haggling at a garage sale have to do with load balancing in distributed systems? How does bidding in an art auction relate to cloud service orchestration? Familiarity with the ideas and technologies involved in cloud computing is becoming ever more important for developers. This talk will demonstrate how you can use game theory — the study of strategic decision making — to design more efficient, and innovative, distributed systems.
Nadia is a software engineer at Pivotal Labs London, recently working on the Cloud Foundry team. She joined the company after graduating from a software development bootcamp. Before that, while studying at Oxford for a degree in Economics, she fell in love with game theory. Nadia is a tech startup enthusiast, and in her spare time she runs The StoryGraph, an online creative writing publication.
RSpec is often described with the word “magic” by both its users and its detractors.
Understanding how RSpec matchers, doubles, and specifications work will help you as an RSpec user. You will be able to take advantage of RSpec’s flexibility to make your tests clearer and more expressive. You’ll also get some exposure to new RSpec features, like compound matchers.
Walking through a typical RSpec example, we’ll show the RSpec internals as RSpec evaluates matchers and uses doubles. You’ll leave with a better understanding of how to harness RSpec in your own tests.
Most of the four learning stages - unconscious incompetence, conscious incompetence, conscious competence and unconscious competence - are bridged by acquiring experience. But the gap between unconscious incompetence to conscious competence is where the most discomfort and discouragement occurs.
Helping new developers bridge the void ensures a vibrant, accessible community, and having visible members/mentors in each stage encourages newcomers' learning. This talk illustrates (literally!) how to help new colleagues build this bridge and prevent losing them in the what-do-I-even-Google abyss.
Pamela is a developer on the digital team at Blue Bottle Coffee, working remotely from Atlanta, Georgia. She is an organizer and co-founder of the Atlanta chapter of Rails Girls, and is a big advocate of mentorship in the tech community.
Applications today are spidery and include thousands of possible optimization points. No matter how deep performance testing data are, developers are still at a loss when asked to derive meaningful and actionable data that pinpoint to bottlenecks in the application. You know things are slow, but you are left with the challenge of figuring out where to optimize. This presentation describes a new kind of analytics, called performance analytics, that provide tangible ways to root cause performance problems in today’s applications and clearly identify where and what to optimize.
Paola Moretto is CEO and co-founder of Nouvola, a company offering a cloud based, scalable performance testing and performance analytics solution.
Paola is a tech innovator and entrepreneur with more than 20 years of experience in leading organizations both at startups and established companies. She’s run product organizations at Intel developing first generation mobile and cloud solutions, and startup dev teams in the mobile space.
Rails apps start out quickly and beautifully, but after a year features are a struggle, tests are slow, developers are grinding, and stakeholders are unhappy. "Skinny controllers and fat models" hasn't worked, and "use service objects!" is awfully vague.
This talk explains how to compact the "big ball of mud" at the heart of your app into a bedrock of reliable code. It gives the steps to incrementally refactor models into a functional core and gives explicit rules for how to write light, reliable tests.
Peter Harkins is a senior software developer at DevMynd in Chicago, IL. As a journalist and contractor he has built and maintained dozens of websites, experimenting all the way.
Typical Rails applications have database schemas that are designed for on-line transaction processing. But when the data volumes grow then they are not well suited for effective data analysis. You probably need a data warehouse and specialized data analysis tools for that. This presentation will cover * an introduction to a data warehouse and multi-dimensional schema design, * comparison of traditional and analytical databases, * extraction, transformation and load (ETL) of data, * On-Line Analytical Processing (OLAP) tools, Mondrian OLAP engine in particular and how to use it from Ruby.
The rails "official stack" tests with minitest. Each revision of rails peels back the testing onion and encourages better testing practices. Rails 4.0 switched to minitest 4, Rails 4.1 switched to minitest 5, and Rails 4.2 switched to randomizing the test run order. I'll explain what has happened, explain the motivation behind the changes, and how to diagnose and solve problems you may have as you upgrade. Whether you use minitest already, are considering switching, or just use rspec and are curious what's different, this talk will have something for you.
Ryan Davis 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. In ruby land, he has focused on developer productivity and test automation tools. Some of his projects match:
Three of those matches are a lie.
Getting started with testing Rails applications can be a frought process. There are a range of different test types that one can write. It's often not clear which type one wants. Without care your tests can begin testing the same behaviour. This is problematic.
In this talk we'll cover the most common types of test you'll encounter in your Rails applications: feature, controller and model. We'll also talk about ways you can design your tests to ensure your suite is robust to changes in your system. If you'd love to learn more about RSpec, Rails, and testing this talk will be great for you.
Sam Phippen is a swashbuckling hacker from London, UK. He fixes every size of data problem at Fun and Plausible Solutions. He helps fight for the forces of justice as a member of the RSpec core team. He's sad that he can't hug every cat.
Our code is full of hidden assumptions, things that seem like nothing, secrets that we did not name and thus cannot see.
These secrets represent missing concepts and this talk shows you how to expose those concepts with code that is easy to understand, change and extend.
Being explicit about hidden ideas makes your code simpler, your apps clearer and your life better. Even very small ideas matter. Everything, even nothing, is something.
Sandi Metz, author of "Practical Object-Oriented Design in Ruby" (http:\poodr.com), 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.
Congrats! You've built the one API to control them all, and it's amazing. It's fast, well-architected, and Level 3 Hypermedia. However everyone is still using your competitors sub-par product... Why? We developers are lazy and you're making it hard for us to use. We're diving into your SDKs tests to solve basic tasks, your SDK + API errors annoy and don't help us fix our mistakes, and the lack of logical defaults leaves us playing parameter roulette.
Let's explore how to build API-enabled products that fellow developers will love using with great docs, tooling, support, and community.
Entrepreneur, Rails Developer, world traveler, and technology geek. Currently Developer Evangelist at WePay.
The most useful APIs are simple and composeable. Omnipotent DSLs can be great, but sometimes we want to just write Ruby. We're going to look at the process of designing a new API for attributes and type casting in Rails 5.0, and why simpler is better. We'll unravel some of the mysteries behind the internals of Active Record. After all, Rails is ultimately just a large legacy code base.
In this talk you'll learn about the process of finding those simple APIs which are begging to be extracted, and the refactoring process that can be used to tease them out slowly.
Sean is a Rails committer, cohost of "The Bike Shed", and a web developer for thoughtbot. He is a fanatic about Vim, Rails, and TDD. He may call Ruby and Rails his home, but he enjoys spending time in functional languages such as Haskell and Scala, and bringing those concepts back to the Ruby community.
Like an espresso, code is better served in small portions. Unfortunately most of the time we build systems consisting of a monolithic application that gets bigger and scarier by the day. Fortunately there are a few ways to solve this problem.
Everyone talks about how good microservices are. At a first glance an architecture of small independently deployable services seems ideal, but it's no free lunch, it comes with some drawbacks.
In this talk we'll see how microservices help us think differently about writing code and solving problems, and why they are not always the right answer.
Hola! My name is Sebastián. I am a software developer that loves pair programming and has a passion for teaching. I craft software at Ride Inc where we change the way people commute. In my free time I am involved with local software development groups and help organize the Bogotá Ruby and Elixir meetups.
I enjoy a good cup of Colombian coffee each morning which is my secret weapon to start the day in a great code-writing mood.
Modern distributed systems have aggressive requirements around uptime and performance, they need to face harsh realities such as sudden rush of visitors, network issues, tangled databases and other unforeseen bugs.
With so many moving parts involved even in the simplest of services, it becomes mandatory to adopt defensive patterns which would guard against some of these problems and identify anti-patterns before they trigger cascading failures across systems.
This talk is for all those developers who hate getting a oncall at 4 AM in the morning.
Smit works as a engineer at Nilenso and is part of Bundler core where maintains the dependency resolver. He used to be a stereotypical disinterested college programmer until he became a part of the KDE community and things changed for him. He contributed to the NEPOMUK project and was also a part of the Google Summer of Code program in 2011. He worked at C42/Flipkart before where he got to learn how to build scalable and resilient distributed systems.
Do you want to use your coding skills for good rather than for evil? Did you ever want to build something to make your city or your community suck less? Here are some lessons from a civic hacker on how to kickstart your project. Hint: it's nothing like writing a gem.
William is a software engineer and consultant at SunGard. He is also a graduate of the Flatiron School, a civic hacker, and a founding member of Heat Seek, a nonprofit that tries to combat winter deaths using the Internet of Things.