At CZI, we’ve adopted Sorbet, a fast and powerful static type-checking tool for Ruby. In our previous post, we talked about the technical challenges of adopting Sorbet in a Rails codebase, which led us to develop the sorbet-rails gem. After a year of using Sorbet, we have made significant progress covering our system with types. Currently, we have reached 92% file-level typed coverage and 75% callsite-level typed coverage. Most importantly, Sorbet is now integrated into every engineer’s development flow. In this post, we’ll go through our phases of adopting Sorbet and the challenges and the lessons we learned along…


At CZI, we developed a personalized learning application, the Summit Learning platform, using the Ruby on Rails framework. In the early days, Rails enabled us to build out the platform quickly. However, now that we have 30+ engineers and 2,500+ files of Ruby code written over 6 years, we’ve found it harder to iterate. To help us move faster together, we decided to adopt Sorbet, a fast and powerful static type-checking tool for Ruby.

In this post series, we’d like to share our journey adopting Sorbet: the challenges and the lessons we learned from tackling those challenges. By reading these…

Hung Doan

Software Engineer at Chan Zuckerberg Initiative

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store