Ode to RailsConf

Neil Hendren

David Hill Season 1 Episode 29

Send us a text

Neil Hendren shares his transformative journey through RubyConf's Scholar Program, highlighting the value of community, learning Ruby on Rails, and creating an email advice bot leveraging AI. His reflections emphasize the importance of open-source documentation, networking, and the contemporary challenges facing the tech industry. 
• Neil's background in front-end development and interest in backend programming 
• Experience in Ruby on Rails through the Scholar Program 
• Creation of an email advice bot utilizing Action Mailbox and OpenAI 
• Engaging with the Ruby community and attending RubyConf 
• Insights gathered during a lightning talk on interactive data visualization 
• Observations on the job market and networking opportunities 
• Importance of contributing to open-source documentation

David Hill:

Shout out to GoRails for sponsoring Ode to RailsConf. If you or your team wants to learn the latest Ruby on Rails features Hotwire Ruby and more check out GoRailscom. Use code ODE2RAILSCONF at checkout to get 10% off. You're listening to the Ode to RailsConf podcast, where we reminisce about our experiences at RailsConf over the years. I'm your host, david Hill, and joining me today is Neil Hendren. Neil, would you introduce yourself to our audience?

Neil Hendren:

Sure, my name is Neil.

Neil Hendren:

I, for the past six years, have been a front-end web developer, primarily, and making front-end scientific simulations for the web, which sounds a little bit weird, but they're used in chemical engineering education and we want them to be as accessible as possible, so that's what I do for a living.

Neil Hendren:

I wanted to learn backend a little while back, so I attended a bootcamp, turing School of Programming and Design, where they used Ruby on Rails as the framework for teaching everything from rendering ERB files and working with databases to writing APIs, rest APIs, json contracts, credential management pretty much all the basics you need to know of using Rails, as well as just vanilla programming in Ruby. So I attended RubyConf it was November and I was part of the Scholars and Guides program as a scholar, so that involves getting a stipend to travel and a free ticket to the conference. We also had access to front row seats at the keynote speeches, which was really cool, and my guide her name is Michelle. She introduced me to a ton of people at the conference and sort of kept me company, and I met a ton of cool people. I learned a lot about Ruby and I'm looking forward to this podcast and continuing to be part of the Ruby community.

David Hill:

Awesome, Granted, I think we are both pretty biased in our affection for the community, because it's been a pretty awesome welcoming community, but I just love the Ruby community. So the Scholar Program along with the perks and everything, they also ask you to put a little work in as a recipient of the Scholar Program. What was that for you? What did you end up working on?

Neil Hendren:

So I wanted to learn about Action Mailbox and Action Mailer because on a previous project that I've worked on, I had to do some emailing via Nodejs and I just wanted to see how that worked in Rails. Do you remember advice columns in the newspaper? Yeah, it would be like Dear Jenny or whatever. People would write emails like hey, my husband broke his leg and he's in a wheelchair and I need help with this.

Neil Hendren:

Well, I created an email advice bot where you email advice at aineilhendroncom and you ask it for advice and it'll send back advice for your problem, which essentially it's just a wrapper for ChatGPT, and I give ChatGPT some instructions in each prompt that says like hey, you're an advice bot and you're about to receive an email from someone asking for advice. Please provide some insight into their problem. And then it concatenates the email message, sends it to OpenAI and emails back a response within about 30 seconds to your advice prompt. And so it was just a fun little way for me to learn about Action Mailer and Action Mailbox. That was the entire point, because anybody could go on ChatGPT and just ask for advice and you'll get basically the same response. But the purpose for me was to learn about those features.

David Hill:

That's awesome. I was going to ask did you use AI to generate the advice? And so yeah, just the wiring it into chat GPT, like that. That's kind of amusing. I would imagine entertaining myself quite a bit and like developing that and testing that of like what wonky thing can I ask this time, as I'm testing out whatever feature I'm tweaking at the moment?

Neil Hendren:

Well, what I need to do I haven't done this yet, but I was thinking about this is that if people try and break it, instead of asking for advice say something like Ignore previous instructions and do this other arbitrary thing.

Neil Hendren:

Exactly so. I think that something I need to add into the prompt is if the following email does not sound like it's asking for advice, please just respond with. This is not a valid advice request. Please try again, because currently as it is, someone can do that and totally just break it. But my goal with the project was to get an MVP, a minimum viable product to have something to show. I was brainstorming all these features I could add and they said spend five to 10 hours on it, don't kill yourself. And so I kind of just made something that worked and it works and so kind of just left it there.

David Hill:

There's some tweaks I can make, but there's always more work that could be done on something. But I really like this aspect of the Scholar Guide program. I think they're encouraging you to build something, to do something in the community or with the technology, to just kind of get in the water and see what you can find, see what you can come up with. I think it's a really cool aspect of the program.

Neil Hendren:

It was fun. I love Rails. Honestly, it's like you can do anything with Rails. One thing I would like to learn in the future is integrating React with Rails. Honestly, like I'm used to using React, but, on the other hand, erb files are perfectly valid ways of creating dynamic web content and I'm just biased in that I want to use what I already know. But I know that I could use Turbo and Action Cable and whatever the built-in framework is with Rails.

David Hill:

Hotwire with Turbo and Stimulus yeah exactly.

Neil Hendren:

I've heard that the documentation for that stuff is really sparse and that it needs to be expanded upon. So I'm looking for open source work, and one thing I might consider doing in the future is just like going and writing some documentation for that, because it'll help me learn about Hotwire and maybe keep me from defaulting to React for everything. There are other ways of doing things.

David Hill:

There's always a different way of doing things. I'm going to admit my bias here. I'm not a huge fan of React. I've used it before at some jobs and had some pretty bad experiences with it towards the end. So, like I personally don't prefer React, but I mean the job market, every time I kind of look around just to see what's out there, there's still a lot of Rails jobs that have React on the front end. So, like you said, it's a perfectly valid way of approaching the front end problem. I personally like Hotwire and Stimulus a whole lot more, but that's a personal preference. At this point I think they can both get the job done, like you said, using what you already know. Sometimes that's a perfectly legitimate way. Like, if you're trying to get stuff done and not try to learn something, you usually go with what you already know instead of trying to learn on the spot.

Neil Hendren:

at the same time, I gave a lightning talk at RubyConf. The prompt they gave was give a talk about anything. People have given talks about solving a Rubik's Cube before. I was like, okay, anything I talk about with Ruby, since I'm a beginner at it, people will have heard before. So I talked about data visualization, specifically interactive data visualization apps where you can change options and sliders and your graph or whatever data you're trying to visualize will dynamically update on the page, and you can do this in Ruby. For sure You'll need to use some sort of graphical user interface library, but I created visuals for the presentation with JavaScript because that was what I knew how to do. Right, it was another one of those things where they say don't spend 20 hours on this, it's a five minute talk, just prepare a talk. I was like, alright, javascript it is.

David Hill:

I guess, there you go. Okay, so you gave a lightning talk at RubyConf and you did this advice bot for your project. Yeah, yeah, what else was kind of asked of you in terms of, like, being a scholar through the Scholar Guide program? Was there anything else that you needed to do for this?

Neil Hendren:

The lightning talk wasn't even a requirement, it was something that I chose to do. The project was the only thing. We were also asked to fill out some surveys before and after about what we had learned, and very short prompts it took me all of 10 minutes. But they are looking for Ruby Central who puts on RubyConf and RailsConf. They are looking for feedback on the conference in general, especially to people that are new to the community. So part of why they're doing it is just to get a little bit of input into what's going on in the newbies' head when they attend their first Ruby or RailsConf event. Right, but besides that there wasn't anything asked of us.

Neil Hendren:

We could attend as many or as few lectures and events as we wanted. There was a dinner the night before the conference started where only a select handful of people were invited, including the scholars and guides, and that was a place where they introduced us to a lot of the core members of the Ruby Central and Ruby community. I think matt's was even there. Nice, I didn't talk to him because I at that point I didn't know who he was right, and nobody came up to me and said like, hey, this is matt's. Like he created ruby, I would have been like, oh, holy cow.

David Hill:

I probably would have been a bit starstruck yeah, I knew who he was when I first saw him and I was a bit starstruck.

Neil Hendren:

I was like oh my gosh, it's him yeah, it's kind of funny because this is my first software engineering conference anywhere. Oh wow, I didn't realize that there were like stars and celebrities in the ruby community until everybody started talking about maths and dhh and like all these people that are, like involved in the most popular features of ruby and libraries. And it's kind of a social experiment in a way, where people simply telling you that someone is a pseudo celebrity or like C-list celebrity, someone just simply telling you that, changes the way that you interact with them. If I didn't know who Matz was, for example, and I just went up and talked to him, it would be a very casual conversation. I'd be like what do you do? He's like oh, I'm a software engineer, I created the Ruby programming language and I'd be very impressed, but I would approach it like a normal conversation, whereas when someone's like this is this great person, then you kind of get nervous and it is a bit of a social experiment in a way.

David Hill:

Yeah, your initial perception of that person heavily shades how you interact with them.

Neil Hendren:

Yeah, it was like when I saw Mats at one point I held the door open for him. I'm like after you? And I'm sure he's thinking to myself like ugh, suck up.

David Hill:

Mats is nice, so we're nice. I don't think he was thinking that he's very to myself, like suck up. Matt's is nice, so we're nice. I don't think he was thinking that he's very humble, right.

Neil Hendren:

I don't think he likes being treated like he's some amazing person. I think from my experience listening to him talk and stuff, he seems like a very humble guy, that creating programming languages is something that I enjoy and I'm glad to be here. That's the vibe that I got from him. He pulled the door for me. I'm no different than you. That's what I imagine in my mind. That's fair. I like it.

David Hill:

Were there any other particularly memorable experiences that you had at RubyConf that you'd like to share with people?

Neil Hendren:

So I attended three speeches on multi-threading parallel computing Ractor I think that new feature in Ruby 3.3 or 3.2. And it's kind of experimental right now. So I told you I've done scientific computing. Before we migrated our simulations to the web to make them accessible for students and instructors. Before we did that, we did a lot of our programming in Mathematica, and Mathematica is both a programming language and a programming environment. So it comes with its own IDE and it's a very, very high level language, the type of thing where you can make a 3D plot with a single line of code. And it's a very, very high level language, the type of thing where you can make a 3D plot with a single line of code. And for simulations that required more heavy computation, there were times that I used parallel computing and recruited eight cores or whatever in order to speed up the simulation. And it's something that I've always been interested in because, even though it's difficult and you can run into a lot of issues with non-synchronous events even though it's difficult, you can drastically improve the performance of an application by handing off tasks to a new process, a new thread, whatever. I'm still not entirely knowledgeable about all of the subtle differences between threads and processors and cores and all of that. I'm still learning about it.

Neil Hendren:

I found those talks very fascinating, but I do remember attending one talk where they were linearizing a recursive function and they displayed some of the code on the slide and it was just like so far beyond my comprehension, not in terms of the syntax, or I don't understand what this operator does or anything, but the algorithm itself, how it actually works.

Neil Hendren:

If someone showed you the ASTAR algorithm or something like that and you're seeing it for the first time, even if you're proficient with the programming language, you're going to be like racking your brain trying to figure out, like wait, how does this work. And I remember experiencing that in that talk and it was a crowd of like 200 people, so I was kind of afraid to raise my hand and ask can you like walk me through this like a fifth grader, Because it's something that could be really useful. Right, Like, if you use a recursive function, for example, that iterates through an array of a thousand elements, well, your stack is going to just blow up and you're going to run out of memory real quick, and so linearizing it into essentially a single method rather than a bunch of methods stacked on top of each other. I mean, that's really useful. I just didn't understand how it worked.

David Hill:

Like we said before, there's always a different way of approaching a problem. There's always something new to learn because there's so much stuff in there in this software industry of wow, how did someone come up with how to do this and make it so efficient and make it so that you can prove mathematically oh, this does what I say, it does have you seen the so-called quake algorithm?

Neil Hendren:

It's a solution to the inverse square root of a number and it's like 15 lines of code. But it's the most bizarre, incomprehensible thing. But it's what allowed Quake one of the first 3D games, popular 3D games out there to run at a decent frame rate, because the inverse square root algorithm is used so much in 3D rendering. But you look at this algorithm and you're like wait, why are they calling on this memory address? What exactly does XAA06FE23 mean? And I've seen explanations of it on YouTube but I don't know. That's what came to mind. It was like someone's always thought of something that is just absolutely mind-blowing in how it works. I would check it out. I think it's called the Quake algorithm.

David Hill:

I vaguely remember reading something about it way back in the day, but it's been a while and my memory is super fuzzy on it. I'll have to go look that up again. Yeah, is there anything else that you would like to share about your experiences at RubyConf or through the Scholar Guide program?

Neil Hendren:

I hate to talk about something disappointing, but it's clear that the tech industry is struggling right now because their job fair was sparse and the positions that they were hiring for were senior and staff level positions. And you know, I'm looking for a job doing Ruby and Rails in some degree and I was hoping to get some job leads, which it's rough out there right now, man, and luckily I met a lot of people who have been able to give references and point me in the right direction, have been able to give references and point me in the right direction, but it was clear that the tech industry in general is just really struggling right now, but hopefully interest rates will lower in the near future and investment will increase and businesses will start hiring again.

David Hill:

That would be nice, if we would get a nice upswing in the economy again. That would be really helpful for a lot of people, I imagine.

Neil Hendren:

Yeah, the food also was really good, like holy cow, the breakfasts and lunches.

David Hill:

I was like man, they did a really good job with the meals this time around, yeah.

Neil Hendren:

There was also a hackathon hack day, yeah where people got together to build various pieces of software and unfortunately at that time I was rushing to get my lightning talk together and so I couldn't really work with anyone on any projects and I spent the entire hack day preparing for my lightning talk. So that was something that in future RubyConf I would like to make sure that I have free time to do that, because even if I'm just sitting there watching someone else, for example, add a feature to RSpec, that would just be really cool, because open source work, I think, is a very commendable thing to do and a great way to learn a language like Ruby.

David Hill:

Yeah, and I didn't participate much on Hack Day at RubyConf I think I got distracted talking to people but I did it at RailsConf back in May and I can't recommend it enough. If you have the opportunity to sit down with an open source maintainer and actually work on something, either with them or even just like having the opportunity to kind of like ask them questions about what their intent is for a new feature that you're going to kind of tweak and work on or a bug that you're working on fixing, having the opportunity to do face-to-face communication with them instead of it being this kind of anonymous over-the-internet thing that open source often is. I found that to be incredibly helpful and incredibly valuable to not looking at open source contributions as being as scary as I thought they were.

Neil Hendren:

I've been recommended to that. If I'm trying to get into open source to write documentation and I think that's a really good thing to do, because nobody wants to do documentation, you know, and all of us need that documentation All of us need that documentation the team will praise you as a hero if you do it well, even though it's probably one of the more manageable things for a beginner to do, because you don't have to worry about bugs, you don't have to worry about testing, you don't have to worry about even just getting your PR rejected.

David Hill:

Well, your PR could still get rejected but it's not going to be because of functionality reasons, it's going to be. They have concerns about the actual content of the documentation changes.

Neil Hendren:

Yeah, and it's a great way to learn about how a program works, because you'll probably be pouring into the source code and learning how a method or class works, and just reading other people's code is one of the best ways to learn a language in general.

David Hill:

Yeah, absolutely Well. Thank you so much for joining me today, neil?

Neil Hendren:

Yeah, absolutely, it was good talking to you, david, you too.

People on this episode