~/devreads

#ruby

43 posts

20 Jan

11 min read

In my time as a developer, I have noticed that one of the most common ways my coworkers spend time coding outside of work is by developing little code snippets or apps that solve problems in their everyday lives. From household budgeting, to managing workouts on rowing machines, to generating a Taco Bell order, these projects allow devs to explore…

ruby

4 Dec 2025

5 min read

Picture this: you find a charming old board game at a garage sale, bring it home, gather some friends—and snap. The 50-year-old plastic components break instantly. You search the web for help to replace this fun and unique game mechanic but there’s nothing to be found. So naturally, you roll up your sleeves and build your own mobile version. No…

rubymobilerailsboard game app

2 Dec 2025

3 min read

It's the most wonderful time of the year - Christmas Advent of Code time! Advent of Code is an Advent Calendar style series of programming puzzles put out each year, starting on December 1st leading up to Christmas. The puzzles are super festive and ramp up in difficulty over the course of the month. Programmers of every level can participate,…

ruby

27 Nov 2025

4 min read

Shipping new features on legacy Rails applications requires deep codebase context. The rails-mcp-server gem closes the gap between AI agents and your Rails projects, enabling more relevant code analysis and context aware refactoring suggestions. Whether you're dealing with tech debt in a brownfield application or building new greenfield features, this tool can help you move faster with confidence. The Model…

rubyrailsmcpai

18 Nov 2025

4 min read

Claude code is a powerful AI toolset that runs right in your terminal. While providing a lot of impressive utility, it also suffers from the issues that arise from similar AI toolings with the addition of an expensive pricing model. Context is Important To me, the main selling point for Claude Code is its ability to read through your entire…

rubyworkflowrailsai

8 Apr 2025

Richard Schneeman 5 min read

Do you run Rails or pure Ruby applications on Heroku? If so, it’s important to be aware of upcoming end-of-life (EOL) dates for both your stack and your Ruby version. The Heroku-20 stack, built on Ubuntu 20.04 LTS, will reach EOL for standard support in April 2025. Ruby 2.7 has already passed its EOL, meaning […] The post Migrating Your…

newscloud infrastructuredeveloper toolsruby

7 Apr 2023

Emmanuel Joubaud 12 min read

When it comes to the communication between microservices, there are 2 possible extremes: All-sync: whenever a service needs data from another service, it fetches it via a synchronous API call (REST, gRPC, GraphQL). Service calls service calls service… which tends to evolve into layers of APIs, where each layer has dependencies on the next. All-async: no sync calls between services,…

microservicesgosoftware-engineeringsoftware-architectureruby

31 Mar 2023

Emmanuel Joubaud 8 min read

This is an introduction to how we’ve implemented microservices at a mid-size scale-up called Jobteaser , with a mix of Go and Ruby service chassis, gRPC APIs and data replication via Kafka. Foundation: The service chassis Back in early 2019, when Jobteaser decided to get serious about breaking up its decade-old Rails monolith into microservices, we assembled a Foundation team…

microservicesgosoftware-architecturerubysoftware-engineering

7 Feb 2022

1 min read

We were recently testing PassKit as a way of managing membership cards for giving societies. Passkit is very up-front that they are not a CRM and strongly suggest using their API for integrating with outside systems, or for editing pretty much any data. To kick the tires, we set up some very basic scripts to connect to the Passkit API.…

web developmentruby

1 Feb 2022

19 Jan 2022

Ethan Limchayseng 9 min read

This article was originally authored by Srinath Ananthakrishnan, an engineer on the Heroku Runtime Networking Team Summary This following story outlines a recent issue we saw with migrating one of our internal systems over to a new EC2 substrate and in the process breaking one of our customer’s use cases. We also outline how we […] The post The Adventures…

engineeringawscloud infrastructurerubysecurity

16 Sept 2020

Richard Schneeman 14 min read

Your app is slow. It does not spark joy. This post will use memory allocation profiling tools to discover performance hotspots, even when they're coming from inside a library. We will use this technique with a real-world application to identify a piece of optimizable code in Active Record that ultimately leads to a patch with […] The post The Life-Changing…

engineeringcloud infrastructuredeveloper toolsperformance optimizationruby

8 Jul 2020

Richard Schneeman 13 min read

When API requests are made one-after-the-other they’ll quickly hit rate limits and when that happens: If you provide an API client that doesn’t include rate limiting, you don’t really have an API client. You’ve got an exception generator with a remote timer. — Richard Schneeman Stay Inside (@schneems) June 12, 2019 That tweet spawned a […] The post How We…

engineeringapisdeveloper toolsplatform updatesruby

25 Dec 2019

Richard Schneeman 1 min read

When Heroku launched in 2007 there was only a single Ruby version that could be used on the platform. In 2012 Heroku began to support multiple Ruby versions. Since then, we’ve had a holiday tradition of releasing the new versions of Ruby on the same day they come out, which always happens on Christmas day […] The post Ruby 2.7.0:…

newsdeveloper toolseducationruby

31 Oct 2019

Jason Draper 6 min read

As an experiment to see how static typing could help improve our team’s Ruby experience, we introduced Sorbet into a greenfield codebase with a team of 4 developers. Our theory was that adding static type checking through Sorbet could help us catch bugs before they go into production, make refactoring easier, and improve the design […] The post Static Typing…

engineeringdeveloper toolsruby

12 Jul 2019

Richard Schneeman 8 min read

For quite some time we've received reports from our larger customers about a mysterious H13 – Connection closed error showing up for Ruby applications. Curiously it only ever happened around the time they were deploying or scaling their dynos. Even more peculiar, it only happened to relatively high scale applications. We couldn't reproduce the behavior […] The post Puma 4:…

engineeringcloud infrastructuredeveloper toolsperformance optimizationruby

20 Mar 2019

Amy Unger 25 min read

This blog post is adapted from a talk given by Amy Unger at RailsConf 2018 titled "Knobs, buttons & switches: Operating your application at scale." We've all seen applications that keel over when a single, upstream service goes down. Despite our best intentions, sometimes an unexpected outage has us scrambling to make repairs. In this […] The post Seven Ways…

engineeringdeveloper toolsperformance optimizationrailsruby

27 Feb 2019

Richard Schneeman 7 min read

Debugging is an important skill to develop as you work your way up to more complex projects. Seasoned engineers have a sixth sense for squashing bugs and have built up an impressive collection of tools that help them diagnose and fix bugs. I’m a member of Heroku’s Ruby team and creator of CodeTriage and today […] The post Debugging in…

engineeringdeveloper toolsrailsruby

26 Dec 2018

Jonan Scheffler 5 min read

The Ruby committers have again continued their annual holiday tradition of gifting us a new Ruby version: Ruby 2.6 was released today, including the long awaited Just-In-Time (JIT) compiler that the Ruby team has been working on for more than a year. Just-In-Time compilation requires Ruby to spin up a compiler process on startup, and […] The post Ruby 2.6…

engineeringdeveloper toolseventsruby

16 Oct 2018

Richard Schneeman 9 min read

Rails applications that use ActiveRecord objects in their cache may experience an issue where the entries cannot be invalidated if all of these conditions are true: They are using Rails 5.2+ They have configured config.active_record.cache_versioning = true They are using a cache that is not maintained by Rails, such as dalli_store (2.7.8 or prior) In […] The post Cache Invalidation…

engineeringdeveloper toolsperformance optimizationrailsruby

24 Jul 2018

19 Jun 2018

Richard Schneeman 4 min read

All previously released versions of Sprockets, the software that powers the Rails asset pipeline, contain a directory traversal vulnerability. This vulnerability has been assigned CVE-2018-3760. How do I know if I'm affected? Rails applications are vulnerable if they have this setting enabled in their application: # config/environments/production.rb config.assets.compile = true # setting to true makes […] The post Rails Asset…

engineeringdeveloper toolsrailsrubysecurity incidents

6 Apr 2018

Etienne Stalmans 6 min read

At Heroku we consistently monitor vulnerability feeds for new issues. Once a new vulnerability drops, we jump into action to triage and determine how our platform and customers may be affected. Part of this process involves evaluating possible attack scenarios not included in the original vulnerability report. We also spend time looking for “adjacent” and […] The post Ruby CVE-2017-17405:…

engineeringdeveloper toolsrubysecuritysecurity incidents

13 Dec 2017

Caleb Hearth 5 min read

Jekyll, the static website generator written in Ruby and popularized by GitHub, is a great candidate for being run on Heroku. Originally built to run on GitHub Pages, running Jekyll on Heroku allows you to take advantage of Jekyll’s powerful plugin system to do more than convert Markdown to HTML. On my blog, I have […] The post Jekyll on…

engineeringdeveloper toolsopen sourceplatform updatesruby

11 Jul 2017

Richard Schneeman 9 min read

I recently demonstrated how you can use Rack Mini Profiler to find and fix slow queries. It’s a valuable tool for well-trafficked pages, but sometimes the slowdown is happening on a page you don't visit often, or in a worker task that isn't visible via Rack Mini Profiler. How can you find and fix those […] The post Using Heroku’s…

newsdatabaseperformance optimizationpostgresruby

28 Feb 2017

Richard Schneeman 5 min read

Heroku bumped its Bundler version to 1.13.7 almost a month ago, and since then we’ve had a large number of support tickets opened, many a variant of the following: Your Ruby version is <X>, but your Gemfile specified <Y> I wanted to talk about why you might get this error while deploying to Heroku, and […] The post Bundler Changed…

newsruby

26 Dec 2016

Jonan Scheffler 27 min read

The Ruby maintainers continued their annual tradition by gifting us a new Ruby version to celebrate the holiday: Ruby 2.4 is now available and you can try it out on Heroku. Ruby 2.4 brings some impressive new features and performance improvements to the table, here are a few of the big ones: Binding#irb Have you ever used p or puts…

newsruby

10 Nov 2016

Jonan Scheffler 19 min read

At RubyKaigi I caught up with Matz, Koichi, and Aaron Patterson aka Tenderlove to talk about Ruby 3×3 and our path so far to reach that goal. We discussed Koichi’s guild proposal, just-in-time compilation and the future of Ruby performance. Jonan: Welcome everyone. Today we are doing an interview to talk about new features coming […] The post Ruby 3×3:…

newsruby

12 May 2016

9 May 2016

Sophie DeBenedetto 15 min read

It's been one year since Action Cable debuted at RailsConf 2015, and Sophie DeBenedetto is here to answer the question in the minds of many developers: what is it really like to implement "the highlight of Rails 5"? Sophie is a web developer and an instructor at the Flatiron School. Her first love is Ruby […] The post Real-Time Rails:…

newsapp architecturedeveloper toolsrailsruby

2 May 2016

Richard Schneeman 11 min read

Rails 5 will be the easiest release ever to get running on Heroku. You can get it going in just five lines: $ rails new myapp -d postgresql $ cd myapp $ git init . ; git add . ; git commit -m first $ heroku create $ git push heroku master These five lines […] The post Container-Ready Rails…

newscloud infrastructureproduct featuresrailsruby

17 Feb 2016

Matthew Creager 3 min read

Based in Tel Aviv, Israel, Vitali Margolin is the Head of R&D for Roomer. Vitali leads a team of seven developers who built and operate the travel marketplace www.roomertravel.com and the travel protection service Life Happens, both running on Heroku. What are you running on Heroku? The four big projects are: the Roomer website, our […] The post Building a…

newscustomersproduct featuresredisruby

23 Jan 2016

Richard Schneeman 9 min read

Rails 5 has been brewing for more than a year. To take advantage of new features, and stay on the supported path, you'll need to upgrade. In this post, we'll look at the upgrade process for a production Rails app, codetriage.com. The codebase is open source so you can follow along. Special thanks to Prathamesh […] The post Upgrading to…

newsdeveloper toolsplatform updatesrailsruby

25 Dec 2015

Terence Lee 3 min read

Happy Holidays from Heroku. Congratulations to the ruby-core team on a successful 2.3.0 release, which is now available on Heroku — you can learn more about Ruby on Heroku at heroku.com/ruby. We had the pleasure of speaking with Matz (Yukihiro Matsumoto), the creator of Ruby and Chief Ruby Architect at Heroku, about the release. What’s […] The post Celebrating Ruby…

newsdeveloper toolsruby

4 Feb 2015

Koichi Sasada 10 min read

This article introduces incremental garbage collection (GC) which has been introduced in Ruby 2.2. We call this algorithm RincGC. RincGC achieves short GC pause times compared to Ruby 2.1. About the Author: Koichi Sasada works for Heroku along with Nobu and Matz on C Ruby core. Previously he wrote YARV Ruby's virtual machine, and he […] The post Incremental Garbage…

engineeringdeveloper toolsperformance optimizationruby

14 Jan 2015

Richard Schneeman 2 min read

Debugging a large codebase is hard. Ruby makes debugging easier by exposing method metadata and caller stack inside Ruby's own process. Recently in Ruby 2.2.0 this meta inspection got another useful feature by exposing super method metadata. In this post we will look at how this information can be used to debug and why it […] The post Debugging Super…

engineeringdeveloper toolsrailsruby

11 Nov 2014

Matthew Creager 1 min read

We’re very excited that our Heroku colleagues Matz, Nobu and Ko1 will all be visiting from Japan soon to attend RubyConf, and it’s especially serendipitous that it is happening in such close proximity to Thanksgiving. Not only is Thanksgiving one of the few holidays that Japan and the U.S. share, it’s a holiday that brings […] The post Announcing A…

newseventsruby

3 Nov 2014

Richard Schneeman 3 min read

Performance is important, and if we can’t measure something, we can’t make it fast. Recently, I’ve had my eye on the ActionDispatch::Static middleware in Rails. This middleware gets put at the front of your stack when you set config.serve_static_assets = true in your Rails app. This middleware has to compare every request that comes in […] The post Benchmarking Rack…

engineeringperformance optimizationrailsruby

13 Jun 2014

12 Jun 2014

11 Jun 2014

8 Mar 2014

9 Aug 2013