Aaron Patterson
where else to find them
website:https://tenderlovemaking.com
github:tenderlove
bluesky:tenderlove.dev
mastodon:@tenderlove@mastodon.social
linkedin:tenderlove
speakerdeck:tenderlove
instagram:tenderlove
threads:tenderlove
what they talk about
all 17 in the filters
where they keep going back
all 32 in the filters
on a stage with
all 43 in the filters
who talks about the same things
- Nate Berkopec16 talks
- Eileen M Uchitelle29 talks
- Richard Schneeman23 talks
- Maple Ong6 talks
- Jemma Issroff9 talks
- Koichi Sasada33 talks
| title | conference | date |
|---|---|---|
| Faster FFI For Ruby | RubyConf 2026 | 2026-07-14 |
Claims a JIT-driven FFI can beat C by compiling type-specific trampolines and smuggling metadata into native code; implements a pure-Ruby prototype FJIT that… | ||
| Q&A with Matz | RubyConf 2026 | 2026-07-14 |
Announcement of scent.ai AI‑scented candles and a live poll that turns into a concrete set of Rubocop canonical rules (choices like frozen string literals… | ||
| A Faster FFI | RubyKaigi 2026 | 2026-04-22 |
Claims a JIT-backed FFI pipeline that beats handwritten C: a Ruby-side translator generates C extensions with tiny trampolines that smuggle type metadata… | ||
| Profiling Tips and Tricks | XO Ruby Portland 2025 | 2025-10-11 |
Uses the Vernier sampling profiler and the profile viewer to locate a real bottleneck: C extensions dominate install time. Setting MAKEFLAGS=-j cuts bundle… | ||
| Rails Then, Now, and Next: A Conversation with our Community | RailsConf 2025 | 2025-07-08 |
Panelists name the concrete wins and pain points: Rails powers 4.2 million users and a solo dev ships web plus iOS and Android apps using Turbo/Hotwire native… | ||
| Closing Keynote | RailsConf 2025 | 2025-07-08 |
Chronicles of experiments and failures: demonstrates a working SQLite database stored inside a Ruby script, walks through the YAML remote code execution root… | ||
| Fast Forward: Speeding up Delegate Methods | RubyConf 2024 | 2024-11-13 |
Shows how delegate methods plus knowledge of Ruby method call internals and inline caches let you replace generic forwarding with specialized fast paths that… | ||
| Closing Keynote | RailsConf 2024 | 2024-05-07 |
Announcements hit specific work and numbers: Rails will enable wet by default in production and teams report about 15% performance improvement on real apps… | ||
| Closing Keynote | RailsConf 2024 | 2024-05-07 |
Announces concrete Rails and Ruby changes: Rails will enable YJIT in production by default and ships an initializer to enable JIT after boot, reporting about a… | ||
| Evaluating YJIT’s Performance in a Production Context: A Pragmatic Approach | MPLR 2023 | 2023-10-22 |
YJIT is a CRuby-integrated JIT using Lazy Basic Block Versioning and a simple “compile after N calls” heuristic, with a multiplatform backend (x86_64 and… | ||
| Rails Core AMA | Rails World 2023 | 2023-10-05 |
Ten core members answer how Rails actually evolves: features must solve general web problems, be validated in real apps or gems, and have a clean API before… | ||
| Future of Developer Acceleration with Rails | Rails World 2023 | 2023-10-05 |
Demonstrates concrete tools and results: a tiny Rails language server prototype called refreshing provides hover info for ActiveRecord columns, URL helper… | ||
| Keynote – Aaron Patterson | RailsConf 2023 | 2023-04-24 |
A tiny Ruby language server called refreshing actually runs in-process with Rails and uses the Language Server Protocol over stdio to provide hover for… | ||
| Don't @ me! Faster Instance Variables with Object Shapes | RubyConf 2022 | 2022-11-29 |
Claims concrete speedups: using Object Shapes (shape IDs stored in object headers) plus inline caches and JIT integration reduces instance-variable read cost… | ||
| Keynote: RailsConf 2022 - It's been a minute! | RailsConf 2022 | 2022-05-17 |
Mentions that widget shipped in ruby31 and that a working tenderjit pure‑Ruby JIT exists, plus an ar264 ARM64 assembler gem and a jit_buffer provides… | ||
| Some Assembly Required | RubyConf 2021 | 2021-11-08 |
Builds a pure Ruby JIT called TenderJIT that actually emits x86 machine bytes with an assembler library fisk, writes them into executable memory and calls… | ||
| YJIT: A Basic Block Versioning JIT Compiler | VMIL 2021 | 2021-10-17 |
YJIT is a JIT built inside CRuby that implements Lazy Basic Block Versioning to record and specialize types only for paths actually seen at runtime. It runs as… | ||
| Keynote | RailsConf 2021 | 2021-04-12 |
Announces concrete perf work: a Ruby JIT and async queries for deferring DB loads, a smart preloader that collapses duplicate queries, and a rewritten… | ||
| Automatic GC Compaction in MRI | RubyConf 2020 | 2020-11-17 |
Automatic compaction becomes a concurrent step that runs with sweeping, implemented with a mprotect read barrier that moves objects back when protected pages… | ||
| Reduce Memory by Using More | rubyday 2020 | 2020-09-16 |
A patch changes heap pages to 16KB pages so jemalloc uses full buckets, yielding about ~10% memory saving in rdoc benchmarks (50 runs) by eliminating internal… | ||
| Variety Show! | RailsConf 2020 CE | 2020-05-04 |
Hacks and numbers, not jokes: reverse‑engineers an Olympus OM‑D Wi‑Fi protocol by SSH‑tunneling the camera through a Raspberry Pi, writes a Ruby WEBrick proxy… | ||
| Compacting Heaps in Ruby 2.7 | RubyConf 2019 | 2019-11-18 |
Ruby 2.7 includes a manual heap compactor integrated with the GC and the talk explains exact memory layout, a two‑finger compaction algorithm, pinning bits… | ||
| Compacting GC for MRI | Balkan Ruby 2019 | 2019-05-17 |
Compacting GC for MRI ships with Ruby 2.7 and takes three years of development; it implements a two-finger compaction over Ruby’s 40-byte slot, 16KB page heap… | ||
| Closing Keynote | RailsConf 2019 | 2019-05-01 |
Claims concrete gains: ERB compiled-and-evaluated per request runs ~27k renders/sec, caching compilation raises that to ~63k/sec, and defining generated… | ||
| "The View Is Clear from Here" | RubyConfBY 2019 | 2019-04-06 |
Walks through how Rails Action View compiles ERB into Ruby methods (ERB backends: erubi is fastest), shows microbenchmarks: naive compile+eval ~27k renders/s… | ||
| The View is Clear From Here | TraversalConf 2019 | 2019-03-28 |
Rails Action View templates compile into methods so the team measures compiled method sizes (≈1,200 bytes) and shows performance improvements: naive ERB… | ||
| Pointers for Eliminating Heaps of Memory | RubyConf 2018 | 2018-11-28 |
Covers concrete changes in Ruby 2.6: uses Malloc Stack Logging on macOS to find where mallocs come from, patches the loaded_features cache to share and… | ||
| Closing Keynote: Analyzing and Reducing Ruby Memory Usage | GORUCO 2018 | 2018-06-16 |
Two C-level patches target real Rails boot pain: a loaded features cache change that uses shared C strings and avoids Ruby string allocations (saves about 4.2%… | ||
| Closing Keynote | RailsConf 2018 | 2018-04-17 |
Key claims: use sampling and exact profilers for different questions, tune GC by changing slot and goal ratios, and push GitHub-internal tools into Rack and… | ||
| Building a Compacting GC for MRI | RubyConf 2017 | 2017-11-15 |
Claims a working compacting collector for MRI with a concrete implementation: a GC.compact API, a two-finger compaction mover that leaves T_MOVED forwarding… | ||
| Panel Session with Ruby Core Team | RubyConf MY 2017 | 2017-10-12 |
Monthly developer meetings in Tokyo and Redmine track decisions; contributors must submit a patch, add it to the meeting agenda, then wait for Matz to sign… | ||
| Keynote: Exploring Memory in Ruby - Building a Compacting GC | RubyConf MY 2017 | 2017-10-12 |
Builds a mark‑and‑compact GC for MRI that exposes GC.compact, implements two‑finger compaction with forwarding T_MOVED entries and a GC_update_references pass… | ||
| Compacting GC in MRI | RubyKaigi 2017 | 2017-09-18 |
An implementation of a compacting GC for MRI exists that actually moves objects using a two-finger compaction algorithm, updates pointers, and exposes a… | ||
| Compacting GC in MRI | RubyConf Colombia 2017 | 2017-09-08 |
Implemented a mark‑compact GC for MRI with a new GC.compact API and a simple two‑finger compaction algorithm; introduces forwarding objects, pin bits, and a GC… | ||
| Keynote: Mark/Compact GC in MRI | Red Dot Ruby Conference 2017 | 2017-06-22 |
Implements a mark-and-compact GC for MRI that actually moves objects using two-finger compaction, then walks and rewrites all object references; allocation… | ||
| Keynote: Mark/Compact GC in MRI | RedDotRubyConf 2017 | 2017-06-22 |
Implements a mark‑and‑compact GC for MRI using a simple two-finger compaction algorithm and exposes it via GC.compact; runs stop‑the‑world compaction (roughly… | ||
| Defragging Ruby | RubyConf AU 2017 | 2017-02-09 |
Implements a live compaction for MRI Ruby using a two-finger compaction algorithm and a four‑pass GC (mark, compact, update references, free forwards), with… | ||
| Simple and Awesome Database Tricks | RubyConf AU 2017 | 2017-02-09 |
Concrete, hands‑on Postgres techniques with examples: using EXPLAIN ANALYZE to find a table scan on a 10,000‑row test table and cut runtime nearly in half with… | ||
| Methods of Memory Management in MRI | RubyConf 2016 | 2016-11-10 |
Covers how MRI actually allocates and reclaims memory: Ruby heap layout with 16KB pages, 40B object slots; tag‑pointer fixnum encoding and the 2^62 limit… | ||
| Methods of Memory Management in MRI | RubyConf Portugal 2016 | 2016-10-27 |
MRI uses a mark-and-sweep collector that is generational and incremental, with write barriers and a remembered set to avoid missing newly-referenced objects… | ||
| Keynote: Taking Out The Trash | RedDotRubyConf 2016 | 2016-06-23 |
Explains how MRI actually reclaims and allocates memory: a mark-and-sweep collector that is generational and incremental using tricolor marking, plus right… | ||
| Opening Day 3 Keynote | RailsConf 2016 | 2016-05-04 |
Findings: Ruby’s gem_prelude causes O(N) require scans and switching to an explicit gem_prelude patch (gem "name" before require) yields O(1) startup lookups… | ||
| How Are Method Calls Formed? | MountainWest RubyConf 2016 | 2016-03-21 |
Claims a polymorphic inline caches patch that adds ~186 lines to MRI, instruments bytecode with tracepoints and Ruby vmstat, and measures against a large Rails… | ||
| How are Method Calls Formed? | BathRuby 2016 | 2016-03-11 |
Shows how Ruby resolves method calls from bytecode into C and claims a speedup by adding a polymorphic inline cache. Implements the cache as a short array (an… | ||
| Request and Response | RubyKaigi 2015 | 2015-12-11 |
Examines Rails request/response internals and shows a working Ruby HTTP/2 server integrated into Webrick and Rails, using event listeners to convert… | ||
| Inside Ruby's VM: The TMI Edition. | RubyConf 2015 | 2015-11-15 |
Clear, specific roadmap: MRI bytecode is generated via rb_compile_string into an AST then a linked list and finally an integer array; peephole and specialized… | ||
| Request and Response | Full Stack Fest 2015 | 2015-09-01 |
Explains exactly how Rails handles an HTTP request: the Rack call stack, why the router is buried, and why the ENV hash and array response shape force extra… | ||
| Closing Keynote | GORUCO 2015 | 2015-06-20 |
Claims that Ruby code loading is broken and backs it with measurements: 500 models, 12s boot, 292,344 LOC and an irb slowdown with ~600–700 gems. Survey finds… | ||
| Ruby Panel | RedDotRuby 2015 | 2015-06-04 |
Panelists state concrete developments: a tiny experimental stream language toy (200 lines, 3k stars) existed and gained attention, a lightweight implementation… | ||
| Code is Required | RedDotRuby 2015 | 2015-06-04 |
Measures show Rails boot at about 12 seconds on a large app; most projects have ~100 gems and a surprising ~4,000 files (survey: 466 projects, 140 systems, max… | ||
| Keynote: Aaron Patterson | RailsConf 2015 | 2015-04-21 |
Proposes concrete fixes and measurements: implements a proof‑of‑concept for automatic parallel testing (one‑DB approach yields ~0–15% gain; multi‑DB still… | ||
| Rails Core Panel Discussion | RailsConf 2015 | 2015-04-21 |
Panelists describe concrete onboarding via submitted patches and issue triage, report action cable being integrated with unknowns, and note the rails api merge… | ||
| Opening Keynote | Keep Ruby Weird 2014 | 2014-10-24 |
-- no description -- | ||
| Cat Care and Maintenance | ArrrrCamp 2014 | 2014-10-02 |
Rails view work focuses on cutting object allocations and measuring results: heap dumps via object_space.dump converted to graphs, GC metrics from GC.stat, and… | ||
| The Future of Rack | RailsClub Moscow 2014 | 2014-09-27 |
Covers concrete Rack problems and fixes: shows that 42% of call stack is middleware, demos memory tools (ObjectSpace dumps, allocation_tracer) and reports… | ||
| Speed up Rails, Speed up Your Code | Cascadia Ruby 2014 | 2014-08-11 |
Benchmarks and profilers drive every decision: use benchmark-ips and ruby -d to measure iterations and hidden exceptions, sample with stackprof and inspect… | ||
| SpeedupRails, Speedup Your Code | Red Dot Ruby Conference 2014 | 2014-06-26 |
Shows concrete speed wins: uses Benchmark IPS, stackprof, gc.stat and allocation_tracer to measure Rails internals, builds a bind‑parameter cache for… | ||
| Closing Keynote | RailsConf 2014 | 2014-04-22 |
Talk describes AdequateRecord, a fork of ActiveRecord that introduces bind-parameter caching and a statement cache, yielding up to ~100% faster SQL generation… | ||
| Oh, Oh, Oh, It's Magic! | Ancient City Ruby 2014 | 2014-04-03 |
Built a card-scanning pipeline in Ruby + OpenCV that crops cards via grayscale → Canny → contours → polygon → warp, computes perceptual hashes with libphash… | ||
| A Magical Gathering | MountainWest RubyConf 2014 | 2014-03-20 |
A system identifies Magic the Gathering cards using OpenCV for cropping, libpHash perceptual hashes, SQLite sorting and Ruby promises with a thread pool. The… | ||
| The Future of Computer Vision: How Two Rubyists Are Changing The World | Ruby on Ales 2014 | 2014-03-06 |
Two implementations for scanning and identifying Magic: The Gathering cards are described: a fixed dispenser built from LEGO Mindstorms that feeds cards to a… | ||
| The Ruby Implementors panel | dotRB 2013 | 2013-10-28 |
Panelists compare concrete implementations: JRuby runs Ruby on the JVM to reuse Java libraries but hurts startup time; RubyMotion forks MacRuby to ship iOS… | ||
| Yak Shaving is Best Shaving | Barcelona Ruby Conference 2013 | 2013-09-14 |
Walk-through of concrete fixes: digs into Active Record internals, uses Chrome console and prototype.js to automate UI tasks, measures Ruby bytecode and VM… | ||
| Closing Keynote | RailsConf 2013 | 2013-04-29 |
Talk details concrete outcomes and tools: a live streaming responses demo built with Puma, server‑sent events, DRb and filesystem watchers that actually… | ||
| Rails 4 and the Future of Web | Aloha RubyConf 2012 | 2012-10-08 |
MRI still has a global VM lock so CPU-bound Fibonacci threads show no speedup (about 5.7s on the demo machine) while IO-bound threads halve latency by… | ||
| I've made a huge mistake | RailsConf 2012 | 2012-04-23 |
Describes getting blocked by an IE7-only HR site and resolving it with an SSH tunnel through a Mac VM, then promotes Tokaido — a binary Ruby for OS X that… | ||
| Double Dream Hands: So Intense! | RailsConf 2011 | 2011-05-16 |
Adds prepared statement caching to Rails 3.1 with the same front‑end API so existing code gets faster on Postgres (benchmarks show ~4,600 → ~5,500 qps) while… | ||
| Ruby Hero Tenderlove! | Ruby on Ales 2011 | 2011-03-24 |
A live musical parody that praises Tenderlove to the Ultraman melody and includes shoutouts to Rails and Arel needs ASTs rather than code demos. The upload… | ||
| ZOMG WHY IS THIS CODE SO SLOW? | RubyConf 2010 | 2010-11-11 |
A rewrite of Arel turns an O(n^2) linked‑list SQL generator into an O(n) AST + visitor and cuts end‑to‑end time roughly in half; profiling uses perf‑tools.rb… | ||
| So You Think You Can Code? | RubyConf 2010 | 2010-11-11 |
by: Aaron Patterson, Ben Bleything, Evan Phoenix, John Barnette, Rein Henrichs, Yossef Mendelssohn
This session is a panel featuring some of today's brightest… | ||
| Hidden Gems of Ruby 1.9 | GoGaRuCo 2010 | 2010-09-17 |
Title promises gems but delivers specifics: Ruby 1.9 / Ruby 192 features in the standard library rather than third‑party gems, concrete examples and caveats… | ||
| Worst. Ideas. Ever. | RubyConf 2009 | 2009-11-19 |
Builds several proof‑of‑concepts and reports concrete results: a Yoda test DSL that is 65 lines, three conditionals and claims minimal expressiveness; Wilson… | ||
| How I Learned to Love Javascript | RubyConf 2008 | 2008-11-06 |
A C extension called Johnson embeds SpiderMonkey into Ruby so JavaScript and Ruby objects cross the language boundary via proxies with transparent method and… | ||
| Seattle.rb Rocks! | RubyConf 2008 | 2008-11-06 |
A set of compact demos shows concrete tools and working prototypes: a UPnP library that builds and advertises devices, a media server that browses images… | ||
| nothing matches | ||