~/conference

RubyConf 2021

Focused on fostering the Ruby programming language and the robust community that has sprung up around it, RubyConf brings together Rubyists both established and new to discuss emerging ideas, collaborate, and socialize in some of the best locations in the US.

Ruby developers, Rails developers, backend engineers, engineering managers, test and QA engineers, tooling and infrastructure engineers

RBS and TypeProf static typing; Ractors isolated parallelism; YJIT and MJIT JITs; TenderJIT native-code JITing; Sorbet with LLVM compilation; method metaprogramming techniques; optimizing Ruby memory layout; parallel testing with Ractors; Rubocop security linting; automated API documentation with Rswag; Docker for Rubyists; debugging and partial backtraces

titleauthorlength
Keynote: Beyond Ruby3.0yukihiro Matsumoto 'Matz'47m
Ruby 3.0 ships concrete features not promises: RBS and TypeProf enable static typing via external signatures and abstract interpretation rather than language…
Talk on
Some Assembly RequiredAaron Patterson36m
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…
Talk on
Keynote: Finding Purpose and Cultivating SpiritualityAndrea Guendelman46m
Leaves a legal career after twelve years, builds a 2015 social network for Latinos that lacks a business model, iterates into Wall Breakers and by 2020–2021 it…
Talk on
Your Team, as SagaBetsy Haibel29m
Argues teams reshape behavior by editing the stories they tell, using concrete techniques: MICE system for classifying conflicts, world‑building to expose…
Talk on
Delightfully Fashionable Lemurs in Decorating RubyBrandon Weaver30m
Explains concrete decorators: builds a caching wrapper by capturing instance_method and the unbound method then using define_method to rebind and store…
Talk on
Job Fair Part 1: Weedmaps, MX, and DoximityWeedmaps, Doximity24m
Three companies state concrete scale and engineering facts so decisions rest on numbers not buzz. mx reports partnerships with over 2,000 banks and credit…
Talk on
Job Fair Part 2: Homebot, Vimeo, and GrailedHomebot, Vimeo, Grailed35m
Three companies state concrete scale and tech: Homebot is a Denver startup claiming to help people build retirement wealth from home equity, runs Ruby on Rails…
Talk on
Parsing RubyKevin Newton32m
Builds a simple grammar, implements lexical tokenization and shift/reduce parsing, and shows concrete tradeoffs: the standard-library Ripper hooks scanner and…
Talk on
Taking the 737 to the MaxNickolas Means32m
A detailed timeline ties specific design choices to outcomes: Boeing adds MCAS to mimic older 737 handling, lets it run from a single angle-of-attack sensor…
Talk on
Lightning TalksEvan Phoenix42m
Session runs as many five-minute slots and delivers specific takeaways: a tool called gitlint commit-hook that enforces subject/body rules and shows…
Lightning on
On Being an Early Career Dev in Your 30sBen Greenberg31m
Argues that second‑career devs hit two friction points: hiring filters that label résumés overqualified but underprepared and pay‑cut privilege that narrows…
Talk on
Q&A with MatzEvan Phoenix, yukihiro Matsumoto 'Matz'36m
Announces YJIT in Ruby 3.1 with MJIT kept for non‑x86 and hotspot optimization, runtime choosing JITs by profiling, and a public release target around…
Talk on
Keynote: On the Care and Feeding of Feedback CyclesElisabeth Hendrickson45m
Argues for shrinking feedback loops with concrete changes: remove Gerrit removed style long PR queues, switch to live on main or pairing so merges happen in…
Talk on
Fake Your Test Away: How To Abuse Your Test DoublesJenny Shih27m
Claims that overused test doubles make suites brittle and unhelpful and shows concrete fixes in Ruby: a few real examples with ActiveRecord callbacks…
Talk on
The Mindset of DebuggingKyle d'Oliveira26m
Sets a repeatable debugging process: observe, form a hypothesis, run an experiment, analyze, repeat. Walks through a concrete customer bug where contact phone…
Talk on
Your First Open-Source ContributionRachael Wright Munn32m
Explains step‑by‑step how to find a repo, read contributing.md, fork the repo and reproduce an issue, prefer projects with docker and Codespaces and a familiar…
Talk on
I Read It But Don’t Get It, or How to Tackle Technical TextsSteve Lynch32m
Claim: readers who make thinking visible learn technical books faster by using three focus questions and tracking notes. Concrete tools are index card + sticky…
Talk on
The Audacious ArrayAriel Caplan38m
Claim: Ruby arrays serve as randomizer/sample(n), 2D map via transpose.reverse/rotate, stack/queue via push/pop/unshift/shift, and as set-like containers with…
Talk on
To mock, or not to mock?Emily Giurleo28m
Concrete rule set: use mocks when one of three questions is true — the test uses expensive resources, the code is non‑deterministic, or the component’s state…
Talk on
Blank Page Panic! Creating Confidence with TDDElayne Juten21m
Whiteboard fear becomes a repeatable process: write pseudocode dump then focused specs, drive code with Test-Driven Development and RSpec, follow each failing…
Talk on
The art of deleting codeClaudio Baccigalupo27m
Describes a repeatable process that actually removed 50,000 lines of Ruby code at work, using concrete tools: git blame, git log --follow, git bisect to find…
Talk on
Learning Ractor with RaftMicah Gates29m
Builds a simple Raft implementation from scratch inside one Ruby process using Ractor, creating five Ractors that elect a leader, append and replicate an…
Talk on
Vertical Assignment in RubyKevin Kuchta25m
Claims a working vertical assignment by adding a vequals operator implemented as a unicode token, and demonstrates it with Ripper and TracePoint plus eval and…
Talk on
Keeping Developers Happy with a Fast CIChristian Bruckmayer28m
Shopify runs ~210,000 Ruby tests (adding ~30,000/year), executes ~1,000 builds/day and ~100M test runs/day, and treats CI as production: Buildkite + Google…
Talk on
Schrödinger's Error: Living In the grey area of ExceptionsSweta Sanghavi27m
Practical process experiments and concrete tooling notes: a rotating triage role with a 15-minute time box, Honeybadger-based tooling nicknamed Badger Judy, an…
Talk on
Automating Legacy Desktop Applications with JRuby and SikuliChris Cha24m
Builds a reproducible Windows VM with Vagrant + VirtualBox, maps a network drive via an exported scheduled task XML, and boots a Java 8 environment that…
Talk on
Ruby ArchaeologyNick Schwaderer30m
A Vagrant box runs Ruby 1.8.7 via Vagrant box on a modern machine, pointing apt to archived 2008 packages and installing gems by downloading .gem files and…
Talk on
Service Objects With Dry.rb: Monads and TransactionsPaul Sadauskas30m
Claims that Dry::Transaction turns chains of service objects into explicit sequential steps with success/failure monads, using dry-monads and dry-validation…
Talk on
The Science and Magic of DebuggingVaidehi Joshi31m
Debugging maps to higher cognitive work: the talk claims bugs are found by iterating a hypothesis cycle that mirrors the scientific method and climbs Bloom's…
Talk on
How to Make a Gem of a GemJustin Searls31m
Forty‑one personal gems exist, and the workflow shows how to scaffold with bundle gem, run tests and lint, then ship via rake release (versions start at…
Talk on
How GitHub uses lintersJoel Hawksley31m
Company-scale linters keep a 1.7+ million‑line Ruby monorepo coherent across 1000+ engineers: examples include about 100 sentinel nudges (regex pull‑request…
Talk on
Building Native Extensions. This Could Take A While...Mike Dalessio30m
Covers the concrete how and why of shipping native Ruby extensions: use mkmf and extconf.rb to compile, use miniporie or bundled tarballs to build upstream…
Talk on
Dishonest Software: Fighting Back Against the Industry NormsJason Meller31m
Built a network tap pipeline capturing pcapp traffic and inspecting with Wireshark to spot APT exfiltration via chunked RAR over FTP; deleted staged archives…
Talk on
Problem Solving Through Pair ProgrammingEmily Harber28m
Pair programming speeds onboarding, raises code quality through continuous review, and converted a mentee into a permanent hire after regular sessions. Remote…
Talk on
Why we worry about all the wrong thingsHilary Stohs-Krause25m
Argument shows concrete numbers and usable tactics: spiders 12 of 40,000 species are venomous (0.0003%), commercial US flights had zero fatalities 2009–2019…
Talk on
Reframing Shame & Embracing MistakesJameson Hampton28m
Case study of the GitLab outage details 18 hours of downtime and ~300 GB of irrecoverable data, a public 21‑minute postmortem, and a promotion for the…
Talk on
Contractualism + Software Engineering: We're All In This TogetherKatya Dreyer Oren28m
Argues that contractualism — judging actions by whether any affected person could reasonably reject them — gives concrete decision rules for engineers…
Talk on
The Algorithm Ate My HomeworkYechiel Kalmenson26m
Argues that responsibility hinges on concrete failures not abstract topics and claims current AIs lack moral agency: a video-interview scorer flips rankings…
Talk on
Squashing Security Bugs with RubocopOmar27m
Betterment uses RuboCop to ship custom RuboCop cops that match AST shapes with node_pattern and flag real issues like unsafe evals and unscoped model.find from…
Talk on
Gradual Typing in Ruby - A Three Year...Ufuk Kayserilioglu, Alexandre Terrasa32m
Shopify reports three years of gradual typing with Sorbet over ~40,000 Ruby files, Sorbet parsing the tree in ~25 seconds and roughly 39,000 files marked typed…
Talk on
Acidic Jobs: A Layman's Guide to Job BlissStephen Margheim28m
Argues for making jobs idempotent and transactional by using a job run model that records runs, locks rows, and stores a recovery point so multi-step workflows…
Talk on
Joyful Polyglot: Beautiful insights from many languagesNick Barone24m
Shows four concrete cross-language patterns and working code: curried functions (JavaScript recomposed, ported to Ruby for S3 movers) that yield clear…
Talk on
Drones Galore: controlling multiple drones using mruby/rubyShashank Daté30m
Explains a concrete workflow: control Tello drones over UDP sockets from ruby and mruby, compile mruby with the socket core gem and run the same code without…
Talk on
Mixed Reality Robotics Simulation with RubyKota Weaver31m
A mixed‑reality rig merges live robot sensors with a simple DragonRuby simulation projected onto the floor, using a ZMQ C extension to stream data; it runs on…
Talk on
Achieving Fast Method Metaprogramming: Lessons from..Jemma Issroff, Jacob Evelyn30m
MemoWise is a memoization gem built with benchmark-driven development using benchmark-ips, deliberate GC control and concrete microbenchmarks; it replaces…
Talk on
YJIT - Building a new JIT Compiler inside CRubyMaxime Chevalier Boisvert30m
YJIT is a new JIT compiled into CRuby at Shopify that uses lazy basic block versioning and runtime value promotion to specialize machine code only for observed…
Talk on
Compiling Ruby to Native Code with Sorbet & LLVMJake Zimmerman, Trevor Elliott30m
Stripe builds an ahead‑of‑time compiler that takes Sorbet’s type‑checked control‑flow graph and emits LLVM IR to produce shared objects that call the Ruby C…
Talk on
Improving CVAR performance in Ruby 3.1Eileen M Uchitelle28m
Announces a concrete change: Ruby 3.1 adds a class variable cache implemented as an inline cache stored on the topmost class that tracks global_cvar_state and…
Talk on
Optimizing Partial Backtraces in Ruby 3Jeremy Evans30m
Backtrace generation in Ruby 3 changes from scanning outward to scanning inward, producing partial backtraces far faster by avoiding work on irrelevant control…
Talk on
MX Hacker's RevengeMX Hacker's Revenge25m
A conference-sized, thumb-editable assembly-style programming competition gets built as a mobile web UI and Rails backend, using Ruby, Sidekick jobs, rbspy…
Talk on
A message from EngineyardRahul Subramaniam EY04m
Engine Yard says it placed two bets fifteen years ago: Ruby and AWS, and continues building tooling to hide cloud complexity so developers can code. The claim…
Talk on
Sorbet at Grailed: Typing a Large Rails Codebase to Ship with...Jose Rosello30m
Grailed types a 150,000‑line Rails monolith with Sorbet to reduce nil errors and refactor fear, serving over 7 million users. Tooling includes Tapioca for RBI…
Talk on
Scaling Happy Engineering TeamsZaid Zawaideh31m
Concrete team rules and outcomes: start small with feedback loops, prioritize trust first and empower people to decide while holding them accountable, and…
Talk on
Cultivating Developer-Centric DSLsJake Anderson32m
Weedmaps ships a production Redis-backed limiter and a small DSL that exposes a memoized rate limiter and a clear class-level config (bucket, global and local…
Talk on
Rswag: Automated API DocumentationSarah Reid30m
Shows how rswag plugs into Rails specs and runs specs to generate an OpenAPI schema, then swaggerize writes swagger.yaml that reflects real responses…
Talk on
Just-in-Time Compiling Ruby Regexps on TruffleRubyBenoit Daloze, Josef Haider24m
TruffleRuby uses Truffle Regex to just-in-time compile Ruby regexps to machine code via GraalVM, replacing backtracking engines like onigmo/joni with…
Talk on
Virtual Job Fair: Engine Yard, Wrapbook, ShopifyWrapbook19m
Wrapbook explains a concrete product: a payroll and onboarding platform for entertainment productions that processed $100M gross payroll last year, reports 28%…
Talk on
Virtual Job Fair: Kolide, Fullscript, CZIKolide, Fullscript, CZI32m
Three mini company dossiers with concrete signals: Collide claims honest security via a Slack app that ships actionable device fixes, runs Rails (migrating to…
Talk on
Meet Shopify's Ruby and Rails Infrastructure Teamrafael franza33m
Focus on concrete outcomes: internal tools like Spin (cloud dev environments) and a Visual Studio Code extension that gives inline Sorbet checks and cross-repo…
Talk on
Dismantling Dystopian Futures with Humane FactoriesAnthony Navarre33m
Claim: make sample data do more than tests by treating factories as shared operational fixtures. Uses FactoryBot linting, attributes_for in seed rake tasks…
Talk on
Workshop: Fundamentals of Joint Cognitive SystemsLaura Maguire, John Allspaw01h 56m
Argues that design details decide success: specifies joint cognitive systems as shared human–machine sensemaking, shows disk-alerts from a nagios default…
Workshop on
Workshop: Intentional Team BuildingAlex Robinson, Will Mitchell50m
Workshop shows concrete steps and outcomes: a case study lives on GitHub and Discord, teams introduce an explicit value (professional development) with a…
Workshop on
Soup to Nuts: Build a video game using Ruby!Amir Rajan01h 42m
Builds actual games live using the DragonRuby Game Toolkit, hot‑reloads code, records and replays inputs as plain text replay files, and shows a working Flappy…
Talk on
Workshop: Run your first game dayThai Wood01h 08m
Hands-on guide to running tabletop game days that teach incident response: how to set up a two-hour session, write scenarios by pick a trigger, complication…
Workshop on
Workshop: Tackling Technical Debt: An Analytical ApproachChelsea Troy01h 36m
Defines technical debt as maintenance load caused by context loss and gives a concrete metric (percent of developer time) plus examples where that number…
Workshop on
All comments must be haiku! Custom linting with RuboCopScott Moore, Kari Silva01h 17m
Workshop builds a custom RuboCop cop that enforces "all comments must be haiku" by checking comment blocks for three lines and a 5‑7‑5 syllable count. It uses…
Talk on
Clean RSpec: A Workshop on Ruby Testing CraftsmanshipJesse Spevack01h 04m
Workshop shows concrete RSpec refactors: it uses the gilded rose kata and live code exercises to rename ambiguous subject, replace hidden setup with let bang…
Workshop on
Workshop: How to use flamegraphs to find performance problemsJade Dickinson49m
Workshop shows how to use Rack Mini Profiler to generate flamegraph visuals, how to read patterns (loops, big horizontal chunks, garbage collection, dependency…
Workshop on
Workshop: A Gentle Introduction to Docker for RubyistsJason Swett01h 03m
Workshop demonstrates how Docker actually operates: create a Dockerfile, build an image from a Dockerfile, run that image to get a container, shell into it and…
Workshop on
Surprise! Inspiring ResilienceCory Watson31m
A checklist of specifics: a Formula 2 driver survives a fire extinguisher in cockpit while piloting a ~$500k car at speed, the US Navy keeps a plane guard…
Talk on
Picoruby and PRK FirmwareHitoshi Hasumi30m
PicoRuby is an mruby-derived interpreter and compiler that compiles keymap.rb on-device and hot-reloads it into PRK Firmware, a Ruby keyboard framework that…
Talk on
Using Monads for Elegant Error HandlingJohn Gallagher27m
Argues that replacing rescue-and-nil patterns with a dry-monads result type (concrete Success/Failure values) makes error flow explicit, keeps exceptions for…
Talk on
Why Did We Rewrite Our Main Product Four Times?Leon Hu18m
A reminder system that began as 15 lines of code ends up rewrote four times because scaling and edge cases break naive models; the team moves from simple Rails…
Talk on
How to stop breaking other people's thingsLisa Karlin Curtis28m
Defines a breaking change as any API change that makes an integrator’s assumption false and gives concrete examples: changing an error response string…
Talk on
Harness the power of functions to build composable rack applicationsMarc Busqué27m
Explains how web_pipe turns Rack's two-way middleware model into a one-way pipeline of functions that take and return the same connection struct, letting steps…
Talk on
Engineering at RootMaria Moore25m
Claim: a mobile-first insurance product uses smartphone telematics to price drivers by smooth braking and distracted driving instead of demographics. Built…
Talk on
Control methods like a pro: A guide to Ruby's awesomeness, a.k.a. metaprogrammingMasafumi Okura29m
Shows that methods are objects and gives exact recipes: list methods, use method/instance_method to fetch Method and UnboundMethod, bind or unbind, inspect…
Talk on
Minimize Your Circus Factor: Building resilient teamsMercedes Bernard31m
Turnover in tech spikes — four million quit in April, resignations up 4.5%, about 700,000 unfilled jobs — so focus on concrete, low-friction actions that let a…
Talk on
Managing Out: Strategies for Leveling UpMina Slater24m
Team size more than doubles and mid-level engineers end up as de facto leaders; concrete claim: follow three focused practices — set good examples, use Jira…
Talk on
Hello, computer. Writing Ruby with voice recognitionNat Budin29m
A hand injury leads to learning to code by voice and a live demo of Talon showing real Ruby editing: language-aware commands, an alphabet, command history, and…
Talk on
Optimizing Ruby's Memory LayoutPeter Zhu, Matt Valentine-House27m
Proposal moves malloced object payloads into the ruby heap by allocating variable-size slots (power-of-two multiples of the 40‑byte rvalue) and per‑size size…
Talk on
Beware the Dreaded Dead End!!Richard Schneeman33m
The dead_end gem uses ripper to lex and parse source, then runs an outside‑in, uniform‑cost–style search over commented‑out blocks to find the true faulty…
Talk on
Dungeons and CollaborationRolen Le21m
Claims concrete practices that improve distributed teamwork: use session zero to set expectations, run games on Roll20, pick a ruleset like Dungeon World with…
Talk on
Perceptual Learning == More Ruby Experts?Stefanni Brasil26m
Perceptual Learning (PL) claims to speed pattern recognition and fluency so experts pick up relevant relations automatically and novices do not. A fractions…
Talk on
The Intro to Abstraction I Wish I'd ReceivedStephanie Minn25m
Argues that abstraction is a concrete skill not a buzzword and shows a failing real example: a Rails app that produces an Excel report via a third party like…
Talk on
Optimizing Production Performance with MRI JITTakashi Kokubun29m
Claims that MRI JIT finally speeds real Rails apps on Ruby 3.0 and gives measurable wins when tuned: use Ruby 3.0.0 (3.0.1 is broken, 3.0.2 differs), increase…
Talk on
Parallel testing with Ractors - Putting CPU's to workVinicius Stock27m
Builds a mini test framework called Loop that runs examples via Ruby 3 Ractors and via traditional process mode and measures wall time: Ractors beat processes…
Talk on
Debugging Product TeamsAmy Newell26m
Claim: debugging a product team uses a systems approach with a repeatable cycle — map systems, observe and ask, hypothesize and intervene — not platitudes…
Talk on
This is not a talk about airplane crashesAndromeda Yelton33m
Investigations show specific failures and concrete fixes: Colgan Air 3407 ends with 50 fatalities after pilots increase angle of attack instead of reducing it…
Talk on
Async RubyBruno Sutic23m
Async Ruby claims real concurrency for blocking IO by running tasks run concurrently inside an async block, using an event reactor backed by nio4r + libuv…
Talk on
A History of Compiling RubyChris Seaton32m
History catalogs at least sixteen attempts to compile Ruby down to machine code, lists concrete outcomes (JRuby runs in production via JVM bytecode…
Talk on
Golf Scripting with Ruby - Helping Santa Schedule ChristmasEly Alvarado26m
An algorithm that turns a house list of naughty and nice counts into a delivery schedule is implemented in Ruby and verified with test cases, using a…
Talk on
Black Swan Events in Open Source: That time...Julia Ferraioli, Amanda Casari22m
Chronicle of three concrete failures: the Morris worm infects ~10% of the Internet in 1988 and forces a security pivot; Heartbleed in OpenSSL exposes 66% of…
Talk on
debug.gem: Ruby's new debug functionalityKoichi Sasada23m
A new debugger gem is built from scratch and already released as a gem and slated to ship with Ruby 3.1; it targets Ruby 2.6+ and uses TracePoint internals to…
Talk on
Beyond BlamelessRein Henrichs20m
Claims that "blameless" postmortems sometimes remove necessary learning by forbidding attribution and instead propose concrete fixes: preserve attribution but…
Talk on
The Intentional Plan for IntersectionalityShailvi Wakhlu26m
Claims a concrete three-step plan — awareness, acknowledgement, action — backed by mixed methods: overlapping-shapes thought experiment, cited statistics and…
Talk on
Programming with SomethingTom Stuart33m
Shows how to represent proc-encoded code as an AST from procs by calling procs with variable objects and monkey‑patching [], implements Church-style…
Talk on
Enjoy Ruby Programming in IDE and TypeProfYusuke Endoh22m
Claims that TypeProf bundled in Ruby 3.0 can provide on‑the‑fly error reporting, completion and go‑to‑definition inside VS Code using a TypeProf for IDE…
Talk on
Whimsy: Art, Beats & CodeRachel Green10m
Demonstrates concrete projects and tools rather than abstract motivation: a JavaScript package fish-draw that procedurally generates detailed fish…
Talk on
Whimsy: Babies just want to have funAli Ibrahim10m
Builds a toddler-friendly music box, first with a Raspberry Pi and Python script then with an Adafruit audio board, wired to three buttons, requiring…
Talk on
Whimsy: Put That Test Down! You don't know where it's beenMichael Dalessio12m
A failing CSS-sanitization test traces through git to a 2007 inSticky case and propagates 14 years across html5lib luffa and Rails, caused by mixed octal/hex…
Talk on
Whimsy: Pry IrresponsiblyRiaz Virani11m
Claim: using pry cuts the write‑run cycle to one step by editing live objects and files while the program runs. It demos pry commands that cd into object…
Talk on
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.