Conversations with the hackers, leaders, and innovators of the software world. Hosts Adam Stacoviak and Jerod Santo face their imposter syndrome so you don’t have to. Expect in-depth interviews with the best and brightest in software engineering, open source, and leadership. This is a polyglot podcast. All programming languages, platforms, and communities are welcome. Open source moves fast. Keep up.
Types will win in the end
This week we’re talking about type checking with Jake Zimmerman. Jake is one of the leads at Stripe working on Sorbet — an open source project that does Type checking in Ruby and runs over Stripe’s entire Ruby codebase. As of May of 2022 Stripe’s codebase was over 15 million lines of code spread across 150,000 files. If you think you have a bigger Ruby codebase, Jake is down to go byte-for-byte to see who wins. Jake shares tons of wisdom and more importantly he shares why he thinks types will win in the end.
Changelog++ members get a bonus 4 minutes at the end of this episode and zero ads. Join today!
Sponsors:
- Sentry – Code-level APM built for developers! Stay ahead of latency issues and trace every slow transaction to a poor-performing API call or database query. Sentry is the only developer-first application monitoring platform that shows you what’s slow, down to the line of code. Use the code
CHANGELOGMEDIA
and get the team plan FREE for six (6) months. - Drata – Put security and compliance on autopilot. Build trust with your customers and scale securely with Drata, the smartest way to achieve continuous framework compliance for SOC 2, ISO 27001, HIPAA, GDPR, and more.
- Typesense – Lightning fast, globally distributed Search-as-a-Service that runs in memory. You iterlly can’t get any faster!
Featuring:
- Jake Zimmerman – Mastodon, Twitter, GitHub, Website
- Adam Stacoviak – Mastodon, Twitter, GitHub, LinkedIn, Website
- Jerod Santo – Mastodon, Twitter, GitHub, LinkedIn
Show Notes:
Something missing or broken? PRs welcome!
Timestamps:
(00:00) - This week on The Chagnelog
(01:00) - Sponsor: Sentry
(05:02) - Start the show!
(10:59) - Sorbet's origin story
(15:32) - Stripe's use of Sorbet
(17:10) - This is a big deal
(19:58) - Ruby doesn't want to be type checked
(24:14) - Method missing?
(25:39) - Sponsor: Drata
(27:22) - First-party Ruby types
(35:14) - Why aren't Types built in?
(37:37) - Sorbet's implementation and design
(46:12) - RBI vs RBS?
(51:19) - Stripe has the largest Ruby codebase
(52:46) - Adopting Sorbet
(54:27) - Editor support
(56:55) - Types will win
(58:36) - Jake's language of choice
(1:00:18) - The name "Sorbet"
(1:02:54) - Up next!