Skip to main content
JK

Joelle Kenville

Joelle Kenville is a co-host of The Bike Shed and author of an upcoming Pragmatic Press book on web fundamentals. Her episodes explore mental models for browser functionality, code review heuristics, iterative development practices, and strategies for maintaining developer focus. Kenville brings both technical depth and thoughtful reflection on the craft of software development, examining how teams can work more effectively through better process and communication.

6episodes
1podcast

Featured On 1 Podcast

All Appearances

6 episodes

AI Summary

→ WHAT IT COVERS Stephanie and Joelle explore how developers progress from collecting isolated solutions to recognizing reusable patterns, discussing practical strategies for intermediate developers to actively develop pattern recognition skills through code review and team collaboration. → KEY INSIGHTS - **Code smell heuristics:** Start with basic indicators like long methods and large classes—if you cannot describe a method's responsibility in one sentence or easily recall what a class does, refactor it into smaller, more focused components. - **Active code review participation:** Intermediate developers accelerate learning by asking questions on pull requests, requesting pattern confirmations like "is this a decorator pattern?", and seeking synchronous walkthroughs to understand structural decisions and trade-offs. - **Pattern recognition over memorization:** Focus on identifying characteristics that make code hard to maintain—deeply nested conditionals, difficulty maintaining mental models, needing to re-read line-by-line—rather than memorizing pattern names from books or documentation. - **Productive disagreement framework:** When disagreeing with suggested patterns, articulate your reasoning around trade-offs and optimization goals, then discuss collaboratively. Often disagreements stem from time constraints or unfamiliarity rather than technical objections, which should be acknowledged honestly. → NOTABLE MOMENT Joelle shares how asking whether someone has read truly excellent tests transformed their learning approach—the realization that identifying and analyzing well-written code examples provides concrete models for understanding what makes code maintainable and clear. 💼 SPONSORS [{"name": "WorkOS", "url": "https://workos.com"}] 🏷️ Software Design Patterns, Code Review, Developer Growth, Abstraction

AI Summary

→ WHAT IT COVERS Stephanie Minn and Joelle Kenville examine the technical and social factors that enable or prevent teams from adopting iterative development practices, including deployment friction, code review culture, and organizational incentives that shape developer behavior. → KEY INSIGHTS - **Blameless Post-Mortems:** Effective incident retrospectives focus on system-level failures rather than individual mistakes, examining monitoring gaps, deployment timing decisions, and response processes to build resilient engineering cultures where teams learn from production incidents without fear. - **Deployment Friction Costs:** Shared staging environments and slow CI pipelines create per-iteration costs that incentivize bundling changes together. Teams working across time zones with mandatory QA approval face twenty-four hour turnaround times, making developers combine multiple features into single deployments. - **PR Size and Review Speed:** Code review time scales non-linearly with PR size—doubling lines of code can triple review effort. Small, frequent PRs create virtuous cycles where reviewers spend ten minutes between tasks, while large PRs require scheduled hour-long sessions that delay feedback. - **Iterative Communication Benefits:** Shipping one PR per day enables developers to provide specific progress updates about refactoring steps and technical discoveries, replacing vague status reports. Teams gain visibility into work-in-progress, reducing context-loading overhead when switching between tasks and maintaining development momentum. → NOTABLE MOMENT Stephanie describes running a large database migration that caused a weekend production incident affecting many customers. The retrospective revealed how multiple system failures compounded, but the team maintained a blame-free culture focused on preventing future occurrences through improved monitoring and deployment practices. 💼 SPONSORS [{"name": "WorkOS", "url": "https://workos.com"}] 🏷️ Iterative Development, Code Review, Incident Response, Development Velocity

AI Summary

→ WHAT IT COVERS Rémy Hannequin discusses building Astronomy, a Ruby gem for celestial body positioning calculations, covering domain-driven design patterns, value objects, and translating complex astronomical mathematics into developer-friendly Ruby code for telescope positioning. → KEY INSIGHTS - **Value Objects for Units:** Wrap raw numbers in objects to prevent unit conversion errors (meters vs miles) and enable natural operations like distance addition while automatically handling conversions, similar to Rails' ActiveSupport Duration with five.days syntax. - **Domain-Driven Design Translation:** Use terminology from scientific literature when naming code objects and methods to enable direct collaboration between domain experts and developers, eliminating translation overhead and making contributions more accessible to astronomers reviewing code. - **Light Time Correction:** Astronomical positioning requires correcting for light travel time since observed celestial bodies appear where they were in the past—moon one second ago, sun eight minutes ago, planets thirty to forty minutes ago—creating difference between geometric and apparent positions. - **Performance Trade-offs:** Value objects improve safety and readability but hurt performance in high-iteration calculations. Switch to raw numbers (like radians) when instantiating and converting objects repeatedly becomes a bottleneck, prioritizing practical results over architectural purity. → NOTABLE MOMENT Hannequin's homemade blueberry wine fermentation created so much carbonation that when his wife opened the bottle without caution, the pressurized liquid exploded throughout their kitchen, painting walls and ceiling blue-purple with stains still visible today. 💼 SPONSORS [{"name": "JudoScale", "url": "https://judoscale.com/bikeshed"}] 🏷️ Domain-Driven Design, Ruby Gems, Scientific Computing, Value Objects

AI Summary

→ WHAT IT COVERS Joelle and Steph explore strategies for maintaining focus and minimizing context switching in software development, covering calendar management, test-driven development as focus tools, and techniques for creating productive work blocks. → KEY INSIGHTS - **Test-Driven Development for Focus:** Leave a failing test at the end of each focus session to create a clear entry point for the next work block, reducing onboarding costs and providing immediate direction when returning to code. - **Calendar Defragmentation:** Cluster meetings into contiguous blocks rather than scattering them throughout the day, creating longer uninterrupted periods for deep work. Bookending the workday with focus time helps transition in and out of work effectively. - **Independently Shippable Work:** Break tasks into small, independently shippable pieces that can be completed and released without dependencies. This creates natural stopping points, allows mental context to be fully released, and enables smooth transitions between different types of work. - **Focus Time Beyond Coding:** Allocate dedicated focus blocks for thinking work separate from coding time, including project planning and risk assessment. Both require uninterrupted concentration but represent distinct contexts that benefit from intentional separation and dedicated attention. → NOTABLE MOMENT The discovery that time zones span 26 hours globally, from UTC plus 14 to minus 12, means people on opposite sides of the international date line can be two full days apart, not just one. 💼 SPONSORS None detected 🏷️ Context Switching, Focus Management, Test-Driven Development, Calendar Management

AI Summary

→ WHAT IT COVERS Joelle Kenville announces her upcoming Pragmatic Press book on web fundamentals and explores mental models for understanding browsers, from HTTP request engines to UI runtimes, examining how front-end versus back-end developers conceptualize browser functionality differently. → KEY INSIGHTS - **Browser Core Function:** Browsers fundamentally issue HTTP requests graphically through three mechanisms: arbitrary GET requests via URL bar, predefined GET requests through links, and customizable GET/POST requests through forms—understanding this enables reasoning about all web interactions. - **Platform-Specific Constraints:** Each browser operates as a distinct sub-platform with varying capabilities across Chrome, Safari, Firefox, and different operating systems. Testing with tools like Can I Use and the text-based Lynx browser reveals accessibility issues and platform limitations developers must address. - **Hotwire vs React Decision:** Choose Hotwire when state management dominates your problem and visual interactivity is minimal, keeping source of truth server-side. Select React when complex visual interactivity requires local state management, accepting larger initial downloads for subsequent performance gains. - **Browser as Runtime:** Browsers function as complete UI runtimes capable of executing applications offline without HTTP requests. This enables Progressive Web Apps and eliminates learning native frameworks like SwiftUI or GTK, making visual programming accessible to web developers immediately. → NOTABLE MOMENT Kenville proposes a deliberately absurd compression algorithm where server AI generates alt text from images, transmits only text over limited bandwidth, then client AI reconstructs images locally—illustrating extreme tradeoffs between processing power and network constraints. 💼 SPONSORS [{"name": "Judo Scale", "url": "judoscale.com"}, {"name": "Scout Monitoring", "url": "scoutapm.com"}] 🏷️ Web Browsers, HTTP Protocol, Front-End Architecture, Hotwire

AI Summary

→ WHAT IT COVERS Joelle and Sally examine code review heuristics and quality signals in pull requests, exploring how to identify well-structured code through PR size, descriptions, file organization, testing approaches, and the emerging challenges of AI-generated code. → KEY INSIGHTS - **PR Size and Scope:** Pull requests with 1,500+ lines signal potential quality issues because breaking work into smaller chunks forces better thinking and architecture. Concise PRs with detailed descriptions demonstrate thoughtful development, especially for complex bug fixes requiring context. - **Code Organization Patterns:** Well-structured code allows review at multiple abstraction levels—scan file names for overall approach, read public methods for behavior, examine private methods for implementation details. This layered readability indicates quality architecture versus requiring full detail absorption upfront. - **Full-Stack Ticket Strategy:** Break work by delivering complete vertical slices of value rather than horizontal architectural layers. Each PR should ship end-to-end functionality, even minimally, making breakages easier to isolate and avoiding dead code that awaits future integration with other layers. - **AI-Generated Test Pitfalls:** AI produces thorough-looking tests that may not actually validate changes. Test quality check: remove the new code and verify the test fails. Test-first approaches typically produce simpler, interface-focused tests versus test-after approaches that over-mock and couple to implementation details. → NOTABLE MOMENT Sally reveals she can often identify whether tests were written before or after implementation by examining coupling patterns, mocking behavior, and setup data structure—test-first code focuses on interfaces while test-after code reveals knowledge of internal implementation through unnecessary complexity. 💼 SPONSORS [{"name": "Judo Scale", "url": "https://judoscale.com"}, {"name": "Scout Monitoring", "url": "https://scoutapm.com"}] 🏷️ Code Review, Pull Request Quality, Test-Driven Development, AI Code Generation

Never miss Joelle Kenville's insights

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

Start Free Today

No credit card required • Free tier available