Rails Business

Kyle Keesling

Episode 27

Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.

0:00 | 47:28

In this episode, Kyle Keesling, co-owner of PASS Testing and long-time solo Rails developer, shares how PASS grew from a college web design side project into a niche software and training business for the Underground Storage Tank (UST) industry. The conversation covers why they kept the products as two apps connected by a read-only private API, what makes compliance software hard, and how they modeled flexible equipment and inspection data—evolving from STI to Rails delegated types. Kyle also discusses early scaling pains around billing and payments, how feature requests are prioritized with help from their CRO and a contractor, and how tools like Claude Code are changing his workflow while maintaining PR-based review and safer deployment practices.

00:00 Meet Kyle Keesling& His Role at PASS Testing
00:29 From College Web Design to a Niche Opportunity in UST Compliance
02:31 Building Opus: A Custom LMS for Gas Station Training
03:34 Why Compliance Is Hard: 50 States, 50 Rulebooks
04:25 From Training to Past Tools: The Second Product Idea
08:06 Two Apps or One? Data Sync, APIs, and Customer Workflows
10:25 Would He Do It Again? Decoupling, Upgrades, and Acquisition Optionality
12:28 Why Past Tools Is More Complex: Data-Driven Inspections & Asset Inventory
16:13 Modeling the Domain in Rails: STI → Delegated Types (and Migration Strategy)
22:35 Versioning & “Point-in-Time” Inspections: Preventing Old Reports from Changing
24:13 Downtime, SLAs, and Recovering from Form/Data Bugs
26:40 Early Scaling Stories: Hardcoding States and Billing Growing Pains
29:39 Letting Customers Shape the Product (Beyond Compliance)
31:14 Integrations vs. Building Everything In-House
32:50 Feature Requests, Backlog Triage, and Adding Sales/Dev Bandwidth
37:41 Shipping Without the Never-Ending PR: Iterative Rollouts ("Visits")
40:39 Using AI Safely: PRs, Branch Protections, and Documentation Habits
46:14 Wrap-Up: Where to Find Kyle and Past Testing

LINKS

- PASS Testing

Kyle's X/Twitter

- Ryan's Website

- Brendan's X/Twitter

- Brendan's Bluesky

Questions or comments, email us at railsbusinesspod@gmail.com

Send a text

Podcasts we love

Check out these other fine podcasts recommended by us, not an algorithm.

Code with Jason Artwork

Code with Jason

Jason Swett
Standing in the Fire Artwork

Standing in the Fire

Very Good Software
Remote Ruby Artwork

Remote Ruby

Chris Oliver, Andrew Mason, David Hill
IndieRails Artwork

IndieRails

Jess Brown & Jeremy Smith