Make your Rails app faster than a speeding train!

img/cover-sm.jpg

Learn how to transform your snail-paced Rails app into a sub-100 millisecond powerhouse.

The Complete Guide to Rails Performance is a full-stack course that gives you the tools to make Ruby on Rails applications faster, more scalable, and simpler to maintain.

img/cover-sm.jpg

Performance is hard.

Why are most production Rails applications extremely slow?

They didn't start that way. Your app started as a lean, mean web machine.

When did pages start taking 5 seconds to load?

Searches bog down, your caches are bursting at the seams, and your server is constantly out of memory. 5 seconds is a lifetime.

img/lost.gif
img/thisisfine.jpg

Where did it all go wrong?

Hacker News says it's because Ruby is fatally flawed. It's a slow language, doomed to fail in a land of Go, Javascript, Erlang and others. That’s BS.

Look at Shopify, Github and Basecamp. They're all Rails applications and some of the most popular websites in the world. How do these Rails applications achieve sub-100 millisecond response times at massive (dare I say, Web™) Scale?

Why is this so difficult? Is DHH sacrificing chickens in his backyard?

The secret is that Rails apps aren't slow by default - they die a slow death by a thousand papercuts. This course is about each one of those thousand papercuts.

But you don't have a team of 30 or more experienced programmers, like Shopify, Github and Basecamp do. And let's be real - you're not DHH. Maybe you're a startup CTO with a business to run - you can't spend hundreds of hours tracking down performance bugs.

img/pokemon.gif
Almost every Rails application suffers from the same performance problems. This course will show you the techniques that will give you the speeding bullet of a website that your customers demand.

Introducing:
The Complete Guide to Rails Performance

My name is Nate Berkopec. I'm a Rails developer and a speed freak.

Over the past 4 years, I've seen dozens of different Rails codebases. Many were for well-funded startups, from Ivy-League incubators like YCombinator or 500Startups. Others were the passion projects of developers looking to start a side business.

But I've never met a Rails application I couldn't make faster.

What is fast?

Here are the numbers.

App server average response time Status
< 50ms Fast!
< 300ms Average
>= 300ms Slow!

Those numbers are the standard for Rails applications that serve up HTML - your typical "Basecamp-style" application. For simple API servers that serve JSON only, I divide by 2.

And for the frontend, here's what I'd expect to see:

Browser load time Status
< 500ms Fast!
< 2 seconds Average
> 2 seconds Slow!

These are the numbers I'd expect to see in Google Analytics Site Speed Tool or New Relic's Browser analytics. These are not the load times I'd expect from checking your site load in your local browser - most people's machines and internet connections are slower than your average developer's!

If you're in the "FAST" region of these numbers, well, congrats - this course won't help you. But if you're in the "AVERAGE" to "BAD" group, well, then I can help.

Performance is hard. Let me help you.

Performance isn't easy. Delivering an HTML response to the browser actually involves hundreds of technologies and levels of the stack. Constructing a fast website is a bit like constructing a house of cards - a problem anywhere in the stack can cause it all to collapse.

Any of these levels or stacks can go wrong, causing a slowdown in your application:

Front-end

HTML, CSS and JavaScript, rendering quirks and browser preloaders.

Network

SSL/TLS, HTTP, HTTP/2, TCP, WebSockets.

Ruby

Rails, the numerous gems you use in your application, and your runtime.

Server

Do you know how your memory allocator may be affecting your performance?

Performance optimization on a full-stack web application is like looking for a black cat in a coal cellar - any one of a thousand things could be the bottleneck for your application. Where do you even start?

Worse, no full-stack developer who writes code for a living can keep on top of all of these developments at once. My guide for optimizing Rails applications covers the entire stack.

Wouldn't it be amazing if you could look over the shoulder of an experienced, full-stack Rails developer and watch as they diagnose and solve the performance problems of one of the most popular Rails applications in the world?

Here's your chance.

WATCH ME OPTIMIZE PRODUCTION RAILS APPS AND APPLY THE LESSONS BACK TO YOUR OWN SITE.

I’ve created an exhaustive checklist for speeding up Rails applications:

  • Implemented 34 strategies that have been tested by more than 1 million unique visitors.
  • Identified the 4 strategies that account for the most performance impact. These strategies have solved 80% of performance problems in most applications.
  • Used more than 20 different SaaS providers, performance-oriented Rubygems, backend service providers and more and found the perfect technical stack to make the entire performance optimization process simple (even if you’re a new developer or someone with a deep technical background).

These strategies have been tested and proven on my clients' sites and others.

While preparing this course, I’ve implemented each of my performance strategies on production websites like rubygems.org, sidekiq.org, the official Ruby website, and more.

Look over my shoulder while I work

You’ll get to watch, through screencasts and video lessons, exactly how (and more importantly, why) I optimized these real-world production websites.

Production websites will serve as your example and guide to each and every one of the strategies in this guide.

This is an opportunity to pair program with an experienced Rails developer and work on a high-scale application.

Easy-to-follow, even for bloated legacy apps

You’ll see the before and after, comparing the impact of each strategy through actual production metrics. It’s broken down into simple, step-by-step processes that cover every layer of a Rails application’s stack.

At the end of each lesson is a simple checklist so you can implement what you’ve learned. There’s no guesswork. Just follow the plan, and your performance analytics will start sloping down and to the right.

img/newrelic.jpg

What does this course cover?

The entire Complete Guide to Rails Performance — all strategies, checklists and screencasts — are broken into four modules to ensure that you don’t get overwhelmed. You'll easily and methodically chip away at your Rails application’s performance.

img/Profiling.png

Profiling & Benchmarking

Learn how to identify what areas are causing bottlenecks. Don’t waste time “spraying and praying”, optimizing every thing on your site. Learn how to identify what areas account for 80% of the slowdown.

img/Frontend.png

Frontend

I cover all the performance problems you can encounter in JavaScript, HTML, and CSS. In addition, I’ll deep dive on HTTP and how the browser works, so that you can reduce your frontend load times by more than 80%.

img/Backend.png

Backend

We'll discuss everything in the Ruby and Rails world that can make your application slow. What gems to use, which to avoid, and how to write Ruby that's zippy quick. You'll learn about how Rails works while avoiding the common pitfalls that make Rails apps slow.

img/Environment.png

Environment

This is truly a full-stack book - I'll discuss asset delivery, CDNs, DNS, server hardware and more.

This course covers the "average" Rails application stack, though there are specific strategies and lessons on JRuby and alternative memory allocators. We'll discuss when it is and when it isn't appropriate to leave the "golden path."

10 more things you'll learn in this course:

Will JRuby (or Opal or Rubinius) make my application faster?

Which application server (Unicorn, Puma, Passenger, etc.) is best for my application?

How can I make sure I'm not over-scaled and running on too many servers?

How can I debug a slow ActiveRecord query?

What special areas do I need to look for as my application scales?

What cache backend should I choose?

How can I track down and fix a memory leak?

How can I use Turbolinks without breaking Google Analytics or any of my other JavaScript?

How do I make my Rails application as fast as a Sinatra app?

What's the optimal order of elements in the head tag?

The Complete Guide to Rails Performance course is available online.
Here is what your course will include:

The Core Guide

350 Pages in PDF, HTML, E-Reader (EPUB/MOBI) and JSON formats

Available in just about every format possible, you can read The Complete Guide on any device you want. No MOOC software required - the Complete Guide is distributed as a simple .zip file!

A Step-by-Step Checklist

Included in the Complete Guide is a list of more than 100 action items for making your Rails application as fast as possible.

img/cover-md.jpg
img/screencast.png

Screencasts and Labs

Screencasts: Not just rehashing the lessons - 5+ hours of all new material

Included in the Full Package is 5+ hours of screencasts where you'll watch me implement the included strategies on real, production websites.

Labs: Learn by Doing

Many lessons in the Complete Guide also have hands-on exercises, where you'll practice implementing the strategies taught in the Guide.

Even More!

Private Slack Channel

A private Slack channel where you can discuss Rails performance with me and all of the other course participants.

Live Q&A Sessions and an Interview series

Live Q&A Sessions with me, and a multi-part interview series with accomplished Rubyists. Interviews include DHH himself, Mike Perham (Sidekiq), Sean Griffin (ActiveRecord maintainer), Richard Schneeman (Heroku), Sam Saffron (Discourse), Eileen Uchitelle (Basecamp), and Evan Phoenix (Puma).

img/slack.jpg
How will you read it? Immediately after purchasing, you'll be sent a private link where you can jump in and start the course immediately. You could be watching the first workshop 5 minutes from now.

Just The Book

$99

img/icon_lessons.png 4 modules with over 30 lessons covering 350 pages of content.
img/icon_slack.png A private Slack channel with the author and your fellow course participants.
img/icon_kindle.png PDF/Kindle/EPUB/Mobi versions for reading on the go.

The Web-Scale Package

$199

img/icon_lessons.png 4 modules with over 30 lessons covering 350 pages of content.
img/icon_slack.png A private Slack channel with the author and your fellow course participants.
img/icon_kindle.png PDF/Kindle/EPUB/Mobi versions for reading on the go.
img/icon_screencasts.png Over 20 screencasts, totaling more than 5 hours of HD video content not covered by the lessons.
img/icon_qa.png 6 live video Q&A sessions. If I was a dork, I'd call them webinars.
img/icon_interview.png An interview series with accomplished Rubyists.

Corporate Package

Custom

Sign Up My Company

A corporate license for the complete and unabridged Complete Guide to Rails Performance, providing access for your entire team.

Everything that's included in the Web-Scale Package.

Private Q&A session with me and your team.

1-Day Performance Workshop where I pair with your team on your application.

100% Satisfaction Guaranteed

If you do what I show you and don't get results, I will give you 100% of your money back. If you're not completely satisfied, I don't want your money.

About the Author

Nate Berkopec is a Ruby performance guy. Nate appeared on Shark Tank, ABC's primetime entrepreneurship show, when he was nineteen years old. He's worked at several startups over the years, and now writes a blog about performance-related Ruby topics.

Nate is a contributor to several open source projects, such as Ruby on Rails and Sentry. He has been a speaker at GORUCO, RubyConf, and RailsConf.

img/nate.jpg

Frequently Asked Questions

Is there anyone I can contact during the course if I have questions about my site in particular?

Yes. All course participants receive access to a private Slack channel where you can discuss problems and solutions. I'll be sitting in that channel all day. Making your site faster is my job.

Will this course continue to be updated? And will I get free access to future versions?

Yes. The software world changes quickly. Any changes to the course are free to you forever - you will never be asked to upgrade or buy "version two" or buy again when Rails 8 comes out.

How much more is in the course vs. what you already put out on your blog?

About 25% of the material in the course is broadly covered by my blog. However, even for material that I've covered on the blog already, this course goes much further in depth and expands on those posts. Think of my blog as the introduction. This course is the college class. All videos, checklists and screencasts are all-new material.

Do I need to be an advanced Rails programmer or Rubyist to understand this course?

No. This course assumes about 3 months of Rails experience, no more. I hate technical writing that assumes the reader is some kind of genius and doesn't explain (or even just link to an explanation) everything that's going on. In addition, even if you're not *completely* sure you've understood a topic, you can ask me and your fellow participants on our private Slack channel. Finally, if you buy the course and decide its over your head, I'll refund your money. No questions asked.

I can't afford this course!

Think about it this way - can your business (or the business you work for) afford to be slow? Can you afford users quitting when they get frustrated with your site's speed? In 5 years, will you wish your site was slower? No. You'll wish it was faster.

Does this course apply to my small site? I only get 10 requests per minute.

Customers demand speed - they won't wait around for you to figure out. If you (or your customers) are not satisfied with the speed of your Rails application, this course will work for you.

What stack will be covered? What about frontend JS frameworks?

This course focuses on the typical Rails stack. In my opinion, that includes a SQL relational database. I include a specific section on Postgres, because it has several unique features and it's so widely used. JS frameworks are not covered (I won't tell you how to optimize React, for example), but I will cover the specific needs of an API-only application.

Is this course appropriate for legacy applications?

I've worked on a lot of "legacy" applications. They tend to be slow, so this course *focuses* on legacy applications. However, I'm not going to talk about optimizing previous major versions of anything - Rails 3, Ruby 1.9, etc. As of time of writing (March 2016), this course covers both Rails 4 and Rails 5.

Can I upgrade to the Web-Scale Package later?

Yes.

Just The Book

$99

img/icon_lessons.png 4 modules with over 30 lessons covering 350 pages of content.
img/icon_slack.png A private Slack channel with the author and your fellow course participants.
img/icon_kindle.png PDF/Kindle/EPUB/Mobi versions for reading on the go.

The Web-Scale Package

$199

img/icon_lessons.png 4 modules with over 30 lessons covering 350 pages of content.
img/icon_slack.png A private Slack channel with the author and your fellow course participants.
img/icon_kindle.png PDF/Kindle/EPUB/Mobi versions for reading on the go.
img/icon_screencasts.png Over 20 screencasts, totaling more than 5 hours of HD video content not covered by the lessons.
img/icon_qa.png 6 live video Q&A sessions. If I was a dork, I'd call them webinars.
img/icon_interview.png An interview series with accomplished Rubyists.

Corporate Package

Custom

Sign Up My Company

A corporate license for the complete and unabridged Complete Guide to Rails Performance, providing access for your entire team.

Everything that's included in the Web-Scale Package.

Private Q&A session with me and your team.

1-Day Performance Workshop where I pair with your team on your application.

100% Satisfaction Guaranteed

If you do what I show you and don't get results, I will give you 100% of your money back. If you're not completely satisfied, I don't want your money.