Afleveringen

  • On this episode of "Ruby for All," hosts Andrew and Julie catch up with Julie returning after a bout of strep throat, and then share their excitement about having guest Bobbilee Hartman, the founder of Rails Camp West USA, joining them. Bobbilee discusses the origins of Rails Camp, its unique unplugged experience, and the variety of activities attendees can engage in, from coding retreats to outdoor adventures like hiking zip-lining, and kayaking. She also shares the logistics of organizing such an event, the sense of community it fosters among tech professionals, and how it differentiates from traditional conferences by offering a more personalized, inclusive, and memorable experience. The episode also touches on the challenges and joys of planning such an event, future locations, and the benefits of sponsoring, Press download to hear more!

    [00:00:39] Bobbilee explains her history with tech community events and Rails community, mentioning her shift to developer relations, the start of Rails Camp, and her personal interests.

    [00:01:27] Andrew expresses his long-standing interest in Rail camp since college, and Bobbilee details the Rails Camp US experience.

    [00:08:01] Bobbilee talks about the evolution of Rails Camp, its sponsorship, and the organization, including the scholarship program, location changes, food arrangements, and personal outreach for ticket sales and promoting the event.

    [00:13:19] Andrew inquires about the unique benefits of Rails Camp’s style of conference. Bobbilee discusses the small size of Rails Camp, how it caters to different communication styles, and facilitates community through organic interactions rather than traditional networking.

    [00:15:35] Addressing Julie’s concerns about attending unfamiliar events, Bobbilee emphasizes that most attendees come alone, and the event’s structure in small groups makes it welcoming for newcomers. She mentions various options for lodging and activities, accommodating different comfort levels and financial situations.

    [00:17:56] Bobbilee explains the intense planning involved in Rails Camp, finding new venues each year, working with new partners, and sourcing local items for goodie bags.

    [00:19:55] Bobbilee shares her personal rewards from organizing Rails Camp, such as staying connected with the tech community, helping sponsors, and maintaining relationships as life becomes busier.

    [00:22:17] Andrew talks about his own experiences with big conferences and appreciates the small group activities and inclusiveness at Rails Camp. Bobbilee explains how meals and activities are organized to ensure inclusivity and engagement, and she details her vigilance in ensuring all participants feel included.

    [00:24:20] We learn that Rails Camp is being held in Cascade, Idaho this year. The venue is a top-rated summer camp with numerous activities, located on a private lake, and Bobbilee expresses a desire to include whitewater rafting as an activity and is seeking a sponsor if anyone is interested.

    [00:27:13] Julie is curious about the venue selection process, and Bobbilee explains that she uses a combination of her saved lists, summer camp directories, and Google Maps to ensure venues are in suitable locations.

    [00:31:46] Bobbilee leaves listeners with the idea that Rails Camp is a simple, all-inclusive experience for those seeking an alternative to big conferences, emphasizing easy logistics and a variety of activities available.

    [00:33:26] The conversation wraps up with Bobbilee discussing sponsorship opportunities with various benefits attached to different levels of support.

    Panelists:

    Andrew Mason

    Julie J.

    Guest:

    Bobbilee Hartman

    Sponsors:

    Honeybadger

    GoRails

    Links:

    Andrew Mason X/Twitter

    Andrew Mason Website

    Julie J. X/Twitter

    Julie J. Website

    Bobbilee Hartman Website

    Bobbilee Hartman X/Twitter

    Bobbilee Hartman LinkedIn

    Rails Camp USA X/Twitter

    Rails Camp West
    Rails Camp West Registration

    (00:00) - Bobbilee's Tech Community Journey(01:27) - Rails Camp US Experience Overview(08:01) - Evolution and Organization of Rails Camp(13:19) - Unique Benefits of Rails Camp(15:35) - Making Rails Camp Welcoming for Newcomers(17:56) - Intense Planning and Logistics of Rails Camp(19:55) - Personal Rewards of Organizing Rails Camp(22:17) - Appreciation for Rails Camp's Inclusiveness(24:20) - Venue Details for Rails Camp 2024(27:13) - Venue Selection Process(31:46) - Rails Camp: A Simple, All-Inclusive Experience(33:26) - Sponsorship Opportunities Wrap-Up
  • In this episode of 'Ruby for All', host Andrew is joined by guest Drew Bragg to talk about the ins and outs of the Sin City Ruby conference. Drew provides a comprehensive breakdown of the event, highlighting the mix of technical and lifestyle talks presented, the benefits of regional conferences for building community and networking, and the unique atmosphere that smaller, regional conferences offer. Additionally, the episode covers the importance of Ruby and Rails in current technology, personal experiences with speaking and organizing community events, and thoughts on the future of regional programming conferences. The conversation concludes with Drew emphasizing the value of these gatherings in strengthening the Ruby community and encouraging participation in future events. Hit download now to hear more!

    [00:00:29] Drew introduces himself and tells us what he does, and Andrew explains why he didn’t attend the conference and what he did instead.

    [00:02:45] Drew talks about his game show-style talk he gave, which is interactive and challenges attendees’ knowledge of esoteric Ruby syntax.

    [00:05:31] Andrew brings up seeing Jason’s talk and the attendee makeup at Sin City Ruby, noting many new faces and speculating on the impact of regional conferences bringing in local attendees who might not travel to larger conferences.

    [00:07:51] Andrew asks about the speakers’ dinner, which Drew describes as a communal eating experience.

    [00:11:42] Drew explains the first day began with a forced socialization event which Drew found more pleasant in a smaller conference setting.

    [00:12:44] Andrew inquires about the style of talks at Sin City Ruby, wondering if there was a particular focus. Drew describes the conference as having a mix of topics with some technical, business-related, and lifestyle-oriented tasks related to Ruby and Rails.

    [00:14:01] Drew mentions enjoying Stéfanni Brasil’s talk, Jason’s live coding dressed as Elvis was very entertaining and hilarious, and Obie Fernandez’s closing keynote offering a different perspective on AI’s impact on the industry.

    [00:15:40] Regarding lack of recordings at the conference, Drew sees benefits form a speaker’s perspective, and acknowledges that recordings can be valuable for review and as a portfolio asset.

    [00:18:41] Drew prefers speaking at smaller conferences for the close-knit atmosphere and better audience interaction but acknowledges that larger conferences have their own advantages.

    [00:21:12] Andrew asks what went well with this conference, and Drew explains he appreciates the laid-back nature and mentioned the relaxed atmosphere set by organizer Jason Swett made the event feel more like a meetup.

    [00:24:23] Drew shares that he didn’t find any aspect of the conference that didn’t go well and praises the simplicity of regional conferences like Sin City Ruby. He emphasizes the convenience of Vegas as a conference location.

    [00:25:40] Discussing Vegas itself, both Andrew and Drew enjoyed visiting Hoover Dam and the overall experience of connecting with people with shared interests in Ruby. They also touch on having fun people-watching and the vibrant environment of “Old Vegas.”

    [00:27:55] Drew’s takeaway from the conference is the reaffirmation of Ruby and Rails’ potential and expresses enthusiasm for the talks he attended, singling out Tom Rossi’s as particularly energetic and engaging.

    [00:31:01] Drew promotes the idea of attending or organizing local conferences for their intimate nature and the connections they foster. He gives a shout-out to several upcoming Ruby conferences.

    [00:32:05] Find out where you can follow Drew and his podcast online.

    Panelist:

    Andrew Mason

    Guest:

    Drew Bragg

    Sponsors:

    GoRails

    Honeybadger

    Links:

    Andrew Mason X/Twitter

    Andrew Mason Website

    Julie J. X/Twitter

    Julie J. Website

    Drew Bragg X/Twitter

    Drew Bragg Mastodon

    Drew Bragg Website

    Code and the Coders who Code it Podcast
    Sin City Ruby 2024

    (00:29) - Sin City Ruby: Drew’s Introduction(02:45) - Game Show Talk: Testing Ruby Knowledge(05:31) - New Faces at Sin City Ruby(07:51) - Speakers' Dinner: A Communal Experience(11:42) - Forced Socialization: Networking Made Easy(12:44) - Talk Styles: Technical to Lifestyle(14:01) - Highlight Talks: From Elvis to AI(15:40) - The No-Recording Debate(18:41) - Small vs. Large: Conference Dynamics(21:12) - What Made Sin City Ruby Shine(24:23) - The Simplicity of Regional Conferences(25:40) - Vegas Adventures: Beyond the Conference(27:55) - Ruby’s Vibrant Future and Energetic Talks(31:01) - The Value of Local Conferences(32:05) - Following Drew: Online and Beyond
  • Zijn er afleveringen die ontbreken?

    Klik hier om de feed te vernieuwen.

  • In this episode of "Ruby for All," hosts Andrew and Julie take us through a journey of debugging, from dealing with weather-induced moods to squashing tricky bugs in their code. They touch on the challenges of debugging without audio guidance, leveraging logs for troubleshooting, and the logical approach to handling errors in Ruby or JavaScript. They dive into the variations of different debugging tools, such as Pry and the Rails Logger, and the complexities of transitioning to new debugging gems. Andrew recounts a perplexing bug only replicable in production and details his process and concluding the issue. As they navigate the intricacies of problem-solving, they contemplate the worth of fixing minor bugs versus prioritizing major ones, drawing on real-life examples from their experiences. Andrew wraps up with a reminder of the importance of teamwork in debugging, while they both acknowledge the reality that sometimes, a bug might just remain unfixed. Join them as they share insights and laughter, reminding us of the human element in the world of code.

    [00:00:54] Andrew describes the bug issue he had and the difficulties of debugging it without audio in the screen recording, and Julie shares her own debugging challenges on her new team.

    [00:02:00] Let’s talk about debugging, as Andrew explains different types of bugs and shares his process for understanding and reproducing bugs. Julie emphasizes the importance of understanding the product and the expected behavior to replicate and debug issues.

    [00:03:31] Andrew describes his approach to getting unstuck during debugging, which includes revisiting the problem statement and using logs to trace the issue.

    [00:05:14] Andrew asks Julie if she can replicate her bug in production and suggests using logs for troubleshooting. Julie talks about her approach to errors, which differs as she doesn’t typically see the red Rails error page in her work. They discuss how to deal with JavaScript errors and the importance of reading error messages.

    [00:08:57] Julie inquires why some developers may overlook details in error messages, and Andrew suggest that assumptions and a form of panic might play roles and discusses when he’s more likely to Google error messages, especially regarding dependencies.

    [00:13:22] Andrew explains why he prefers using the ‘Rails Logger’ over ‘puts’ for debugging. He also mentions using Overmind and tmux for viewing Rails logs.

    [00:14:39] Julie draws a parallel between ‘puts’ debugging and JavaScript’s console.log debugging. Andrew confirms they are similar, and he shares his transition from using Pry to the official debug gem and the difficulty of changing old habits.

    [00:16:30] Andrew clarifies that binding.irb now uses the debug gem by default in Ruby 3, he discusses the usefulness of Pry’s context-switching feature, and he outlines additional steps for effective debugging.

    [00:19:52] There’s a conversation on using git for tracking code changes and git-bisect for isolating commits that caused issues, and questioning assumptions, reading documentation, and getting a second opinion or sleeping on the problem.

    [00:23:17] Andrew discusses the mindset required for effective debugging: patience, persistence, and the willingness to step away and return to a problem. Julie describes a very specific bug affecting a small number of users questioning with her manager whether it’s worth the effort to fix it.

    [00:25:43] Back to Andrew’s story about a bug that he couldn’t replicate in development, but could in production, and he details his process and realization that it was a display issue in the front-end.

    [00:31:09] Julie relates to Andrew’s difficulty in replication bugs in development and suspects filtering differences in production. Andrew suggests troubleshooting methods for errors related to data discrepancies.

    [00:33:11] Andrew shares a tip about using data to back up arguments when trying to convince others during decision-making, and Julie recounts realizing the low impact of the bug she’s working on and it it’s worth the effort.

    Panelists:

    Andrew Mason

    Julie J.

    Sponsors:

    Honeybadger

    GoRails

    Links:

    Andrew Mason X/Twitter

    Andrew Mason Website

    Julie J. X/Twitter

    Julie J. Website

    Overmind

    tmux

    IRB

    git/git-bisect

    (00:54) - Debugging Dilemmas: Screen Recordings Without Sound(02:00) - The Debugging Process: Understanding & Reproducing Bugs(03:31) - Unstuck Strategies: Logs & Revisiting the Problem(05:14) - Logs for Troubleshooting: Rails vs. JavaScript Errors(08:57) - Overlooking Error Messages: Assumptions & Panic(13:22) - Rails Logger vs. Puts: Debugging Preferences(14:39) - Debugging in JavaScript: Console.log Similarities(16:30) - Ruby Debugging Evolution: Pry to Debug Gem(19:52) - Git Tricks: Code Tracking & git-bisect(23:17) - Debugging Mindset: Patience, Persistence & Breaks(25:43) - Production Bugs: Front-end Display Issues(31:09) - Replicating Bugs: Development vs. Production(33:11) - Data-Driven Decision Making: Convincing with Evidence
  • In this episode of Ruby for All, Andrew and Julie chat about their recent experiences, including a ski trip with challenges due to a storm, and discuss burnout and returning to regular podcasting. Special guest, Ryan Caldwell, a software engineer at GitHub working on Copilot, joins the conversation to discuss his work, particularly on chat-related features of Copilot. Ryan shares insights on programming languages, leaning into his transitions between Ruby, Java, and Go, and navigating the differences between dynamically and statically typed languages. The conversation covers the benefits and challenges of implementing type checking in Ruby with Sorbet, especially in large projects like GitHub. Ryan advocates for learning Ruby on Rails, praises its efficiency for staring profitable projects, and provides tips for using Copilot Chat effectively. Press download now to hear more!

    [00:00:23] Julie fills us in on a recent skiing trip to went on in California, the huge storm they encountered and leaving early to avoid being stranded, the broken chain on their car, and a scary moment on a slope with her kids. Andrew shares he experienced burnout but sees improvement.

    [00:02:47] Ryan Caldwell introduces himself and tells us what he does.

    [00:03:53] Andrew asks Ryan about the programming languages used for Copilot, leading to a discussion about using Go for its REST API, the manageability of the project, and Ryan’s transition from Codespaces to Copilot after paternity leave.

    [00:04:49] Andrew wonders why Go was chosen, and Ryan explains the team’s familiarity with Go and the language’s simplicity.

    [00:06:12] Ryan reflects his first programming language and journey through JavaScript, Python, Java, and Ruby, highlighting his appreciation for Ruby. He talks about learning Ruby on the job, and his fondness for Rails.

    [00:08:02] Ryan discusses the challenges of picking up new languages and his approach to learning through project involvement.

    [00:09:24] Andrew asks about the shift from dynamic to typed languages, and Ryan shares his experiences transitioning from Ruby to Go.

    [00:11:53] We hear about Ryan’s work on type checking with Sorbet at GitHub, and he shares that Sorbet helped find edge cases and bugs, improving the code by requiring changes to the structure to prevent these issues.

    [00:15:09] Ryan feels the biggest benefit of Sorbet is enforcing developers to consider boundaries and contracts between classes, which encourages thoughtful coding and design. A downside he mentions is the time and confusion involved in the migration process, particularly for team members unfamiliar with the new syntax.

    [00:17:11] Julie inquires if Ryan would do anything differently regarding Sorbet implementation. He reflects on the challenge of estimating the time required for implementing Sorbet, dealing with complex code, and the difficulty of refactoring legacy code without comprehensive tests.

    [00:18:44] Would Ryan go back to Ruby/Rails without Sorbet? He states that he would for personal projects for speed but appreciates Sorbet in team settings for defining clear code boundaries.

    [00:19:31] Ryan suggests that small teams should consider Sorbet if it solves a specific problem, rather than adopting it without a clear purpose.

    [00:21:40] Ryan discusses his pride in streamlining the authentication process across different clients in Copilot, leading to a simplified codebase for the team. A tip he shares is to provide as much context as possible when using Copilot Chat to get better responses.

    [00:25:35] Andrew talks about custom instructions for ChatGPT, like ensuring all output is in bullet points, and wonders if such a feature exists for Copilot.

    [00:28:46] Ryan advises newer developers to be intentional about what they chose to learn in software development, emphasizing the importance of investing learning time wisely. And yes, Ruby on Rails is still worth learning in 2024.

    [00:31:03] Find out where you can follow Ryan on the interwebs.

    Panelists:

    Andrew Mason

    Julie J.

    Guest:

    Ryan Caldwell

    Sponsors:

    Honeybadger

    GoRails

    Links:

    Andrew Mason X/Twitter

    Andrew Mason Website

    Julie J. X/Twitter

    Julie J. Website

    Ryan Caldwell X/Twitter

    Ryan Caldwell GitHub

    GitHub Copilot

    Go

    Sorbet

    Visual Studio Code-GitHub Copilot Series (YouTube)

    (00:00) - Ski Trip and Snow Adventures(02:47) - Ryan Caldwell's Intro(03:53) - Copilot’s Language Choice(06:12) - Journey Through Programming(09:24) - Dynamic to Typed Languages(11:53) - Sorbet’s Impact at GitHub(17:11) - Reflecting on Sorbet(21:40) - Copilot’s Authentication Success(25:35) - Customizing Copilot Chat(28:46) - Learning Paths in Software Dev(31:03) - Where to Follow Ryan
  • In this episode of Ruby for All, Andrew and Julie discuss the intricacies of callbacks in Active Record models. They talk about their experiences, the pros and cons of using callbacks, and the issues they faced. They also share some helpful use cases for callbacks, including user authentication, logging and auditing, custom slug generation, and the concept of “hooks.” Also, Andrew and Julie review their ways of dealing with callbacks testing and debugging in a Rails application. Press download now to hear more!

    [00:02:32] Let’s learn about “callbacks” in Rails as Andrew explains what they are and uses an example of a blog post to explain how a callback might function when saving a post.

    [00:03:56] Julie inquires if Tiptap can be used in a browser for apps and they discuss before-save callbacks in a post model and how they can be used to extract and save a title.

    [00:06:19] Andrew elaborates on the three different types of callbacks: before, after, and around callbacks, and gives examples of each.

    [00:10:06] They discuss practical uses for before-validation callbacks, such as setting default values.

    [00:11:12] Andrew clarifies the concept of “hooks” in programming, comparing it to callbacks.

    [00:12:18] Julie asks for examples of actions taken after validation versus before validation.

    [00:13:19] Andrew talks about how a file upload, an after-create callback can be used for processing the file such as generating thumbnails or updating related resources. He lists examples use cases for callbacks like hashing passwords before saving to the database during user authentication, triggering email notifications after a comment is posted, and logging and auditing activities like user sign-ups or errors.

    [00:15:57] Julie is curious about whether deleted accounts really remove all user data or just make it as inaccessible, noting some services offer a soft delete option with a time window to recover the account. Andrew has not yet encountered the fallback log issue he set up but explains how before-destroy callbacks could be used to implement a time-based soft delete system.

    [00:17:19] Andrew describes using before-create callbacks for generating custom slugs for blog posts automatically.

    [00:17:54] Andrew recalls a discussion at RailsConf about the diverse opinions on using callbacks, with some developers strongly against them and others in favor. He acknowledges that while callbacks can simplify complex operations, they can also make debugging difficult and can become problematic if used excessively or inappropriately.

    [00:23:00] Julie asks Andrew where he stands on the use of callbacks, and he positions himself in the middle, closer to using them when appropriate.

    [00:25:16] Andrew emphasizes being cautious with callbacks and explains that callbacks are useful when certain actions need to happen automatically without explicit instruction every time a record is saved.

    [00:27:40] Andrew discusses the challenges of testing callbacks, as they can require additional setup in tests and slow down the test suite. He concludes that callbacks are an integral part of Rails, he advises against using them as the first solution and recommends weighing their pros and cons carefully.

    Panelists:

    Andrew Mason

    Julie J.

    Sponsors:

    Honeybadger

    GoRails

    Links:

    Andrew Mason X/Twitter

    Andrew Mason Website

    Julie J. X/Twitter

    Julie J. Website
    Active Record Callbacks

    Tiptap

    (00:00) - Intro and Topic Overview(02:32) - Introduction to Callbacks in Rails(03:56) - Discussing Before-Save Callbacks and Tiptap(06:19) - Types of Callbacks: Before, After, and Around(10:06) - Uses for Before-Validation Callbacks(11:12) - Hooks vs Callbacks(12:18) - Practical Use Cases for Callbacks(15:57) - Soft Delete Options and Before-Destroy Callbacks(17:19) - Generating Custom Slugs with Before-Create Callbacks(17:54) - Diverse Opinions on Using Callbacks from RailsConf(23:00) - Andrew's Not an Expert(25:16) - Caution and Appropriate Use of Callbacks(27:40) - Challenges of Testing Callbacks
  • In today’s episode, Andrew and Julie dive into the topic of onboarding onto new teams. Julie discusses her latest venture of switching teams, and Andrew sheds light on the innovative “Shape Up” method by Basecamp that’s shaking things up in the project management world, and why he prefers this over Agile. There’s talk of the dreaded technical debt, and how to keep it in check, plus the perks of pair programming and the need for a solid support system at work. Besides tackling these workplace issues, they also touch on the challenge of maintaining personal relationships in a remote working environment, keeping old team ties strong, and why asking questions is key to professional growth. Press download now to hear more!

    [00:01:45] Julie gives us an update on the changes at her work, transitioning from a consumer team to a platform team. She mentions that her old team is shifting from two-week sprints to a new process called “Shape Up,” which Andrew explains it as a product/project management philosophy from Basecamp, focusing on a six-week cycle.

    [00:03:08] Andrew details the process of shaping a feature, setting boundaries, identifying risks, and then pitching it.

    [00:04:25] Julie inquires about the involvement of engineers in the shaping and betting processes, and Andrew describes how it works at Podia, and how they used Flipper.

    [00:06:33] Andrew discusses the “cool down” period after a project cycle, which at Podia involves monitoring for bugs and wrapping up the project details rather than no scheduled work.

    [00:07:42] The topic of technical debt is addressed, with Andrew acknowledging its inevitability and the importance of staying on top of it through practices like support weeks.

    [00:10:54] Andrew expresses preference for the Shape Up process over Agile, appreciating the longer time frames, collaborative problem-solving with designers, and a less stressful experience with more planned projects.

    [00:12:14] Julie shares her transition to a new team and the challenges of ramping up, contrasting it with her experience from two years ago and feeling the pressure to not ask basic questions due to her years of experience.

    [00:13:53] Julie discusses the pressure she feels to ramp up quickly on her new team, acknowledging its self-imposed. Andrew and Julie talks about the onboarding process, where Julie notes the benefit of scheduled pair programming sessions with teammates as a key part of her learning.

    [00:15:44] Andrew shares Podia’s onboarding method, which involves acting like a user of the application to understand its various parts. Julie reflects on the complexity of her new team’s codebase and the challenge of understanding how services interact.

    [00:17:51] Andrew suggest creating a service diagram to visualize service interactions, something he found useful in previous jobs. Julie considers the idea and mentions the potential benefits of a detailed visual representation of the service interactions for her understanding.

    [00:19:48] Julie and Andrew discuss the social dynamics of joining a new team with established relationships and the extra challenge of doing it so remotely. Andrew shares similar experiences and the importance of being inclusive to new team members.

    [00:21:59] Andrew shares how he’s an introvert by nature, and Julie and Andrew both agree on the importance of asking questions and having supportive seniors and leaders who encourage a culture of inquiry.

    [00:26:05] Julie talks about maintaining relationships with her old team and the value of keeping professional connections active, even after moving to a new team or company.

    Panelists:

    Andrew Mason

    Julie J.

    Sponsors:

    Honeybadger

    GoRails

    Links:

    Andrew Mason X/Twitter

    Andrew Mason Website

    Julie J. X/Twitter

    Julie J. Website
    Shape Up

    Flipper

    (00:00) - Intro and Topic Overview(01:45) - Julie's Team Transition and Shape Up Method(03:08) - Andrew on Shaping a Feature in Shape Up(04:25) - Engineer Involvement in Shaping and Betting(06:33) - Podia's "Cool Down" Period After Project Cycles(07:42) - Addressing Technical Debt(10:54) - Preference for Shape Up Over Agile(12:14) - Julie's Transition and Ramping Up Challenges(13:53) - Onboarding Process and Pair Programming(15:44) - Podia's Onboarding Method(17:51) - Creating a Service Diagram for Understanding Interactions(19:48) - Social Dynamics of Joining a New Team Remotely(21:59) - Importance of Asking Questions and Supportive Culture(26:05) - Maintaining Relationships with Old Teams
  • In this episode of Ruby for All, Andrew and Julie welcome special guests, James Garcia, Eric Halverson, and Caleb Mitchell, all part of The Agency of Learning run by Dave Paola. Today, they share their unique journeys into software development, ranging from music to technical support backgrounds, and their involvement in The Agency of Learning. They discuss the value of the Ruby community, the joy of coding in Ruby, and the complexities of keeping up with Rails in a fast-paced tech environment. The conversation also touches on the importance of community in learning and how to get involved in the Ruby ecosystem, wrapping up with practical advice on handling race conditions in coding projects. Press download now to hear more!

    [00:00:13] Julie wonders if Andrew launched his feature and he mentions a setback due to architectural challenges. Julie relates to his issues sharing she faced a race condition blocking a release.

    [00:01:24] Julie mentions the Ruby for All Book Club and three guests joining them, who are a part of that club, where they are reading, The Well-Grounded Rubyist.

    [00:02:02] Eric, Caleb, and James introduce themselves and talk about their backgrounds.

    [00:05:36] What is The Agency of Learning? Eric shares his view and experience as an amazing ride, and James describes it as a “finishing school” for new programmers.

    [00:09:17] Andrew inquires about the unique challenges faced by Caleb due to his music background. Caleb discusses the time management challenges of balancing music and programming.

    [00:11:41] Julie’s interested to understand the guests’ experiences and challenges at The Agency of Learning. Caleb talks about the challenges of working with large, preexisting codebase. James adds to Caleb’s points, discussing the learning experiences with different production apps.

    [00:13:50] Andrew asks Julie about her experience working for Ruby for Good projects, and she expresses her enthusiasm for Ruby for Good. Andrew tells us what he did with contributing and praises Ruby for Good and encourages listeners to contribute.

    [00:14:43] Eric tells us about his current career position, and he describes a personal existential crisis following an intense project for a Rails conference, which led to a period of burnout and a shift in focus back to Ruby fundamentals.

    [00:18:08] Eric shares advice from Cody Norman, a lead at The Agency of Learning, about pursuing what inspires you. Andrew relates to Eric’s return to fundamentals and shares a perspective on learning Rails and Ruby.

    [00:19:41] Andrew asks about the hardest part of learning Rails in 2023. James discusses the challenge of keeping up with front-end updates in Rails, specifically Hotwire and Turbo Drive. Caleb talks about the challenge of focusing learning on an era with abundant resources and highlights Launch School and The Odin Project as helpful resources. Eric reflects on the complexity of Rails and strategies learning it.

    [00:24:21] Julie asks the guests if they would recommend Rails to others or change their own journey. Caleb states his positive experience with Ruby and Rails, suggesting it as a good starting point. James enjoys Rails and believes it helped him understand programming fundamentals, Eric speaks highly of Ruby and Rails and values the community.

    [00:27:15] Julie mentions that Ruby’s appeal kept her in software engineering and would recommend it as a first language. Andrew reflects on advising his brother on programming languages, highlighting the clarity Ruby brought him after learning Java.

    [00:29:20] Eric credits Julie for highlighting the importance of community in learning to program and James emphasizes reaching out for help in the Ruby community, praising its supportive nature.

    [00:30:53] Andrew asks for advice on how to join the Ruby community. James tells us to connect through Twitter, Discord, and conferences. Caleb recommends reaching out to study or work with others, leading to lasting relationships. Eric started with podcasts, moved to Twitter, then conferences.

    [00:34:09] Julie shares two Discord groups for joining the Ruby community: The Ruby Learning Center and the GoRails Discord.

    [00:34:24] Find out where you can follow Eric, Caleb, and James online.

    [00:35:26] Andrew explains and gives an example of a race condition, since Julie had one at work that was driving her crazy.

    Panelists:

    Andrew Mason

    Julie J.

    Guests:

    James Garcia

    Eric Halverson

    Caleb Mitchell

    Sponsors:

    Honeybadger

    GoRails

    Links:

    Andrew Mason X/Twitter

    Andrew Mason Website

    Julie J. X/Twitter

    Julie J. Website

    Eric Halverson X/Twitter

    Eric Halverson LinkedIn

    James Garcia X/Twitter

    James Garcia LinkedIn

    Caleb Mitchell LinkedIn

    Caleb Mitchell Neovim-GitHub

    The Agency of Learning

    Ruby for Good

    Cody Norman X/Twitter

    Dave Paola X/Twitter

    Ruby for All-Episode 37: The Agency of Learning with Dave Paola

    The Well-Grounded Rubyist by David A. Black

    Launch School

    The Odin Project

    The Ruby Learning Center Discord

    GoRails Discord Server

    Race condition

    (00:00) - Intro and Welcome(00:13) - Julie's Setback and Race Condition Issue(01:24) - Ruby for All Book Club Mention(02:02) - Introduction of Eric, Caleb, and James(05:36) - The Agency of Learning Explained(09:17) - Caleb's Challenges Balancing Music and Programming(11:41) - Guests' Experiences at The Agency of Learning(13:50) - Julie on Ruby for Good Projects(14:43) - Eric's Career Position and Return to Ruby Fundamentals(18:08) - Eric on Inspiration and Learning Rails and Ruby(19:41) - Hardest Part of Learning Rails in 2023(24:21) - Guests' Thoughts on Recommending Rails(27:15) - Julie and Andrew on Ruby's Appeal(29:...
  • In this episode of Ruby for All, Andrew and Julie reconnect after a three-week break to share how they spent their vacation and their plans for the new year, as Julie talks about her family’s newest addition, a Whippet named Lucy, and Andrew getting plenty of rest, some rock climbing, and a hot yoga class. Then, they dive into the topic of burnout, sharing their personal experiences and strategies for managing burnout effectively. They discuss looking forward to Ruby 3.3, upcoming conferences, and a collective aim to level up their careers. Join Andrew and Julie as they kick off the new year with optimism and hit download now!

    [00:00:17] Andrew and Julie catch up and discuss their Christmas breaks. Julie reveals they have a new family dog and Andrew reveals he would like to get a dog one day.

    [00:02:10] Andrew discusses his restful break, hibernating, visiting Virginia, rock climbing, and enjoyed a hot yoga class.

    [00:04:50] Over break, Julie started reading the book, “99 Bottles of OOP” by Sandi Metz and catching up on conference talks. She considers redoing her app with Turbo and Rails.

    [00:05:56] Andrew started reading “Practical VIM” but he’s ready to switch to Neovim. He’s been reading multiple books, trying to regain his love for reading, and he sets goals to read more and started using book summaries on Blinkist.

    [00:07:30] Andrew and Julie reminisce about their childhood reading habits. Julie talks about her struggles with reading comprehension and trying to pick it up again.

    [00:10:36] Andrew discusses his experience with speed reading techniques and explains how speed reading doesn’t necessarily impact his ADHD. He discusses extracting key points from books without reading every word.

    [00:12:37] Julie feels burned out from work and finds reading “99 Bottles of OOP” refreshing, and she expresses her ongoing burnout and asks Andrew’s thoughts on this.

    Andrew shares his personal warning signs of burnout, which includes losing the joy of programming, neglecting health, and feeling stuck and discouraged.

    [00:15:06] Julie acknowledges the importance of recognizing burnout signs and relates to the difficulty in identifying them, especially when juggling work and family. Andrew shares the challenge is addressing burnout once it’s recognized, emphasizing the need to focus on self-care and potentially making changes if the job is the cause.

    [00:16:11] Andrew suggests restoring sleep, exercise, and diet are crucial first steps to combat burnout, and he shares strategies for improvement, like focusing on sleep and reducing screen time.

    [00:17:56] Julie has replaced watching stimulating YouTube videos before bed with reading to cut down on screen time. Andrew set a goal for less screen time in 2024.

    [00:20:06] They shift the conversation to Ruby 3.3 and upcoming conferences and which ones they would like to attend.

    [00:21:13] Julie inquires if Andrew’s desire to focus on becoming a better engineer is about “leveling up.” Andrew agrees and expresses feeling stuck in his career for the past couple of years and is now ready to advance.

    [00:21:41] Julie questions if Andrew has a plan for achieving his career growth. Andrew explains he intends to improve his database skills, particularly Postgres and architecture, dive into security, and learn more about iOS development.

    [00:22:10] Some personal goals Andrew wants is to increase his typing speed and become more proficient with the home row typing method.

    Panelists:

    Andrew Mason

    Julie J.

    Sponsors:

    GoRails

    Honeybadger

    Links:

    Andrew Mason X/Twitter

    Andrew Mason Website

    Julie J. X/Twitter

    Julie J. Website
    99 Bottles of OOP by Sandi Metz

    Practical VIM by Drew Neil

    Neovim

    High Performance PostgreSQL for Rails by Andrew Atkinson

    The Programmer’s Brain by Felienne Hermans

    Blinkist

    (00:00) - Intro and Welcome(00:17) - Catching up and Christmas breaks(02:10) - Andrew's restful break and activities(04:50) - Julie's reading and app plans(05:56) - Andrew's reading goals(07:30) - Childhood reading habits(10:36) - Andrew on speed reading(12:37) - Burnout and Julie's struggles(15:06) - Recognizing and addressing burnout(16:11) - Strategies for combating burnout(17:56) - Reducing screen time(20:06) - Ruby 3.3 and upcoming conferences(21:13) - Career growth and leveling up(21:41) - Andrew's career growth plan(22:10) - Personal goals and typing speed
  • In this episode of Ruby for All, host Andrew kicks things off with a warm welcome and well wishes to his absent co-host, Julie. Then he welcomes guest, Bhumi Shah, a self-taught web developer who transitioned from doing low-level embedded software for implantable medical devices. She shares her journey of learning Ruby on Rails, her love for teaching, and her approach to learning as well. Bhumi also talks about her ideas for creating accessible educational content, such as an audio-only technical content platform and a unique onboarding concept for junior developers joining a new company. As the conversation wraps up, Andrew expresses his admiration for Bhumi’s insights, hoping that her story and ideas will motivate others to engage in content creation. Hit download now to hear more!

    [00:00:24] Bhumi details her self-taught journey into web development with Ruby on Rails and discusses her passion for teaching throughout her career and aims to pursue it more actively.

    [00:02:24] Bhumi shares her inspiration with teaching from Chris Oliver of GoRails and reflects on the importance of building a reputation and trust over time before monetizing content. She discusses her initial discomfort with identifying as a content creator and her journey towards embracing that aspect of her professional identity, and her current challenge with figuring out how to charge for her educational content.

    [00:04:13] Andrew comments on the coolness of being a content creator and his own struggle with this identity despite creating substantial content. He suggests Podia as a platform for hosting courses.

    [00:05:01] We hear what motivated Bhumi from Chris’s story as she tells us the importance of focusing on the beginning of one’s journey and the gradual process of building an audience and credibility.

    [00:06:31] Bhumi discuss the challenges and potential discouragement in charging for content. She feels that it’s too early and she needs people to first know and trust her.

    [00:08:33] Andrew reflects on setting realistic goals for course creation and the difficulties of publishing content. Bhumi shares her sporadic content creation history and her resolve to maintain consistency going forward.

    [00:12:18] Andrew asks Bhumi about her research preferences and prompts Bhumi to discuss her learning approach where she shares her philosophy on learning technical skills by aiming to become “friends” rather than “acquaintances” with technologies, using CSS as an example.

    [00:13:26] She explains her strategy for tackling new topics like Turbo and Hotwire, focusing on practical application and “just-in-time learning” to solve immediate problems and “follow-on learning” to deepen her understanding later. She also mentions engaging in “intentional learning” or “deliberate learning” through reading programming books and taking courses.

    [00:15:21] Andrew shifts the conversation to teaching and asks Bhumi what she enjoys in teaching. She finds joy in seeing the moment of understanding in others and sharing her rewarding experience with mentorship on the Indie Hackers platform.

    [00:17:28] Andrew tells us he experiences joy when he sees other people experience joy which is why he mentors. He shares his own challenge of being naturally curious but not a deep learner, which affects his approach to teaching and sharing knowledge.

    [00:18:59] Bhumi asks Andrew about his perceived barriers to sharing content, prompting a discussion about perfectionism. Andrew describes his struggle with publishing content that meets his high standards.

    [00:23:36] Andrew asks Bhumi about her preferences for mediums, and she expresses her comfort with writing, particularly in her newsletter format, which excludes links to encourage focused reading.

    [00:29:52] Andrew reflects on the challenge of discussing code through audio and suggests a narrative approach to sharing technical content, focusing on problem-solving stories which can engage listeners. He references Darknet Diaries Podcast as an example of combining narrative storytelling with technical details, which helps listeners learn through context.

    [00:27:09] Bhumi proposes a podcast idea centered around debugging stories which Andrew expands on, and she shares another idea related to onboarding junior developers, suggesting that companies should hire a contractor as a full-time mentor to support new developers during their initial months. Andrew praises her idea!

    [00:31:37] Andrew acknowledges the cost concern but emphasizes the long-term benefits of junior developers learning effective problem-solving. Bhumi highlights the importance of teaching developers how to teach themselves and become self-sufficient.

    [00:32:30] As a final message, Bhumi encourages listeners to give feedback to content creators, noting the positive impact it has on them.

    [00:33:32] Find out where you can follow Bhumi and her work online.

    Panelist:

    Andrew Mason

    Guest:

    Bhumi Shah

    Sponsors:

    GoRails

    Honeybadger

    Links:

    Andrew Mason X/Twitter

    Andrew Mason Website

    Julie J. X/Twitter

    Julie J. Website
    Bhumi Shah X/Twitter

    One Ruby Question Newsletter

    Indie Hackers

    Podia

    How Rails.env works with EnvironmentInquirer & StringInquirer-by Bhumi Shah (GoRails)

    Chris Oliver X/Twitter

    Darknet Diaries

    (00:00) - Intro and Welcome(00:24) - Bhumi's Journey into Ruby on Rails(02:24) - Inspiration and Building Trust in Content Creation(04:13) - Andrew's Thoughts on Content Creation and Podia(05:01) - Bhumi on Building an Audience(06:31) - Challenges in Charging for Content(08:33) - Setting Goals for Course Creation(12:18) - Bhumi's Learning Approach(13:26) - Tackling New Topics in Web Development(15:21) - Teaching and Mentorship(17:28) - Andrew's Approach to Mentoring(18:59) - Overcoming Perfectionism in Content Sharing(23:36) - Medium Preferences for Content Sharing(27:09) - Discussing Code through Audio and Storytelling(29:52) - Debugging Stories and Onboarding Junior Developers(31:37) - Importance of Teaching Developers Self-Sufficiency(32:30) - Encouraging Listener Feedback(33:32) - Follow Bhumi and Her Work
  • In this episode, Andrew and Julie chat with guest John Crepezzi, a veteran in the Ruby community, founder of All Aboard Bootcamp, and currently a Software Engineer at Jane Street. Today, they discuss John’s experience running a coding bootcamp, share insights on teaching programming, and emphasize the importance of community in learning. Additionally, they explore functional programming in OCaml, highlighting how functional programming can be implemented in Ruby. Also, John dives into the potential impact of AI, particularly language models like ChatGPT, on education and software development, and there’s a discussion on resume writing for new coders and future trends in AI and automation. Hit download now to hear more!

    [00:01:08] Julie introduces John, her former bootcamp instructor, and he tells us about himself and his extensive experience on the Ruby community.

    [00:02:14] Andrew asks John about the gem he is most proud of creating, and he explains his pride in the “ice_cube gem” for recurring date math.

    [00:04:30] John discusses the technical challenges and community contributions to ice_cube.

    [00:05:25] Julie discusses her positive experience with All Aboard Bootcamp and how the bootcamp helped her connect different programming concepts.

    [00:07:26] John describes his teaching philosophy for covering a broad amount of material quickly and he stresses the importance of learning to ask the right questions. He uses a metaphor from the movie “Tommy Boy” to emphasize teaching practical skills.

    [00:11:26] John relates the approach to teaching with the usefulness of ChatGPT and Julie expresses her preference for receiving explanations in small chunks and using bullet points for clarity. John discusses how LLMs can assist in refining questions before providing answers.

    [00:12:49] Andrew asks about AI’s role in teaching and its potential impact. John, an AI professional, offers his perspective on AI in the short and term, specifically its ability to understand and respond to human language. He speculates on the future of human computer interaction, where structured systems may become unnecessary as LLMs bridge the communication gap.

    [00:16:03] Andrew agrees with John’s vision of the future, acknowledging the inefficiencies in current user flows. John compares the evolution from programming VCRs to using DVRs to the potential of LLMs simplifying interaction with technology.

    [00:16:55] John describes the motivation behind starting a bootcamp and the realization of the industry’s selection bias towards already skilled programmers. He shares the story of how the high cost of bootcamps and their screening processes inspired him to teach a more accessible camp.

    [00:21:10] Julie is impressed by John’s ability to manage the bootcamp alongside his full-time job, family responsibilities, and other commitments. She also talks about the final project of the bootcamp, where John acted as a project manager and provided structure and guidance.

    [00:23:31] Andrew inquires about what John thinks is the number one mistake new programmers make on their resume. John emphasizes the importance of highlighting projects on a resume, especially for those transitioning from another industry, and advises focusing on the outcomes and transferable skills gained from previous experiences.

    [00:25:35] John considers formatting critical for resumes, suggesting less content with more white space and a clear hierarchy can be more effective than too much information.

    [00:26:44] Another thing John advises is keeping resumes to one page unless there’s a compelling reason for more, like academic positions or extensive project work.

    [00:27:18] Reflecting on the bootcamp, John wishes he had sought more assistance with grading and feedback to reduce the workload.

    [00:28:34] John praises the students, particularly Julie, for fostering a supportive community outside of the classroom.

    [00:31:07] Discussing programming languages, John expresses his favor for OCaml and functional programming, arguing that functional patterns can be beneficial even in languages like Ruby.

    [00:32:13] Find out where you can follow John online.

    [00:32:58] We end with John reaffirming his love for Ruby and expresses enthusiasm for its future and mentioning his work with Eileen on Active Record and Rails’ influence on web frameworks in other languages.

    Panelists:

    Andrew Mason

    Julie J.

    Guest:

    John Crepezzi

    Sponsors:

    GoRails

    Honeybadger

    Links:

    Andrew Mason X/Twitter

    Andrew Mason Website

    Julie J. X/Twitter

    Julie J. Website
    John Crepezzi X/Twitter

    John Crepezzi GitHub

    ice_cube 0.16.4

    All Aboard Bootcamp

    About the bootcamp (John’s story)

    RailsConf 2023-Functional Patterns in Ruby by John Crepezzi (YouTube)

    OCaml

    (00:00) - Introduction to the Episode(01:08) - Meet John Crepezzi: Ruby Community Veteran and Bootcamp Founder(02:14) - John's Pride in Creating the "ice_cube gem" for Date Math(04:30) - Technical Challenges and Community Role in Developing ice_cube(05:25) - Julie's Transformative Experience at All Aboard Bootcamp(07:26) - John's Teaching Philosophy: Quick Learning and Practical Skills(11:26) - ChatGPT's Role in Teaching: Enhancing Question Refinement(12:49) - AI in Education: John's Perspective on Future Trends(16:03) - From VCRs to AI: Evolution of User-Technology Interaction(16:55) - The Genesis of John's Bootcamp: Addressing Industry Biases(21:10) - John's Journey: Balancing Bootcamp with Personal Life(23:31) - Common Resume Mistakes for New Programmers(25:35) - John's Tips on Effective Resume Formatting(26:44) - Importance of Conciseness in Resumes(27:18) - John Reflects on Bootcamp Challenges and Workload Management(28:34) - Fostering a Supportive Community in the Bootcamp(31:07) - John's Advocacy for OCaml and Functional Programming in Ruby(32:13) - Discover Where to Follow John Online(32:58) - John's Ongoing Passion for Ruby and Its Evolving Impact
  • In this conversation live from RubyConf San Diego, Andrew and Julie sit down with Elise Shaffer, host of The Ruby on Rails Podcast. They kick things off with sharing conference experiences, the joy of reconnecting with friends, and the unique energy the in-person events bring. The discussion shifts to the concept and practice of Test Driven Development (TDD), its benefits, and how it aids in problem-solving during coding. An interesting point is discussed about whether tests or code should be written first, and whether it’s okay to write tests after the code. They also dive into the handling of tests on legacy codes within Rails. The conversation wraps up with gratitude to the organizers, speakers, volunteers, and attendees at RubyConf. Press download now to hear more!

    [00:00:24] Elise shares her conference experience mentioning enjoying the sessions and seeing friends from previous conferences, and Julie and Andrew share their joy of being in the company of friends, the conference atmosphere, and food.

    [00:01:39] Elise shares the number of Ruby and Rails conferences she’s attended and her most memorable one which was Steel City Ruby, highlighting the value of smaller conferences and tight-knit communities.

    [00:02:45] They discuss the difference between in-person and online conferences, agreeing that in-person events offer more energy and interaction.

    [00:03:50] The conversation shifts to memorable conferences as Andrew reminisces about his first conference experience at RailsConf in Pittsburgh. Julie talks about her first conference, RailsConf 2022 in Portland, where she met Elise and Andrew and where Ruby for All was conceived.

    [00:06:12] Andrew asks Julie about her rise in popularity withing a year, moving from a newcomer toa recognized member of the community. The group jokes about autographs and fame within the Ruby community. Elise shares her role in the community, especially with the podcast she hosts.

    [00:09:33] Elise and Andrew discuss the technical aspects of testing and continuous integration within software development. She explains her background in Ruby and Rails, where she focused on testing and its challenges in larger applications, and she discusses strategies for testing and the importance of testing not every permutation but preventing major issues,

    [00:12:46] Julie asks Elise to explain parallelized testing. Elise details using CircleCl or other runners to break up many tests across multiple workers to speed up the process.

    [00:13:56] Elise explains what Test Driven Development (TDD) means to her, and Julie asks whether TDD is always applicable, like when fixing a bug rather than creating a new feature.

    [00:15:30] Elise wishes TDD was still popular and stresses that TDD is a skill that must be developed. She describes the advantages of TDD, particularly in large applications, where having a robust test suite allows for faster development and less worry about breaking something inadvertently.

    [00:18:58] Andrew challenges the concept of TDD, suggesting that for a talented engineer, tests might seem like a waste of time. Elise responds by emphasizing that TDD is a thinking tool that aids in understanding the problem.

    [00:20:59] The discussion turns to reviewing tests. Elise explains her approach to reviewing pull requests by checking the problem solved, reviewing commits one at a time, and comparing her list of tests with the submitted ones, placing higher importance on the tests than the code itself.

    [00:24:02] Elise and Andrew compare their personal styles in reviewing code and the importance of preparing commit messages for review. Julie is curious how Elise and Andrew manage their commit history and whether they use the command line for combining commits. Andrew mentions using interactive rebase.

    [00:24:47] If you’re interested in getting into TDD, Elise tells us she’s working on a course about test driving in Rails applications coming out on early next year , but also recommends reading two great books: Test Driven Development: By Example by Kent Beck and 99 Bottles of OOP by Sandi Metz.

    [00:25:33] Julie questions how to handle TDD in a legacy codebase with complex and nested tests. Elise suggests pairing with someone more knowledgeable to break up the tests into smaller, more manageable files.

    Panelists:

    Andrew Mason

    Julie J.

    Guest:

    Elise Shaffer

    Sponsors:

    Honeybadger

    GoRails

    Links:

    Andrew Mason X/Twitter

    Andrew Mason Website

    Julie J. X/Twitter

    Julie J. Website

    Elise Shaffer Website

    Elise Shaffer GitHub

    The Ruby on Rails Podcast
    CircleCI

    Test Driven Development: By Example by Kent Beck

    99 Bottles of OOP by Sandi Metz

    (00:24) - - Introduction and conference experience(01:39) - - Memorable conferences and tight-knit communities(02:45) - - In-person vs. online conferences(03:50) - - First conference experiences(06:12) - - Julie's rise in popularity and fame in the community(09:33) - - Testing and continuous integration in software development(12:46) - - Parallelized testing and speeding up test processes(13:56) - - Test Driven Development (TDD) and its applicability(15:30) - - Advantages of TDD and its role in understanding problems(18:58) - - Challenges to the concept of TDD(20:59) - - Reviewing tests and pull requests(24:02) - - Managing commit history and using interactive rebase(24:47) - - Recommendations for learning TDD(25:33) - - Handling TDD in legacy codebases
  • Welcome to our first ever live episode of Ruby for All, where Andrew and Julie share their vibrant experiences from RubyConf in San Diego. Today, they share their excitement at attending a live conference and their interesting experiences, including their interaction with fellow attendees, sessions they attended, and community building activities they participated in. Also, there’s conversations about open source coding, autonomous learning, the future of Ruby, leveraging podcasting within the Ruby community, and their expectations from the rest of the conference. Hit download now to hear more!

    [00:00:23] Andrew and Julie share their enjoyment of the conference and they discuss their discomfort with team building, with Andrew having a panic attack.

    [00:02:10] We hear about a new journal app on the iPhone that suggests memories based on places you’ve visited, and photos taken.

    [00:02:57] Julie details her experience on the first community day at the Hackspace, where she, Kevin and Drew, explored Ruby LSP (Language Server Protocol), a project from Shopify for better VS Code integration.

    [00:04:06] Andrew explains Heredocs, and Julie explains they encountered a bug related to a cursor positioning in the code editor while working on a feature for Heredocs.

    [00:05:46] Julie expresses her appreciation for the hack day format, allowing interaction with project maintainers and suggesting it be included in future conferences.

    [00:07:50] They give feedback for improving the hack day, such as better signage for project tables and ensuring equal attention venue positively.

    [00:10:12] The conversation turns to the conference’s social aspects, like hanging out by the fire and the arrival of more attendees on Tuesday. They mention Matz’s pre-recorded keynote and the opening ceremony.

    [00:11:24] Julie and Andrew share their thoughts on the opening ceremony. Andrew clarifies they spoofed “The Wizard of Oz.” Julie notes the performance was unexpected and well-executed.

    [00:12:38] Andrew mentions that Matz had a pre-recorded keynote, and both Julie and Andrew were disappointed missing the memo that Matz wouldn’t be there. Andrew summarizes the keynote mentioning Matz discussing Ruby’s future, including Ruby 4.0 expected in 2030, and his plans for retirement.

    [00:14:00] Julie appreciates how Matz asked first-time conference attendees to raise their hands, demonstrating Ruby’s vitality. Andrew and Julie spent time networking in the hallway rather than attending talks, emphasizing the value of personal connections.

    [00:15:07] They participated in a roundtable discussion about podcasting in the Ruby community that was sponsored by Ruby Central.

    [00:19:09] Andrew and Julie attended Saron Yitbareks’ motivational keynote and Andrew mentions going to a talk on Rack, while Julie preferred hallway networking, planning to watch talk recording later.

    Panelists:

    Andrew Mason

    Julie J.

    Sponsors:

    Honeybadger

    GoRails

    Links:

    Andrew Mason X/Twitter

    Andrew Mason Website

    Julie J. X/Twitter

    Julie J. Website

    How To Use Heredoc in Ruby
    Ruby Central

    Saron Yitbarek

    Rails on Rack

    (00:23) - Introduction and discomfort with team building(02:10) - New journal app on iPhone(02:57) - Experience on the first community day(04:06) - Heredocs and a bug encountered(05:46) - Appreciation for the hack day format(07:50) - Feedback for improving the hack day(10:12) - Conference's social aspects and opening ceremony(11:24) - Thoughts on the opening ceremony(12:38) - Matz's pre-recorded keynote and Ruby's future(14:00) - Value of personal connections(15:07) - Roundtable discussion about podcasting(19:09) - Attending Saron Yitbarek's keynote and other talks
  • On this episode of Ruby for All, Andrew and Julie welcome Joe Masilotti, known as the ‘Turbo Native Guy,’ to discuss Turbo Native. They cover what Turbo Native is, its advantages when building apps, and how it can be an effective tool for Rails developers. Joe also gives us an update on his library, Turbo Navigator, and provides some insightful advice for those wanting to dive into Turbo Native. He shares his experience of Rails World Conf, discusses the future of Turbo Native, and Joe shares advice for junior Rails developers interested in Turbo Native. Press download now to hear much more!

    [00:00:47] Joe introduces himself and discusses Turbo iOS and its benefits for Rails developers. He outlines the difficulties of building Native iOS and Android apps and explains how Turbo Native simplifies this.

    [00:03:12] Julie expresses interest in potentially using Turbo Native for her projects. Joe elaborates on the advantages of Turbo Native, such as avoiding the need to build and maintain separate screens for each platform.

    [00:04:50] Joe discusses the process of app release and approval on iOS and Android, highlighting the efficiency of Turbo Native in rolling out updates.

    [00:06:49] Julie asks how Turbo Native achieves its functionality and Joe describes the use of a web view that renders the mobile web content within the app.

    [00:08:19] Andrew talks about his expectations for app quality on his iPhone and Joe explains how Turbo iOS and Strata avoid poor native web implementations.

    [00:10:32] Andrew inquires about Strata, its necessity, and its impact now that it has been released. Joe clarifies that while Strata is not essential for building Turbo Native apps, it does facilitate easier communication between web content and native code, reducing boilerplate code.

    [00:12:28] Andrew comments on the marketing of Strata by 37signals and its positioning as a game-changer. Joe agrees it was a marketing issues and notes that Strata was branded as a third pillar of Hotwire, and he discusses a conversation he had with DHH about the positioning of Turbo, Stimulus, and Strata.

    [00:14:49] Julie asks for an explanation of what Stimulus is. Andrew describes it as a lightweight JavaScript framework that integrates with HTML, providing a structured way to write JavaScript in Rails, and Joe adds that Stimulus allows for reusable JavaScript behaviors across multiple pages.

    [00:18:06] Andrew asks Joe about his library, Turbo Navigator. Joe explains that Turbo Navigator aims to bring Turbo iOS up to feature parity with Turbo Android, simplifying the use of Turbo Native on iOS by reducing boilerplate. Andrew mentions Joe’s upcoming Turbo Native crash course.

    [00:20:58] Julie inquires about getting started with Turbo Native and Joe suggests watching his Rails World talks and checking out resources on his website and mentions a book he wrote coming out soon.

    [00:24:21] Joe shares his positive experience at Rails World, and he mentions the podcast booth at the conference and Andrew reminisces about RubyConf and looking forward to future events.

    [00:29:12] Andrew asks what Joe predicts happening in the new few months around iOS and what he’s excited for. Joe anticipates a surge in interest for Turbo Native following the conference, and he’s energized by increasing developer interest in Turbo Native and contemplates expanding his educational content as a result.

    [00:32:12] Andrew brings up a past RailsConf in Portland where he sought advice from Joe getting into iOS development and he credits Joe’s suggestion to use Swift Playgrounds. Joe affirms that Swift Playgrounds is an excellent tool for leaning Swift, but for Turbo Native specifically, developers need to engage with Xcode and write Swift more directly related to app development.

    [00:35:03] Joe talks about Kotlin, noting its fast evolution and his plan to pick up more of the language due to demand for Android content.

    [00:35:35] Joe emphasizes that Turbo Native is a wrapper around a Rails website and suggests building a mobile website first before enhancing it with Turbo Native.

    [00:36:56] We end with Joe advising junior Rails developers that while Turbo Native is not necessary to know, it could provide a competitive advantage in the job market.


    Panelists:
    Andrew Mason
    Julie J.


    Guest:
    Joe Masilotti


    Sponsors:

    Honeybadger

    GoRails


    Links:

    Andrew Mason X/Twitter

    Andrew Mason Website

    Julie J. X/Twitter

    Julie J. Website

    Joe Masilotti X/Twitter

    Joe Masilotti Website

    Joe Masilotti Newsletter

    The reverse job board for Rails developers

    Rails World 2023-Mobile Apps for Rails Developers with Joe Masilotti (YouTube)

    Turbo Native crash course-Joe Masilotti

    Turbo Native for iOS

    Hotwire

    Strada

    React Native

    Remote Ruby Podcast-Episode 151: Turbo Native & Hotwire-How Polywork Supercharges Development

    Turbo Native Directory

    Joseph Masilotti Apps for iPhone

    Stimulus

    Turbo Navigator

    Swift Playgrounds App

    Swift Playgrounds

    Kotlin

    Xcode-SwiftUI

  • In this episode of Ruby for All, Andrew and Julie kick off with their excitement for RubyConf and then introduce their special guest Ufuk Kayserilioglu, an Engineering Manager at Shopify, to discuss his passion for Ruby and his contributions to the Ruby community. They also touch upon the importance of mastering your choice of programming language and diving into the work of first principle thinking. Ufuk explains the concept of ‘Triple equals’ as his favorite Ruby method and offers valuable insight into the open source community. The discussions wrap up with Ufuk expressing his anticipation for RubyConf and encourages a more communal and interactive setting for programmers. Press download now to hear much more!

    [00:00:08] Julie and Andrew are super excited to attend RubyConf but they both are preoccupied with work things going on.

    [00:00:55] Ufuk introduces himself and discusses his job at Shopify and their mandate to ensure Ruby and Rails remain foundational for the next century, including community, tooling, and industry preference. He also shares his background in physics and academia, and his transition to programming for the instant gratification of seeing solutions in action.

    [00:03:00] Andrew seeks Ufuk’s advice on the relevance of learning Ruby on Rails in 2023 for job prospects. Ufuk suggests learning Ruby for enjoyment, rather than just for career advantages, emphasizing curiosity and learning for its own sake.

    [00:07:30] Julie asks about the depth of learning one language versus branching out. Ufuk advises mastery of tools and languages used professionally, comparing it to fluency in human languages. He advocates for learning multiple programming languages to gain different perspectives and solutions. Andrew, identifying with ADHD, questions the notion of mastery and emphasizes learning patterns in programming that are universal across languages.

    [00:12:50] Julie inquires about what it feels like to master Ruby, and Ufuk clarifies that mastery isn’t about typing speed but about understanding how to implement complex modules and APIs naturally in Ruby, recognizing and applying patterns without having to think hard about the language itself.

    [00:14:34] Julie questions if there is a deliberate practice to reach mastery faster than just building repeatedly. Ufuk compares mastering programming to an artistic endeavor, such as playing a musical instrument, and suggests that various practices lead to a flow state of mastery.

    [00:16:27] Ufuk adds that observing skilled individuals and pairing with more knowledgeable programmers accelerates learning. He mentions RubyConf Community Day and his role in organizing a hack day, aiming to connect newcomers with experienced project leaders to foster learning and collaboration.

    [00:18:15] What does Ufuk love about the Ruby community? He praises the community’s openness and willingness to collaborate, despite occasional drama and tension, finding value in the free exchange of information and collaboration.

    [00:20:15] Julie asks about Ufuk’s history and evolution in the Ruby community. He reflects on his journey with Ruby since around 2012, evolving from building projects to actively participating in the community.

    [00:22:35] Andrew inquires about what Ufuk is looking forward to in San Diego. He expresses his excitement for the hack day he’s co-organizing, viewing the conference as an offsite for the Ruby open source community, focusing on building things and active collaboration beyond just attending talks. Julie is looking forward to experience RubyConf’s new format firsthand, and Andrew voices a complaint about the RubyConf website lacking detailed info on the event schedule and format.

    [00:27:39] Julie wants to know how to apply “first principles” thinking to programming. Ufuk explains that this approach involves understanding the fundamental concepts underlying a problem and using them to find solutions.

    [00:30:48] Julie mentions Ufuk’s RailsConf 2020 talk about peeling the layers of the network, and he shares how he created a mini website to accompany his talk.

    [00:34:34] Lastly, Andrew asks Ufuk about his favorite Ruby method, to which Ufuk responds that it’s the Triple equals (===) operator, explaining its utility and how it’s used in type checking and inclusion checks within the Ruby language.

    [00:37:23] Andrew expresses his need to find a Sorbet or RBS expert because he has reservations about Sorbet and wishes to be convinced of its benefits, which Ufuk agrees to connect Andrew with a Sorbet expert and that during Ruby Conf and they could work together on “sorbitizing” a piece of Andrew’s code to demonstrate the practicality of it.

    Panelists:

    Andrew Mason

    Julie J.

    Guest:

    Ufuk Kayserilioglu

    Sponsors:

    GoRails

    Honeybadger

    Links:

    Andrew Mason X/Twitter

    Andrew Mason Website

    Julie J. X/Twitter

    Julie J. Website

    Ufuk Kayserilioglu X/Twitter
    Ufuk Kayserilioglu LinkedIn

    Ufuk Kayserilioglu Website

    Shopify

    Universal Turing machine

    YJIT

    Sorbet

    First principle

    Peeling Away the Layers of the Network Stack by Ufuk Kayserilioglu-RailsConf 2020

    Case Equality Operator in Ruby (thoughtbot)

    Tapioca

  • Join us for an insightful episode of Ruby for All, where Andrew and Julie have a discussion with special guest, Jerimie Lee, a Senior Product Designer at Codecademy. Jerimie shares his journey into the world of EdTech, and his experiences in the health tech industry. The conversation touches upon the evolution of design roles, the importance of understanding product mechanics, and the differing experiences of product and UI/UX designers. Jerimie also delves into the significance of accessibility in modern design, the iterations within the product design process, and the necessity of effective communication between designers and engineers. Listen in to learn more about Jerimie’s tips for successful designer-developer collaborations and his take on evolving product design trends.

    [00:00:51] Jerimie introduces himself, describes his role and mentions his previous experience in health tech and marketing, and his previous role at Dispatch Health.

    [00:01:49] Andrew asks about the difference between a product designer and UI/UX designers. He explains that product designers focus on both user experience and the product development environment, and Andrew and Jerimie discuss the role evolution.

    [00:04:53] Julie asks what it takes to become a UX/UI designer/ product designer. Jerimie explains that there are many ways, and he shares how he came into design.

    [00:06:40] Andrew shares his background in graphic design and how it influences his work as a developer. They discuss the advantages of developers having design knowledge.

    [00:08:41] Julie appreciates Andrew’s design input and discusses her challenges as a non-designer. Jerimie shares his opinion on learning design principles.

    [00:09:53] Jerimie suggests that understanding basic design principles can go a long way. He mentions the Nielson Norman Group’s, “10 Usability Heuristics for User Interface Design,” as a helpful resource. Andrew and Jerimie discuss the 80/20 principle and the subjectivity of design.

    [00:11:50] Jerimie discusses the importance of designing for web and digital interfaces and how they more rules compared to print. He mentions accessibility guidelines and how they influence design decisions, and he emphasize the value of building efficient systems and making things work from a usability perspective.

    [00:12:42] Jerimie and Andrew discuss the growing importance of accessibility in design and Jerimie mentions that Codecademy is working on accessibility tickets. Andrew shares his experience with discussing HTML specs with designers and engineers.

    [00:13:43] Jerimie emphasizes the importance of designers understanding semantic HTML and technical constraints. Andrew and Julie share their perspectives on designers and developers collaborating effectively.

    [00:16:35] We hear about some challenges of communication when engineers may not be fully aware of the design and product process. Jerimie shares an example of engineers providing negative feedback during the exploratory phase. Julie talks about the impact of such feedback on team dynamics.

    [00:18:29] Jerimie emphasizes the importance of open-ended and constructive feedback from engineers and discusses the need for soft skills in communication.

    [00:19:54] Jerimie mentions the value of understanding technical limitations and finding solutions that circumvent them. Andrew and Julie share their approaches to conveying technical limitations when collaborating with designers.

    [00:22:27] Julie acknowledges her lack of front-end technical knowledge and how she and Jerimie often compromise when discussing detail, and Andrew ends to explain technical details to designers to show respect and maintain clear communication.

    [00:23:15] Jerimie discusses how engineers should approach designers when struggling with their designs. He encourages engineers to seek help and not give up too easily.

    [00:24:15] Some great advice from Jerimie for designers on how to communicate with developers includes building technical competence and being open to iteration and simplification in the design process.

    [00:25:38] Julie and Andrew share their perspectives on the process of iterating, and Andrew shares his perspective on the importance of having a designer on the team. He highlights the role of designers in standardizing and improving UI and how collaboration with designers can enhance the developer’s work.

    [00:28:20] Julie talks about how the absence of a designer negatively impacted their team’s direction and development, but having a designer significantly improved their work. Jerimie expresses his appreciation for the collaboration with engineers at Codecademy, and Andrew discusses the importance of mutual respect and collaboration between designers and developers.

    [00:32:16] Why did Andrew chose to work with Rails over interaction design? He mentions that he has a quantitative brain, and that Rails offers better financial opportunities.

    [00:32:47] Jerimie encourages engineers to give feedback on design and emphasizes the value of shared ownership between designers and developers.

    Panelists:

    Andrew Mason

    Julie J.

    Guest:

    Jerimie Lee

    Sponsors:

    Honeybadger

    GoRails

    Links:

    Andrew Mason X/Twitter

    Andrew Mason Website

    Julie J. X/Twitter

    Julie J. Website

    Jerimie Lee Website

    Jerimie Lee LinkedIn
    Codecademy

    10 Usability Heuristics for User Interface Design-Nielsen Norman Group

  • Ruby For All – Episode 50

    In this episode of Ruby for All, join Andrew and Julie as they welcome Kevin Murphy, a software developer at Pubmark, to discuss the fascinating world of speaking at conferences. Kevin shares his journey as a speaker and describes his experiences at conferences. The conversation dives into the nuances of submitting conference talk proposals, the challenges in the review process, and the importance of feedback. They also explore of the dynamics of attending and presenting at conferences, both virtually and in person, and they share some valuable advice for those interested in sharing their expertise through speaking engagements. Don’t miss this insightful and supportive discussion about the Ruby community and the art of conference talks. Press download now!

    [00:00:52] Kevin reveals he has spoken at seven or eight conferences and shares more about his journey about getting into speaking at conferences.

    [00:01:56] Kevin talks about attending RailsConf in Chicago 2014 as his first Ruby-related conference and Julie tells us about her first conference.

    [00:03:48] We hear Kevin’s story about going from Java to Rails.

    [00:04:39] Andrew shares his conference origin story.

    [00:06:43] Kevin explains the process of submitting conference talk proposals, mentioning that it varies from conference to conference. Andrew suggests submitting CFPs early for a better chance of receiving feedback from reviewers.

    [00:09:24] The discussion continues with the challenges and intricacies of the CFP review process and how recognition can influence the outcome, and getting rejected doesn’t mean the content isn’t valuable or that it can’t be presented elsewhere.

    [00:11:02] Julie mentions meeting Kevin through Philly.rb and asks if he also presented the same talk at a conference. He discusses his talk practice at meetups before presenting it a conference and the importance of meetups during the pandemic.

    [00:12:07] Andrew asks Kevin if he prefers giving talks virtually or in person, and Kevin shares the advantages and challenges of both formats, and he talks about being a good audience member, as well as the value of engaging with speakers after their talks and the significance of even simple feedback.

    [00:17:25] Andrew and Julie talk about their experiences as speakers and how they felt about post-talk interactions. Andrew discusses his post-talk interactions and the balance of enjoying the attention but having a limit to social interactions. Julie shares her experience as a co-speaker and the support she felt during and after her talk, including people approaching her for advice.

    [00:20:04] The discussion shifts towards Kevin offering advice to people interested in giving talks, especially those who are earlier in their careers.

    [00:22:35] Julie highlights the role of supportive communities like WNB.rb in helping individuals get started with speaking, emphasizing mentorship, proposal reviews, and dry runs.

    [00:24:46] Julie asks Kevin for advice on getting CFPs accepted, and he underscores the importance of clear top-line content and context-specific details in proposals, while Andrew adds that clickbait titles can attract attendees.

    Panelists:

    Andrew Mason

    Julie J.

    Guest:

    Kevin Murphy

    Sponsors:

    GoRails

    Honeybadger

    Links:

    Andrew Mason Twitter

    Andrew Mason Website

    Julie J. Twitter

    Julie J. Website

    Kevin Murphy Website

    Kevin Murphy Mastodon

    Pubmark

    What Your Conference Proposal is Missing by Sara Mei

    Sharing Past Conference Proposals by Kevin Murphy

    Philly.rb

    WNB.rb

    RubyConf San Diego

  • In this episode, Julie begins by expressing concern about technical issues with Zoom and her camera being off, Andrew discusses the shortage of certain ADHD medication in the U.S. due to supply issues, and then the topic of keeping tidy beds and using chopsticks for eating comes up. The conversation then shifts to Andrew introducing asdf as a runtime version manager and he dives into the complexity of managing different versions of tools. The discussion touches on Docker, version consistency, and Podia’s smooth transition to a new database version. They emphasize the importance of planning and backups during database upgrades and share insights into moving local databases. We end with a reflection on microservices and their evolving role in the tech industry. Hit download now to hear more!

    [00:00:13] Julie expresses concern about Zoom not working and her camera being off, and Andrew shares his thoughts on the shortage of ADHD medication in the U.S and how it’s been affecting his life.

    [00:02:59] The topic of keeping their beds tidy comes up, bed habits, and converting to chopsticks for eating.

    [00:08:15] Andrew explains that he was helping a designer upgrade his Postgres database from version 13 to 15. He mentions the challenge of not knowing how the designer was running Postgres initially and the decision to use GUI app (Postgres app) for ease of use.

    [00:11:38] What is asdf? Andrew asks Julie if she uses rbenv or RVM, and he explains that rbenv is a runtime version manager for Ruby and discusses the need for managing multiple versions of Ruby due to the default outdated version in macOS. Also, Andrew explains that it’s a tool that manages various services, including Redis, Yarn, Node, Ruby, and more.

    [00:13:49] Julie brings up if Andrew had any issues with asdf, and he acknowledges some past issues, but has a strong preference for using asdf consistently.

    [00:14:12] Julie asks how Andrew’s use of asdf at work compares to others who might not use it, and he relates the discussion to Docker, explaining that Docker containers can help standardize environments and avoid issues related to different versions of tools and services on different machines.

    [00:16:48] Julie asks whether applications can still run smoothly even if developers are using different version of tools like Redis. Andrew confirms it’s possible but explains the potential pitfalls and the importance of version consistency.

    [00:20:00] Andrew discusses the switch from database version 13 to 15 in production and mentions the challenges of upgrading databases compared to simpler updates like changing a Node.js version.

    [00:20:43] Julie asks about Podia’s staging environment for testing changes before deploying to production, and Andrew mentions using Heroku pipelines and how the company relies on feature flags and aims to keep the main branch always deployable.

    [00:22:05] Andrew explains the potential for breaking changes when upgrading database versions, mentioning the PostgreSQL 16 is coming out and Heroku plans to support version 14 through 16 while dropping support for version 13.

    [00:23:14] Andrew tells us their backup plan in case the database upgrade to version 15 fails and discusses the importance of having backups and a fast recovery plan.

    [00:25:43] Julie asks Andrew what he meant by SSH into a box and about moving a local database to another computer, and he explains that it’s possible using commands like PG dump and restore, as well as providing options for moving a local database.

    [00:29:55] Why doesn’t Podia use Docker? Andrew explains, citing previous experiences with Docker and the complexity it can introduce.

    [00:32:22] Julie wonders if Andrew uses microservices, to which he explains that when he began his career, microservices were popular, but the industry’s perspective has since shifted. Docker was initially associated with microservices, but the trend has changed over time.

    [00:33:01] What are the benefits of using microservices and why have some companies moved away from them? Andrew tells us the complexity of microservices became more apparent as they were adopted more widely, and some now consider them an anti-pattern.

    Panelists:

    Andrew Mason

    Julie J.

    Sponsor:

    GoRails

    Links:

    Andrew Mason Twitter

    Andrew Mason Website

    Julie J. Twitter

    Julie J. Website
    Postgres.app

    rbenv

    Ruby Version Manager (RVM)

    asdf

    PostgreSQL 16

  • On today’s episode of Ruby for All, Andrew and Julie kick things off with a nostalgic discussion about the beloved game, “Plants vs. Zombies.” Julie explains the game’s concept, setting the stage for a lively conversation that brings us into their gaming experiences and preferences, including cooperative versus competitive gaming. The conversation then transitions to topics relevant to the workplace, including teamwork and communication in a new project that Andrew introduces. They touch on the organizational structure at Podia, the project process, and roles within project teams. Code reviews within project teams are also explored, with insights into how they handle code reviews, expertise in specific code bases, and knowledge sharing strategies to mitigate the “bus factor.” Go ahead and download this episode now!

    [00:00:11] Andrew and Julie discuss the game “Plants vs. Zombies.” Julie explains the game’s concept and Andrew talks about Call of Duty Zombies.

    [00:01:56] Julie tells us she like cooperative games vs. competitive gaming. Andrew explains different gaming genres, including strategy, shooting, and RPG.

    [00:03:20] They discuss playing Guitar Hero, Rock Band, and Mario Kart.

    [00:04:54] Andrew introduces a new project and emphasizes the importance of teamwork and communication.

    [00:06:18] Andrew explains the organizational structure at Podia, the project process, and roles within project teams.

    [00:09:22] Julie asks how many engineers there are at Podia and she inquiries about code reviews within project teams.

    [00:10:50] Andrew mentions expertise in specific code bases at Podia and how they track it, also, he discusses knowledge sharing to mitigate the “bus factor” within the team.

    [00:12:36] Julie wonders if a team of two typically consists of a backend and a frontend person. Andrew explains that at Podia, they have full-stack engineers, but some specialize more in frontend or backend work based on their skills and preferences.

    [00:13:18] A question comes up if Andrew does a lot of pairing, and he explains that pairing frequency varies among team members and shares his preference for daily pairing.

    [00:15:55] Andrew shares his assumption that when someone sends a pull request, their code is expected to work, emphasizing that code review serves other purposes.

    [00:16:27] Andrew discusses the purpose of code reviews and how they should focus on more than just syntax. He clarifies that code review helps ensure the right approach and maintains codebase integrity.

    [00:17:40] Julie mentions her habit of asking if a particular approach is correct during code reviews and discusses the importance of conventions and patterns. She also talks about her experience with cross-team pairing and how it helps identify edge cases and align with other teams’ practices.

    [00:18:56] Andrew discusses the challenges of code review when teams are large and points out the potential for one person to become the primary reviewer.

    [00:20:43] Andrew suggests that small, specific pull requests with areas of interest can ease code review and mentions that Podia’s teams are smaller, and codebases are more unified.

    [00:22:23] Julie shares that her organization had 70 engineers and how cross-team pairing benefits knowledge sharing. She reflects on the learning experience when joining a new team and processes can vary, suggesting that individuals can introduce their preferred practices.

    [00:24:15] Julie asks how Andrew discovers bugs in his code, and he explains Podia’s error monitoring and support team processes for bug triage.

    Panelists:

    Andrew Mason

    Julie J.

    Sponsors:

    Honeybadger

    Links:

    Andrew Mason Twitter

    Andrew Mason Website

    Julie J. Twitter

    Julie J. Website

    Plants vs. Zombies

    (00:11) - Discussion of "Plants vs. Zombies" and gaming preferences(01:56) - Exploring different gaming genres and cooperative gaming(03:20) - Playing games like Guitar Hero, Rock Band, and Mario Kart(04:54) - Introduction to a new project and teamwork importance(06:18) - Organizational structure and project processes at Podia(09:22) - Number of engineers at Podia and code review practices
  • In this episode of Ruby for All, we start with a conversation about Julie’s challenges in adjusting to a calendar migration, which leads to discussions about productivity tools, color-coding calendars, and the use of extensions like “Better Comments” for code organization. Andrew and Julie explore the purpose and potential pitfalls of code comments, share insights into work projects, including a significant rewrite, and even touch on the history of CoffeeScript in the coding world. Also, they discuss best practices for API response statuses, the effective use of tools like Postman and curl, and the role of practical experience in shaping a developer’s understanding of best practices. Hit download now to hear more!

    [00:00:10] Julie mentions having issues concentrating at work due to a migration from Google Workspaces to Microsoft, with calendar issues. Andrew asks about her calendar system and whether she color codes it.

    [00:01:41] Since colors are so important to Andrew on calendars, he mentions an extension called “Better Comments” for color-coding comments in code.

    [00:03:15] Andrew discusses the purpose of comments, warning about deviations from conventions, and code readability, and Julie and Andrew talk about the problems with excessive comments and the importance of keeping comments up to date.

    [00:07:08] Julie wonders if Andrew adds links to comments or writes detailed PR reviews for reference.

    [00:07:53] What’s up with Andrew? He mentions working on bug fixes and a recent launch at Podia, including a rewrite of their email system.

    [00:08:51] Andrew explains Trix, which was previously written in CoffeeScript but may have been ported to TypeScript. He also briefly discusses the history of CoffeeScript, its decline in popularity, and why he didn’t like it when he was new to programming.

    [00:13:21] Julie asks about best practices for API response statuses, such as when to use “status ok” or “status created.” She also asks about the use of “Unprocessable Entity” as a status code and its meaning. Andrew talks about how Rails handles different response statuses and mentions that Rails implicitly handles certain errors.

    [00:15:58] Julie and Andrew discuss the importance of choosing the correct HTTP status codes for API responses.

    [00:16:44] Julie asks about handling different types of bad requests and whether Rails catches them. Andrew explains how to undo scaffolded code using “rails d” and suggests looking at Rails scaffold defaults for best practices.

    [00:18:50] Andrew explains what Postman is and describes it as an interface for sending API requests. He also talks about the VS extension code, Thunder Client.

    [00:20:26] Andrew explains the benefits of using curl and jq for API requests and JSON processing.

    [00:21:14] We hear an example of using curl and jq to retrieve specific data from a GitHub API endpoint.

    [00:22:15] Julie mentions using ChatGPT as a “rubber duck” to find answers to coding questions and appreciates how it exposes her to new concepts.

    [00:22:43] Andrew and Julie discuss the importance of focusing on a way to solve problems, especially for early career developers, rather than getting caught up in finding the “right” way.

    [00:24:26] Julie brings up Ruby for All Episode 46 that you should check out, where they discussed Single Tab Inheritance (STI).

    Panelists:

    Andrew Mason

    Julie J.

    Sponsor:

    GoRails

    Links:

    Andrew Mason Twitter

    Andrew Mason Website

    Julie J. Twitter

    Julie J. Website

    Better Comments

    Trix

    Look up a Rails HTTP Status Code
    Thunder Client

    jq

    Postman

    curl

    (00:10) - Julie's concentration issues during a migration(01:41) - Andrew's use of "Better Comments" for code(03:15) - The purpose of comments in code(07:08) - Andrew's recent work and Podia launch(08:51) - Discussion of the Trix text editor and CoffeeScript(13:21) - Best practices for API response statuses(15:58) - Importance of choosing correct HTTP status codes(16:44) - Handling different types of bad requests in Rails(18:50) - Explanation of Postman and Thunder Client(20:26) - Benefits of using curl and jq for API requests(21:14) - Example of using curl and jq for GitHub API(22:15) - Using ChatGPT as a "rubber duck" for coding questions(22:43) - Focusing on problem-solving for early career developers(24:26) - Mention of Ruby for All Episode 46
  • Welcome back to a brand new season of Ruby for All! After a summer hiatus, Andrew and Julie are back and ready to catch up with each other and you! Julie kicks things off sharing her thrilling road trip up the West Coast, visits to national parks, and even some sandboarding in Oregon. Andrew shares his camping and hiking adventure to the Grand Canyon with his friend Drew Bragg, embarking on some challenging hikes, encounters with wildlife, a night of stargazing, and the importance of respecting park guidelines. Then, the conversation shifts gears with Andrew talking about launching a new email product at Podia during the summer, while Julie dives into her focus on research and architectural decisions in her work. They discuss the challenges of making architecture decisions in software development, including the debate between Single Table Inheritance (STI) and Polymorphism, and they touch on their notetaking and knowledge retention practices. This is going to be an exciting new season, so go ahead and download this episode now!

    [00:00:32] Julie talks about her three-week road trip up the West Coast, visiting national parks, and sandboarding in Oregon.

    [00:01:48] Julie’s favorite park is Mt. Rainier, she tells us about going into some fun caves, and Andrew and Julie discuss hiking boots vs. hiking shoes.

    [00:04:15] What did Andrew do this summer besides work? He shares his camping and hiking trip to the Grand Canyon with Drew Bragg. He talks about their camping gear and hiking experience at the Grand Canyon, and some of the challenges and safety aspects of hiking there.

    [00:12:20] Julie and Andrew tell us some encounters they had with wildlife and locking up their food to prevent animals from getting it to it. Andrew mentions seeing aggressive squirrels and the importance of not feeding them due to disease concerns.

    [00:14:47] Andrew shares stories about tourists in national parks disregarding warnings about interacting with wild animals, such as petting bison.

    [00:16:34] Andrew talks about his work on launching a new email product at Podia during the summer and Julie mentions her current focus on research and architectural decisions on her work, regarding handling access lists between repositories.

    [00:18:00] We hear about some challenges Andrew’s been having with architecture decisions, specifically mentioning the debate between Single Table Inheritance (STI) and Polymorphism and how changing requirements can lead to revisiting architectural decisions.

    [00:19:19] Andrew explains Single Table Inheritance (STI) and Polymorphism and how these concepts relate to their architectural decisions.

    [00:21:18] He highlights the complexity of making architectural decisions and the need to adapt to changing requirements, acknowledging that there is often no one-size-fits-all solution.

    [00:23:20] Julie asks about the effort required to backtrack and change architectural decisions when they realize they’ve made the wrong choice.

    [00:24:36] Julie explains the concept of backfilling data, which involves filling in missing or incomplete data. She mentions her existing data app for meetings and notes but expresses the need to redesign it for better organization, and Andrew gives her advice.

    [00:26:02] Julie discusses the challenge of retaining and retrieving knowledge for future reference, and Andrew shares his note-taking workflow using Obsidian and how he organizes his notes hierarchically.

    [00:28:05] Julie mentions her habit of keeping detailed PR notes for her work.

    Panelists:

    Andrew Mason

    Julie J.

    Sponsors:

    Honeybadger

    Links:

    Andrew Mason Twitter

    Andrew Mason Website

    Julie J. Twitter

    Julie J. Website

    Obsidian

    Sandboarding