Skip to content
Artwork for Rails Business
Rails Business · February 19 · 47 min

Kyle Keesling

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 us Fan Mail

0:00-47:28

transcript

No transcript — this publisher did not publish one.

show notes

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 us Fan Mail

links6

more episodes

All episodes