Tuesday, October 21, 2025

On Rails — Alexander Stathis: Scaling a Modular Rails Monolith at AngelList

Posted by Rails Foundation and Robby Russell

In this episode of On Rails, Robby is joined by Alexander Stathis, a Principal Software Engineer at AngelList, where Rails powers complex investment, accounting, and banking business logic across a modular monolith structure. They explore how AngelList maintains conceptual boundaries in their codebase, uses gradual typing to influence their Ruby style away from Rails “magic,” and why they’ve adopted multiple async job solutions for different types of work rather than seeking a one-size-fits-all approach. Alex shares insights on consolidating microservices back into their monolith, creating the Boba gem to extend type generation capabilities, using production data subsetting tools for local development, and successfully onboarding engineers without Rails experience in under a month while staying current on Ruby 3.4 and Rails 7.2.

Tools & Libraries Mentioned

Active Job – Framework-agnostic job API built into Rails.

ASDF – Tool version manager.

Boba – AngelList’s Sorbet compiler extension.

Delayed Job – Database-backed job processor.

FactoryBot – Test data builder.

GoodJob – Postgres-backed Active Job processor.

GraphQL Batch Loader – Batching utility for GraphQL.

GraphQL Ruby – Ruby GraphQL implementation.

Linear – Issue tracking tool.

Money – currency handling library.

Packwerk – Shopify’s modular boundary enforcement tool.

Paperclip – Legacy file attachment gem for Rails (deprecated).

RSpec – Ruby testing framework.

Sidekiq – Redis-backed job framework.

Solid Queue – Rails 8 Active Job adapter.

Sorbet – Gradual static type checker for Ruby.

State Machines – Finite state machine support.

Tapioca – Sorbet RBI file generator.

Temporal – Workflow orchestration system.

Tonic – De-identified datasets platform.

Will Larson – Staff Engineer – Book exploring technical leadership

Listen to this episode (1h 28m) or subscribe to On Rails in your podcast player.