Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The most valuable engineer isn't shipping features

The most valuable engineer isn't shipping features

Makers build new things. Menders tend what already exists, and most professional software work is mending. In this closing keynote from Rails World 2026, Robby Russell (Planet Argon) talks about the "local workshop" every mature Rails app builds on top of the framework: the patterns, shortcuts, workarounds and oral traditions that teams quietly learn to compensate for, and that AI coding agents now have to rediscover every time their context resets.

Drawing on client work, years of podcast interviews and conversations in conference hallways, Robby shares agrees that while producing code has gotten cheaper, deciding what belongs, what can be trusted and what should change still takes human judgment.

Avatar for Robby Russell

Robby Russell

October 09, 2026

More Decks by Robby Russell

Other Decks in Technology

Transcript

  1. What kind of weird is this? • Is this conventional

    Rails? • A deliberate adaptation? • An expired constraint? • An unfinished experiment? • Or an accident that’s become tradition?
  2. "Make CI Faster." • Better caching • Split a job

    • Remove unnecessary work • Save a minute
  3. More changes. More queues. • The behavior changes • A

    cleanup PR • A doc update • Better tests • A dependency bump
  4. "The genie produces code at a pace no human reviewer

    can match." - Kent Beck, December 2025
  5. The friction we stop seeing • rm -rf tmp/cache for

    the fth time today • "Anybody deploying to staging right now?" • Restart the server... again. • Redis, then Sidekiq, then the server • The cron job that's actually a person with a calendar reminder • Seed data has never been useful • db:reset isn't useful • Forty scopes. Three of them identical • Don't double-click that bu on • The node_modules directory you delete monthly • bin/setup hasn't been used in years • The staging seed that's a prod dump from 2024 • The queue named default, doing everything • The class named after a company you stopped integrating with • data-turbo="false" on that one fi tt fi form • The jQuery that's still there for one datepicker • schema.rb or structure.sql, depending on who merged last • "Don't merge until I'm back" • Your shell alias nobody else has • STI that should have been two tables • The doc that is a Slack thread • Looking at your phone while the rst page renders after starting the server • # rubocop:disable, from a previous style guide • Not trusting staging because of one if Rails.env.production?
  6. Who improves the workshop? • Who notices the friction? •

    Who fixes the onboarding scripts? • Who chooses the preferred pattern? • Who builds the generator? • Who turns the workaround into a tool?
  7. You do not need permission to do your job well.

    - Robby Russell, here... today...
  8. Start smaller than you think • Name the friction •

    Find an accomplice • Improve one thing
  9. UNPACK • When was this introduced? • What problems was

    it solving? • What constraints shaped it? • Who depended on it then?
  10. UNPACK • Trace one request end to end • Observe

    it happen in production • Measure how often it runs • Find the PR that introduced it • Ask someone who remembers why
  11. TINKER • Write down what you expect • Add one

    log line and wait • Turn one thing off • Compare two approaches • Put it behind a feature flag
  12. SHARE • Document the behavior • Explain the constraint •

    Name the canonical examples • Comment the why, not the what • Add it to bin/setup • Write the lint rule • Create the diagram • Improve the helper • Update the generator • Record the decision • Demonstrate the tool • Invite another engineer • Watch someone else use it • ...you get the idea
  13. order.save wonder unpack tinker share • What callbacks fire? •

    What jobs get enqueued? • What gets broadcast? • What notifications go out? • What gets written to the audit log? • What caches get invalidated? • What external systems get updated?
  14. order.save wonder unpack tinker share • Disable one callback •

    Make one responsibility explicit • Measure
  15. app/middleware/utf8_sanitizer.rb Huh? wonder unpack tinker share • Why is it

    here? • When was it added? • What were the circumstances at the time?
  16. app/middleware/utf8_sanitizer.rb Huh? wonder unpack tinker share • Add logging •

    Track occurrences + Rails.logger.info("[utf8_sanitizer] scrubbed: #{env["HTTP_USER_AGENT"]}")
  17. That gap is part of the workshop Our job isn't

    to choose a side. We need to shrink it. Today With work Large gap. More is documented. Less is guessed. Over time More shared understanding.
  18. Where do devs struggle most when joining your Rails app?

    Ruby on Rails Community Survey 2026 ~1,800 responses
  19. Where do devs struggle most when joining your Rails app?

    1. DOMAIN MODEL + BUSINESS LOGIC (29%) 2. OLD OR INHERITED CODE (21%) Ruby on Rails Community Survey 2026 ~1,800 responses
  20. Where do devs struggle most when joining your Rails app?

    1. DOMAIN MODEL + BUSINESS LOGIC (29%) 2. OLD OR INHERITED CODE (21%) 3. LACK OF DOCUMENTATION (11%) Ruby on Rails Community Survey 2026 ~1,800 responses
  21. Make the path obvious Two paths... Team Judgment │ ▼

    "Find the most recent one..." % bin/rails generate integration │ ▼ Integration Class Configuration Error Handling Tests Example Payload Documentation
  22. Repository Instructions Canonical Example Generator / Template ↓ ↓ ↓

    This is how we work here. This is the one we mean. Start here. . . . T N E M G D U J D SHARE ! E L B A T U C E X E E MAD
  23. Make mistakes cheaper to reverse 🟢 Feature Flags 🚀 Staged

    Rollouts ↩ Reversible Migrations 🔐 Limited Credentials 🧪 Safe Sandboxes 🌎 Disposable Preview Environments
  24. Cheap recovery changes behavior Cheap Recovery Expensive Recovery ↓ ↓

    More Experiments Fear ↓ ↓ More Learning Delay ↓ ↓ Better Systems 🤗 Stagnation 😕