Software Engineering Daily

Static Analysis for Ruby with Jake Zimmerman

12 snips
Oct 14, 2025
Join Jake Zimmerman, the software engineer at Stripe behind Sorbet, as he dives into the fascinating world of static typing in Ruby. He discusses the challenges posed by Ruby's dynamic nature and the problem Sorbet was designed to solve. Jake reveals the intricacies of Sorbet's architecture, including how it efficiently handles type checking internally. He also touches on future enhancements and the importance of type annotations for better code quality, all while sharing insights from his personal journey into tech.
Ask episode
AI Snips
Chapters
Books
Transcript
Episode notes
INSIGHT

Sorbet As A Productivity Tool

  • Sorbet runs in the background to flag type errors and power editor features like autocompletion and go-to-definition.
  • Leaning into the type system improves code navigation and design across a large codebase.
ADVICE

Annotate Ambiguous Parameters

  • Annotate ambiguous parameters (e.g., IDs vs objects) to get type checks and method suggestions.
  • Use types to quickly discover available methods and avoid mismatched operations at runtime.
INSIGHT

Metaprogramming Versus Maintainability

  • Ruby's heavy metaprogramming creates hidden definitions that challenge static typing and tooling.
  • Adding a type checker can improve maintainability by discouraging overly dynamic patterns in large teams.
Get the Snipd Podcast app to discover more snips from this episode
Get the app