Skip to main content
AS

Adi Slater

Adi Slater is a software developer and co-host of The Bike Shed, bringing practical experience to discussions about Ruby on Rails development, remote work dynamics, and developer productivity. Her episodes candidly address topics like managing ADHD as a developer, framework migrations, and the challenges of asynchronous collaboration in distributed teams. Slater's perspective emphasizes sustainable development practices over burnout-inducing hustle.

5episodes
1podcast

Featured On 1 Podcast

All Appearances

5 episodes
The Bike Shed

471: New Hosts Join the Show

The Bike Shed
42 minDevelopment Team Lead at Thoughtbot

AI Summary

→ WHAT IT COVERS The Bike Shed podcast introduces major format changes including two new permanent co-hosts Sally Hall and Adi Slater, a seasonal structure with rotating host pairs, video episodes, and recap episodes for reflection. → KEY INSIGHTS - **Platform-Specific Code Architecture:** Roc language separates pure functional code from environment-specific side effects through platform modules, making code portability explicit. This mental model applies to JavaScript environments where browser APIs, Node.js file systems, and browser extensions each provide different primitives despite using the same language. - **Security Expertise Development:** Diving deep into OWASP Top 10 vulnerabilities moves beyond casual awareness to understanding attack vectors, remediation strategies, and specialized tooling. This specialized knowledge becomes valuable across consulting teams where internal experts support projects on an ad hoc basis without being directly assigned. - **Front-End Skill Breakthrough:** Consistent practice reviewing React pull requests and asking questions about implementation patterns leads to intuitive understanding. The breakthrough moment often arrives retrospectively when realizing documentation references have stopped and frustration has disappeared, similar to memorizing knitting patterns through repetition. - **Seasonal Podcast Structure:** Twelve-episode seasons with rotating two-host pairs, guest episodes mid-season, and recap episodes enable deeper reflection and accountability. Two-week breaks between seasons allow decompression while maintaining regular content flow, creating space to revisit experiments and close loops on previous discussions. → NOTABLE MOMENT Sally Hall describes her resistance to React work transforming into genuine enjoyment after forced immersion on a project requiring full-stack capabilities. The shift came from repeated practice, reviewing team code, and participating in technical decision discussions between two teams. 💼 SPONSORS [{"name": "Judo Scale", "url": "judoscale.com"}, {"name": "Scout Monitoring", "url": "scoutapm.com"}] 🏷️ Podcast Format Changes, Software Security, Platform Architecture, React Development

AI Summary

→ WHAT IT COVERS Joel and Adi explore strategies for managing large-scale application changes including framework upgrades, third-party vendor migrations, and database restructuring while maintaining zero downtime and preventing data corruption through incremental approaches. → KEY INSIGHTS - **Idempotent migrations:** Design data migrations to be safely retryable by using find-or-create patterns so running the task 50 times produces identical results to running once, enabling partial completion and recovery from failures without duplicating data. - **Dual-write strategy:** When restructuring databases, write to both old and new columns simultaneously while maintaining read-only status on deprecated columns, allowing incremental validation before final cutover and enabling safe rollback if issues emerge during transition periods. - **Lazy migration pattern:** For third-party service changeovers, trigger data conversions on-demand as users access their accounts rather than pre-migrating everything, reducing upfront work and allowing migrations to happen organically over time as traffic dictates. - **Forward-looking upgrades:** Adopt new framework features before major version upgrades by installing compatibility gems like strong parameters in Rails 3, making the eventual Rails 4 upgrade minimal since controllers already use the new patterns. → NOTABLE MOMENT A vendor changed their entire primary key scheme without providing ID mapping files, forcing implementation of a live detection system that identified when accounts needed migration and converted IDs on-the-fly as users accessed features during the cutover window. 💼 SPONSORS [{"name": "Judo Scale", "url": "judoscale.com"}, {"name": "Scout Monitoring", "url": "scoutapm.com"}] 🏷️ Database Migrations, Framework Upgrades, Change Management, Rails Development

AI Summary

→ WHAT IT COVERS Sally and Adi reflect on working remotely versus in-person at Thoughtbot's Amsterdam Summit, exploring strategies for effective remote collaboration, the challenges of virtual communication, and techniques to recreate in-person connection online. → KEY INSIGHTS - **Eager Loading Strategy:** Move eager loading from serializers to controllers when using tools like Blueprinter and Bullet, as serializers get reused across multiple contexts, causing over-fetching or under-fetching issues that impact production performance and user experience. - **Pairing Session Framework:** Start every pairing session with explicit check-ins about goals, time frames, energy levels, and preferred roles (keyboard versus navigator). This intentionality helps maintain focus and provides natural break points every forty-five minutes for reassessment. - **Meeting Agenda Requirement:** Every meeting invitation must include an agenda, even if just one sentence describing the purpose. This allows participants to bring the right mindset, whether engineering or product focused, and reduces miscommunication from unclear expectations. - **Low-Stakes Communication Channels:** Create designated Slack channels explicitly for noisy, low-value thoughts about current work to enable serendipitous collaboration. Establish shared understanding that these channels can be ignored for hours, removing pressure while maintaining connection opportunities. → NOTABLE MOMENT One developer forgot to update their Slack away status and appeared offline for four consecutive days before realizing the mistake, highlighting how unreliable activity indicators can be for remote team awareness and coordination. 💼 SPONSORS [{"name": "Judo Scale", "url": "https://judoscale.com"}, {"name": "Scout Monitoring", "url": "https://scoutapm.com"}] 🏷️ Remote Work, Pair Programming, Team Collaboration, Rails Development

AI Summary

→ WHAT IT COVERS Adi Slater and Sally Hall share their experiences managing ADHD as software developers, discussing practical workplace systems, accommodations, time management strategies, and the importance of accepting neurodivergent work styles without shame. → KEY INSIGHTS - **Single-threading work:** Keep only one ticket in progress at a time to avoid context-switching costs. Mark blocked items explicitly and move them to a blocked column rather than juggling multiple incomplete tasks simultaneously. - **Wait time strategy:** During test runs or CI builds, resist switching tasks for short waits under ten minutes. Context switching wastes more time than waiting, and prevents forgetting to check results when builds complete. - **Calendar automation:** Set meeting reminders for one minute before start time instead of ten minutes. Longer lead times allow getting distracted and missing meetings, while one-minute warnings force immediate context switching to meeting mode. - **End-of-day anchors:** Leave failing tests or Post-it notes with specific context before ending work sessions. Red terminal output or physical notes placed on monitors provide concrete re-entry points that bypass time-blindness and memory gaps. → NOTABLE MOMENT One developer shared forgetting to feed their children during coding bootcamp due to hyperfocus, then accidentally broadcasting a Slack reminder about feeding kids to their entire general channel after forgetting the slash command syntax. 💼 SPONSORS [{"name": "Judo Scale", "url": "https://judoscale.com"}] 🏷️ ADHD, Neurodiversity, Developer Productivity, Workplace Accommodations

AI Summary

→ WHAT IT COVERS Adi and Sally explore using ActiveModel modules in non-database-backed Ruby classes to create consistent APIs across Rails applications, enabling validation, attributes, callbacks, and serialization without requiring ActiveRecord persistence layers. → KEY INSIGHTS - **ActiveModel Attributes:** Include ActiveModel modules in service objects and plain Ruby classes to get automatic attribute handling, instantiation patterns, and instance variable management without writing boilerplate code, maintaining consistency with ActiveRecord models throughout your application. - **Resource-Oriented Design:** Treat every Rails component as a resource with restful actions, even when not backed by database tables. This approach enables controllers to maintain identical structure and familiar save/persist patterns regardless of underlying implementation details or data storage mechanisms. - **Validation Reuse:** ActiveModel validations provide presence, uniqueness, and custom validators for non-database classes, generating standard Rails error objects. This eliminates reimplementing validation logic and ensures consistent error handling across database-backed and non-persisted objects in your application. - **Testing Consistency:** Using ActiveModel in plain Ruby objects enables standard Rails testing tools like FactoryBot and familiar test helpers. Without it, developers must recreate testing infrastructure manually, losing productivity and consistency when working outside traditional ActiveRecord models. → NOTABLE MOMENT Sally recounts building a Ruby-only data fetching app without ActiveModel, then discovering during testing that she lost access to FactoryBot, standard validators, and familiar testing patterns, requiring extensive custom helper code she could have avoided. 💼 SPONSORS [{"name": "Judo Scale", "url": "https://judoscale.com"}, {"name": "Scout Monitoring", "url": "https://scoutapm.com"}] 🏷️ ActiveModel, Rails Architecture, Service Objects, Ruby Design Patterns

Never miss Adi Slater's insights

Subscribe to get AI-powered summaries of Adi Slater's podcast appearances delivered to your inbox weekly.

Start Free Today

No credit card required • Free tier available