Ruby Unconf 2019

Death Laughter & Extreme Programming

Ruby Unconf 2019

00:00:05.550 I apologize for being a little late. We encountered some issues, as you can see, but now we can start. Thankfully, we had a little bit of buffer time; it really ruins my German heart. It's so hard to start late; it's like a German conference that runs six minutes behind schedule.
00:00:13.480 This is not who we are. I strive to make it better. So, welcome to the first session of the Ruby Unconf. My name is Amina, and I came all the way from London. I'm a junior developer there.
00:00:26.910 Welcome, Amina! It's great to have you here.
00:00:34.270 First, I would like to say a huge thank you to everyone for voting for this talk. I'm really grateful that you did. It’s one of those talks that I felt I couldn't not propose. It has been quite important for me in the preparation of it over the last couple of months. I'm honored to be here today and to share this with you. I'd also like to express my gratitude to the organizers, the sponsors, and our amazing first speaker. Terrence did a fantastic job opening the conference, so thank you!
00:01:05.770 Today, we are going to be talking about someone very special. The title of this talk is 'Death, Laughter, and Pair Programming: The Story of Ruby's Kindest Teacher.' I know this might sound like a strange title, but hopefully, it will become clear very soon.
00:01:14.200 Let me start by introducing myself. My name is Amina, and I come from London, where I was born and raised. I began developing just this year, learning Ruby on Rails. I work for a small remote company in the UK called Era, which builds websites for the arts and cultural sectors. This is my first Ruby conference, and I’m delighted to be here.
00:01:34.270 As this is my first technical talk, I sought advice on what makes a good technical presentation.
00:01:43.970 The first piece of advice I got was that the talk must be technical, especially since this is a Ruby conference. We should be focusing on Ruby—developers want to hear technical discussions. I can assure you, however, that this talk is completely non-technical. There was no code written in the making of this talk, nor will there be any code demonstrations or discussions about frameworks, libraries, or syntax. I'm sorry, but it's just not technical.
00:02:27.680 Another point I was told was that the talk should be objective, based on facts. At the very least, if it’s not technical, it should convey definite truths. We don’t want people to leave with soft, mushy ideas that they’re uncertain about. I can tell you that this talk is completely subjective. No factual research was conducted, and it is entirely based on my own perspective.
00:02:49.860 The last suggestion I received was that if it’s not technical and it’s not factual, it should at least be practical. The audience has taken time off work to be here, and I should provide something that they can implement when they return. Unfortunately, I must tell you that this talk is completely impractical; it’s really unclear how you can take this back to work on Monday morning.
00:03:12.590 So, I'm glad we’ve established that.
00:03:17.560 I'd like to start this talk by telling you a story. As I mentioned, I began learning Ruby recently and was fortunate enough to have a few mentors. I was really struggling with my Ruby syntax, often mixing up square brackets and curly brackets.
00:03:39.930 One of my mentors suggested a website called Ruby Koans. I remembered hearing the term ‘koan’ before because my next-door neighbors are Zen Buddhists. They explained that a koan is a question posed by a spiritual master that a student must reflect on in deep meditation. Only when the student finds the right answer, determined by their master, could they progress and receive the next question. With this understanding, I became intrigued by the website even before I explored it.
00:04:02.840 When I opened the website, I was pleasantly surprised. Everything about its design resonated deeply with me, as it felt like a spiritual quest. You are presented with a problem to solve to evolve in your learning. I distinctly remember reading the footer of the site, which stated, 'Mountains are merely mountains.' The moment I read that, I wanted to know who created this website.
00:04:26.180 Over the past six months of my coding journey, there have been numerous moments where I felt stressed or cried because I couldn’t solve issues that appeared on my screen. Hearing the words 'mountains are merely mountains' completely wiped my mind of any preconceived notions about how I should react to a problem.
00:04:47.710 By stating that 'mountains are merely mountains,' it implies that problems are merely problems. They don’t necessarily demand a specific reaction, especially one I had been conditioned to have. Thus, I became interested in the creator of this website, which resonated with my current circumstances. I wanted to connect with this individual to understand who they were and what was happening in their life.
00:05:07.520 As any developer would do, I searched for their Twitter account. I was excited to find them and thought, 'Great! I can DM them!' However, I soon realized something was not quite right. The last tweet was dated February 19, 2014. A quick check revealed that the person’s last commit on GitHub was also on that same date.
00:05:29.180 On that particular commit, there were lines upon lines of condolences. The person who created this wonderful site that I fell in love with had passed away after tweeting and committing that day, following their day's work.
00:05:49.320 This revelation took me aback. It was the first time I had encountered the concept of digital death—where someone is frozen in time. I returned to my mentor and told them about my discovery, lamenting that the creator had unfortunately died in 2014. My mentor informed me that the person's name was Jim Wyrick.
00:06:11.100 My mentor shared wonderful stories about Jim—how great and kind he was. This piqued my interest even more. I began watching his YouTube presentations, reading about him, and discussing his legacy with fellow developers. A curious phenomenon emerged: whether talking with developers in the U.S. or my colleagues in the UK or Germany, everyone shared positive experiences about Jim.
00:06:34.720 It was astonishing how consistently people spoke highly of him. This is where my journey began, and this is why I’m here speaking to you today. I decided to talk to more people who knew Jim and learn more about him and the life he led.
00:06:55.769 What ensued was incredible, and I am grateful for the journey I've taken. I believe Jim will continue to live on through me, and I'm truly happy to share that with you.
00:07:10.400 Let's structure this talk. First, we’ll discuss why this topic is interesting and what makes this person worth talking about. Then, we’ll conclude with a panel discussion.
00:07:25.470 So, why is this interesting? I hope it will become clearer as we delve deeper into the talk. One remarkable thing about Jim is that he created Rake, a tool many of you are likely familiar with. He was also part of the team that created RubyGems, playing a significant role in his time.
00:07:51.560 However, what I want to focus on today is not what he built but who he was. When considering death, it's important to remember that the moment we die is wholly out of our control; we never know when it might happen. Jim did a day’s work and then passed away, which is something that could happen to any of us.
00:08:16.600 This resonates with me, and I hope it resonates with you. I hope we can learn together about the way Jim lived and why people continue to speak about him in this manner. Through this, we may discover how to navigate our careers and how to let ourselves be.
00:08:39.850 Now, let’s dive into Jim. I conducted about ten interviews with developers who knew him or were familiar with him during his life, and I gathered some really interesting insights. A few key points emerged from these conversations, primarily revolving around Jim's childlike nature and his role as a teacher.
00:09:04.160 First, Jim's laughter was often mentioned by those who knew him. He had a laugh that was so big and theatrical; he seemed like an exaggerated version of himself. Sitting in the front rows of conferences, his laughter would resonate throughout the room. The recurring theme of joy in Jim’s memory is significant. He was known as the Santa Claus of Ruby because he brought joy into every room.
00:09:28.870 I find it fascinating that many people highlighted his impact in this way. There is a great distinction between happiness and joy, as reflected in a conversation between Jim and Chad Fowler, where Jim stated, 'Programming isn’t just fun; it’s joyful.' This distinction conveys the idea that happiness has its ups and downs, while joy seems to be a conscious choice.
00:09:54.900 For Jim, it wasn’t just about momentary happiness; he actively sought to create joy in his work and interactions. He rolled through life, enjoying every moment and instilling this sense of joy in others. One of the most memorable moments of him is a YouTube clip where he performs a song about Ruby on his ukulele.
00:10:16.050 Another interesting story shared by PJ M Haggerty was about Jim's performance at Silicon Valley. Jim insisted on singing a song at the end of his talk, and PJ remarked that the joy he brought was something rarely seen in Silicon Valley.
00:10:35.320 Moreover, work for Jim was never a chore. He approached work as something he genuinely enjoyed. His unique perspective allowed him to infuse joy into everything he did, and it’s a powerful reminder that, while it may not always seem like it, we do have a choice; we can make joy a part of the work we do.
00:10:52.960 The third aspect I want to touch on is Jim's innate curiosity. It was said that he approached the world as if he were writing his first line of code; everything sparked his curiosity as if each new situation was an opportunity to discover something new.
00:11:16.020 Even though he was nearly 60 years old when he passed away, he maintained a childlike enthusiasm for learning and exploration, fostering genuine excitement that kept him lively and engaged.
00:11:26.290 Additionally, Jim was boundary-less; he did not perceive differences among people, showing kindness to everyone, regardless of their backgrounds. His desire to collaborate and enjoy the company of others exemplified the beauty of his character.
00:11:50.020 Now, let’s shift to Jim as a teacher. Something I love about Jim was how he interacted with others, disregarding the seniority difference. Even his wealth of experience—over 30 years—didn’t inflate his ego.
00:12:00.740 He treated everyone with equal respect, making newcomers feel valued and encouraged. One quote that resonated with me was from Justin Searls, who noted how impactful it was when someone he admired genuinely acknowledged his experiences.
00:12:17.130 This approach is a valuable lesson for everyone. It’s important to recognize that everyone we meet has something to teach us. Jim’s humility in conversations left a lasting impression on many.
00:12:33.590 Moreover, Jim was incredibly generous with his time. Despite his busy life—managing three children and numerous client projects—he always set aside time for others and never complained about being busy or stressed.
00:12:43.550 A practical lesson Jim exemplified was the importance of building small and quick. For instance, he designed the initial version of Rake in an afternoon, and RubyGems was released promptly at the end of the RubyConf. His ability to build these quick prototypes serves as an excellent tip for us all.
00:13:08.500 He was pragmatic, solving simple problems with joy and continuously seeking to learn something new. His enthusiasm and willingness to help were evident—he was overly eager about pair programming and would engage anyone who needed assistance.
00:13:20.240 In paired programming sessions with Jim, he had a knack for asking the right questions, empowering his partner to explore deeper and embrace new thoughts. His presence often led individuals to shift their perspectives on problems.
00:13:38.180 Lastly, Jim was not only generous with his time but also with his knowledge. As a celebrated teacher, he delivered many presentations, breaking down complex topics for easier understanding. He had a unique ability to eliminate barriers, ensuring everyone could follow and enjoy his talks.
00:13:54.560 Jim motivated others to share their knowledge and continued to improve his presentations, always iterating and enhancing his material to better serve his audience.
00:14:11.400 In summary, Jim embodied the characteristics of a child; he had an infectious laugh, a spirit of joy, insatiable curiosity, and he never saw differences among people. Additionally, he was the perfect teacher.
00:14:27.540 He treated everyone with immense respect, always had time for others, and thrived on pair programming. His love for teaching and sharing made learning accessible to everyone.
00:14:47.330 I had planned for a panel discussion, but I don't think we will have time.
00:15:07.020 But wait, let’s do it! Can I have my wonderful panel members to the front, please? Thank you!
00:15:11.670 Thank you for welcoming us! I appreciate it. You guys have heard the talk, and it would be fantastic to gather some reflections from you. Perhaps you could share your mentors and what you appreciate about them, or any other reflections you may have. We have a limited time, so about 30 seconds each would be great.
00:15:21.670 (Panelists share their reflections on mentorship and Jim Wyrick.)