A weekly Ruby focused podcast hosted by Andrew Mason and Julie J. Each week we discuss topics ranging from Ruby, Ruby on Rails, learning, how to be a better developer, and more. The focus is on providing a podcast that caters to junior Ruby on Rails developers.
Onboarding Challenges — Julie's Transition to a New Team
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 MasonJulie J.Sponsors:HoneybadgerGoRailsLinks:Andrew Mason X/TwitterAndrew Mason WebsiteJulie J. X/TwitterJulie J. WebsiteShape UpFlipper
(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
2/1/2024 • 27 minutes, 54 seconds
The Power of Community in Learning Ruby on Rails — Agency of Learning's Role in Shaping Developer Careers
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 MasonJulie J.Guests:James GarciaEric HalversonCaleb MitchellSponsors:HoneybadgerGoRailsLinks:Andrew Mason X/TwitterAndrew Mason WebsiteJulie J. X/TwitterJulie J. WebsiteEric Halverson X/TwitterEric Halverson LinkedInJames Garcia X/TwitterJames Garcia LinkedInCaleb Mitchell LinkedInCaleb Mitchell Neovim-GitHubThe Agency of LearningRuby for GoodCody Norman X/TwitterDave Paola X/TwitterRuby for All-Episode 37: The Agency of Learning with Dave PaolaThe Well-Grounded Rubyist by David A. BlackLaunch SchoolThe Odin ProjectThe Ruby Learning Center DiscordGoRails Discord ServerRace 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:...
1/25/2024 • 37 minutes, 19 seconds
Rekindling Ruby — A Journey through Burnout, Books, and Career Aspirations
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 MasonJulie J.Sponsors:GoRailsHoneybadgerLinks:Andrew Mason X/TwitterAndrew Mason WebsiteJulie J. X/TwitterJulie J. Website99 Bottles of OOP by Sandi MetzPractical VIM by Drew NeilNeovimHigh Performance PostgreSQL for Rails by Andrew AtkinsonThe Programmer’s Brain by Felienne HermansBlinkist
(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
1/18/2024 • 23 minutes, 37 seconds
Exploring the Mind of a Content Creator — Bhumi Shah's Perspective on Learning and Sharing
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 MasonGuest:Bhumi ShahSponsors:GoRailsHoneybadgerLinks:Andrew Mason X/TwitterAndrew Mason WebsiteJulie J. X/TwitterJulie J. WebsiteBhumi Shah X/TwitterOne Ruby Question NewsletterIndie HackersPodiaHow Rails.env works with EnvironmentInquirer & StringInquirer-by Bhumi Shah (GoRails)Chris Oliver X/TwitterDarknet 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
1/11/2024 • 34 minutes, 34 seconds
Teaching Code, Shaping Futures — John Crepezzi on Ruby, Bootcamps, and AI
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 MasonJulie J.Guest:John CrepezziSponsors:GoRailsHoneybadgerLinks:Andrew Mason X/TwitterAndrew Mason WebsiteJulie J. X/TwitterJulie J. WebsiteJohn Crepezzi X/TwitterJohn Crepezzi GitHubice_cube 0.16.4All Aboard BootcampAbout 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
1/4/2024 • 33 minutes, 54 seconds
RubyConf Reflections - The Importance of TDD with Elise Shaffer
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 MasonJulie J.Guest:Elise ShafferSponsors:HoneybadgerGoRailsLinks:Andrew Mason X/TwitterAndrew Mason WebsiteJulie J. X/TwitterJulie J. WebsiteElise Shaffer WebsiteElise Shaffer GitHubThe Ruby on Rails PodcastCircleCITest Driven Development: By Example by Kent Beck99 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
12/21/2023 • 27 minutes, 21 seconds
Live From Rubyconf 2023 — Conference Recap, Talk Highlights, Ruby 4, Hacking on OSS, Restaurant Reviews, and Much More
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 MasonJulie J.Sponsors:HoneybadgerGoRailsLinks:Andrew Mason X/TwitterAndrew Mason WebsiteJulie J. X/TwitterJulie J. WebsiteHow To Use Heredoc in RubyRuby CentralSaron 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
12/7/2023 • 22 minutes, 56 seconds
Building Rails-Powered Mobile Apps with Joe Masilotti
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 MasonJulie J.Guest:Joe MasilottiSponsors:HoneybadgerGoRailsLinks:Andrew Mason X/TwitterAndrew Mason WebsiteJulie J. X/TwitterJulie J. WebsiteJoe Masilotti X/TwitterJoe Masilotti WebsiteJoe Masilotti NewsletterThe reverse job board for Rails developersRails World 2023-Mobile Apps for Rails Developers with Joe Masilotti (YouTube)Turbo Native crash course-Joe MasilottiTurbo Native for iOSHotwireStradaReact NativeRemote Ruby Podcast-Episode 151: Turbo Native & Hotwire-How Polywork Supercharges DevelopmentTurbo Native DirectoryJoseph Masilotti Apps for iPhoneStimulusTurbo NavigatorSwift Playgrounds AppSwift Playgrounds KotlinXcode-SwiftUI
11/23/2023 • 38 minutes, 41 seconds
Ruby Mastery and Community Love with Ufuk Kayserilioglu
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 MasonJulie J.Guest:Ufuk KayseriliogluSponsors:GoRailsHoneybadgerLinks:Andrew Mason X/TwitterAndrew Mason WebsiteJulie J. X/TwitterJulie J. WebsiteUfuk Kayserilioglu X/TwitterUfuk Kayserilioglu LinkedInUfuk Kayserilioglu WebsiteShopifyUniversal Turing machineYJITSorbetFirst principlePeeling Away the Layers of the Network Stack by Ufuk Kayserilioglu-RailsConf 2020 Case Equality Operator in Ruby (thoughtbot)Tapioca
11/16/2023 • 39 minutes, 24 seconds
Bridging Design and Development with Jerimie Lee
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 MasonJulie J.Guest:Jerimie LeeSponsors:HoneybadgerGoRailsLinks:Andrew Mason X/TwitterAndrew Mason WebsiteJulie J. X/TwitterJulie J. WebsiteJerimie Lee WebsiteJerimie Lee LinkedInCodecademy10 Usability Heuristics for User Interface Design-Nielsen Norman Group
11/9/2023 • 34 minutes, 4 seconds
The Art of Conference Speaking with Kevin Murphy
Ruby For All – Episode 50In 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 MasonJulie J.Guest:Kevin MurphySponsors:GoRailsHoneybadgerLinks:Andrew Mason TwitterAndrew Mason WebsiteJulie J. TwitterJulie J. WebsiteKevin Murphy WebsiteKevin Murphy MastodonPubmarkWhat Your Conference Proposal is Missing by Sara MeiSharing Past Conference Proposals by Kevin MurphyPhilly.rbWNB.rbRubyConf San Diego
11/2/2023 • 29 minutes, 46 seconds
Microservices, Mayhem, and Main Branches
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 MasonJulie J.Sponsor:GoRailsLinks:Andrew Mason TwitterAndrew Mason WebsiteJulie J. TwitterJulie J. WebsitePostgres.apprbenvRuby Version Manager (RVM)asdfPostgreSQL 16
10/26/2023 • 34 minutes, 41 seconds
Plants, Zombies, and Pull Requests
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 MasonJulie J.Sponsors:HoneybadgerLinks:Andrew Mason TwitterAndrew Mason WebsiteJulie J. TwitterJulie J. WebsitePlants 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
10/19/2023 • 25 minutes, 19 seconds
From CoffeeScript to curl
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 MasonJulie J.Sponsor:GoRailsLinks:Andrew Mason TwitterAndrew Mason WebsiteJulie J. TwitterJulie J. WebsiteBetter CommentsTrixLook up a Rails HTTP Status CodeThunder ClientjqPostmancurl
(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
10/12/2023 • 25 minutes, 25 seconds
Welcome back!
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 MasonJulie J.Sponsors:HoneybadgerLinks:Andrew Mason TwitterAndrew Mason WebsiteJulie J. TwitterJulie J. WebsiteObsidianSandboarding
10/5/2023 • 29 minutes, 23 seconds
How We Use ChatGPT
Welcome to Ruby for All Season 2! This was the last episode we recorded before the break that we wanted to share.Today’s episode of Ruby for All is mix of personal experiences, tech discussions, and the ever-evolving world of artificial intelligence. Andrew and Julie dive deep into their utilization of ChatGPT, an artificial intelligence tool that assists with tasks such as writing performance reviews and explaining code functions, and they envision a future where the integration of AI into workflows becomes a standard. Andrew, a long-time AI enthusiast, brings up the topic of OpenAI’s Whisper, and the exciting possibility of creating AI-driven podcast episodes. They share their experiments with AI personas and how giving a ‘character’ to the AI can improve its output. Andrew and Julie also have a conversation sharing their different uses of ChatGPT. Join us as we continue exploring the fascinating world of Ruby and AI. Hit download to hear more! [00:01:18] Julie and Andrew discuss their uses of ChatGPT. Julie uses it for writing performance reviews, while Andrew is a heavy user of the tool and its API.[00:04:00] Andrew mentions the Whisper from OpenAI and the possibility of using it to recreate podcasts episodes purely from AI, using the hosts’ past audio data. [00:05:37] Andrew asks Julie about her experience with Copilot, he tells us what it does, and he finds it most helpful for writing tests. [00:09:23] We hear about the use of “brushes” in Copilot labs, a GitHub project. Brushes can explain code, translate it into other languages, generate tests, and more. He also tells us about how he uses Warp.[00:11:19] Julie and Andrew agree that ChatGPT and Copilot are useful for learning and improving code, especially for those early in their careers. However, the AI can sometimes provide inaccurate information. [00:14:42] Andrew thinks using the AI to teach oneself how to code could be effective but cautions against relying solely on copy-pasting generated code. [00:16:07] Julie wonders if ChatGPT or AI is going to replace tech jobs, and Andrew doesn’t believe it will. He does mention new professions like “prompt engineering” have emerged with the arrival of AI, with high earning standards. [00:17:58] We hear the difference between few-shot prompting and one-shot prompting in ChatGPT. Julie has experimented with asking ChatGPT to act a knowledgeable senior software engineer, and Andrew mentions the new “browsing mode” in GPT-4.[00:22:19] Andrew uses the AI for making chapter notes for the podcast, saving him a lot of time.[00:24:10] Julie uses AI to help her understand complex concepts like Redux, Sagas, and React. Andrew tells us about an app he uses called Writers Brew, which has a feature to convert summaries into bullet points, and Reader from Readwise, to analyze and summarize articles, generate flashcards, and thought-provoking questions.[00:26:11] Andrew goes through some recent questions he’s asked ChatGPT recently including explaining complex code functions, creating CSS selectors, and creating titles for code snippets. [00:27:38] Julie shares a shortcut she uses that Andrew wasn’t aware of, she asks ChatGPT to explain code an follows up with clarifying questions, and she uses it to develop SMART goals for advancing at work.[00:28:31] Andrew notes that ChatGPT is from OpenAI and utilizes the GPT-4 or GPT-3.5. language models, there’s also Google Bard, and other language models such as, Hugging Face and AI Playground that you can explore. Panelists:Andrew MasonJulie J.Sponsors:Avo Admin for RailsHoneybadgerLinks:Andrew Mason TwitterAndrew Mason WebsiteJulie J. TwitterJulie J. WebsiteRuby for All TwitterWarpFew-Shot PromptingOpenAI WhisperGitHub CopilotGitHub Copilot LabsSimulated annealingWriters Brew Reader BardHugging FaceAI Playground
(01:18) - Julie and Andrew's uses of ChatGPT
(04:00) - Whisper and recreating podcasts with AI
(05:37) - Julie's experience with Copilot and its helpfulness for tests
(09:23) - Copilot labs' brushes and the use of Warp
(11:19) - AI's usefulness for learning and improving code
(14:42) - Caution against relying solely on generated code
(16:07) - AI's impact on tech jobs and new professions
(17:58) - Few-shot prompting and one-shot prompting in ChatGPT
(22:19) - Using AI for podcast chapter notes
(24:10) - Julie and Andrew's use of AI for understanding complex concepts
(26:11) - Recent questions Andrew asked ChatGPT
(27:38) - Julie's shortcut for utilizing ChatGPT effectively
(28:31) - Other language models and resources for exploration