Skip to main content
JK

Joelle Kinville

Joelle Kinville is a software engineer with deep expertise in Ruby on Rails development and a nuanced perspective on the craft of software design. Through her podcast appearances, she explores complex technical challenges beyond mere coding, examining how software professionals think about problems like custom object attributes, job roles, and system design. Kinville is particularly adept at unpacking the strategic and philosophical dimensions of software engineering, challenging conventional thinking about development practices and highlighting the intellectual work that happens before and around writing code. Her insights often center on creating more intentional, thoughtful approaches to building software systems, with a keen eye for design patterns, security considerations, and the human factors that shape technical solutions.

3episodes
1podcast

Featured On 1 Podcast

All Appearances

3 episodes

AI Summary

→ WHAT IT COVERS Joelle and Sally explore ActiveModel custom attributes in Rails, examining how to create rich objects that serialize to database primitives while maintaining domain logic, with examples including phone numbers, money, and percentages. → KEY INSIGHTS - **Custom Attribute Pattern:** Store primitive values like strings or integers in the database, but access them as rich objects with domain methods. Phone numbers stored as strings become PhoneLib objects with formatting, validation, and country detection capabilities. - **Query Integration:** Custom attributes enable querying with rich objects instead of raw values. Pass a PhoneLib object directly into ActiveRecord where clauses without worrying about format matching, as the attribute handles serialization automatically during database operations. - **Normalization Strategy:** Implement database normalization in custom attributes to enable reliable querying and indexing. Store phone numbers in E164 format or percentages as decimals consistently, while presenting user-friendly formats in views without scattered conversion logic throughout the codebase. - **Abstraction Benefits:** Consolidate scattered helper methods and conversion logic into single attribute classes. Replace repeated divide-by-100 and times-100 operations for percentages with domain objects that handle display formatting, mathematical operations, and storage transparently across multiple models. → NOTABLE MOMENT Sally realizes she has been using custom attributes through the MoneyRails gem without understanding the underlying pattern, discovering how this approach eliminates the mental overhead of remembering which format percentages use in different database columns. 💼 SPONSORS [{"name": "Judo Scale", "url": "https://judoscale.com"}, {"name": "Scout Monitoring", "url": "https://scoutapm.com"}] 🏷️ ActiveModel, Rails Architecture, Domain Objects, Database Serialization

AI Summary

→ WHAT IT COVERS Stephanie and Joelle examine impersonation features in web applications, exploring why developers should question implementation requests, consider security implications, and design admin tooling that solves core problems without hijacking user identities. → KEY INSIGHTS - **Impersonation as symptom:** Requests for impersonation features often signal inadequate admin tooling. Instead of allowing admins to hijack user sessions, build dedicated admin interfaces where support staff can modify customer settings directly without identity switching. - **Decouple from current_user:** Design resources to accept user parameters rather than relying on global current_user state. Build standard resourceful routes with IDs, then layer vanity URLs as aliases. This enables admins to view any user's dashboard through authorization policies without impersonation. - **Audit trail corruption:** True impersonation breaks observability and analytics. When admins become users, exception logs lose context about who triggered errors, audit trails misattribute actions, and security teams cannot track admin behavior. Maintain admin identity while rendering user-specific views instead. - **Authorization over identity switching:** Implement view-as functionality that preserves admin identity while displaying user perspectives. This approach maintains proper logging, enables differentiated permission sets between admins and users, and prevents security vulnerabilities from session hijacking without sacrificing debugging capabilities. → NOTABLE MOMENT One developer described receiving confusing exception notifications from inactive accounts, only to discover admins impersonating users triggered the errors. Without knowing which admin caused the issue, the team could neither help nor fix the underlying problem. 💼 SPONSORS [{"name": "WorkOS", "url": "https://workos.com"}] 🏷️ Admin Tooling, Authorization Design, Security Architecture, Product Consulting

AI Summary

→ WHAT IT COVERS Joelle and Sally examine software job titles like engineer, developer, and architect, exploring how these borrowed metaphors fail to capture the full scope of consulting work that blends coding, planning, mentoring, and business strategy. → KEY INSIGHTS - **Coding versus thinking ratio:** Writing code represents minimal time compared to thinking, researching, and discussing solutions. The mechanical act of typing code is like calling a surgeon a cutter—it misses where true expertise lies in problem-solving and design decisions. - **Waterfall versus iterative development:** Separating design from implementation through upfront planning or AI tools breaks valuable feedback loops. Realizations about what needs building often emerge during coding itself, making tight cycles between designing and implementing essential for discovering the right solution. - **Consulting as teaching:** Successful client engagements end when clients no longer need consultants. This requires sharing process knowledge, teaching evaluation skills, and enabling teams to continue independently—whether learning Rails, testing practices, or running software organizations for the first time. - **Question-asking as core skill:** The most transferable consulting ability is asking why tasks matter, exploring alternatives, and finding minimal viable solutions. This questioning approach—done skillfully to avoid annoyance—prevents building wrong things and surfaces better paths forward throughout development. → NOTABLE MOMENT Sally discovered her grandmother's hand-pieced quilt contained sewing mistakes from the original maker, which released her anxiety about perfection. Recognizing the previous quilter as human struggling with the same frustrations transformed her approach to both the project and legacy code. 💼 SPONSORS [{"name": "Judo Scale", "url": "judoscale.com"}, {"name": "Scout Monitoring", "url": "scoutapm.com"}] 🏷️ Software Consulting, Job Titles, Agile Development, Mentorship

Never miss Joelle Kinville's insights

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

Start Free Today

No credit card required • Free tier available