Demystifying the Rails Codebase with Ridhwana Khan - RUBY 675 - podcast episode cover

Demystifying the Rails Codebase with Ridhwana Khan - RUBY 675

May 09, 20251 hr 4 min
--:--
--:--
Listen in podcast apps:
Metacast
Spotify
Youtube
RSS

Summary

Ridhwana Khan discusses demystifying the Rails codebase, contributing to documentation, and the importance of metaprogramming. She shares her journey, insights on Rails internals, and her work at Circle. The episode also explores community building and tech in Cape Town, offering advice for aspiring contributors and speakers.

Episode description

Hey folks, in this week’s episode, I sat down with the incredible Ridhwana Khan — a South African technical writer for the Rails Foundation and lead engineer at Circle. We had a fantastic chat about all things Ruby on Rails, but especially the underappreciated art (and science!) of writing documentation.


Ridhwana took us behind the scenes of the official Rails Guides — how they’re updated, expanded, and reviewed — and gave us a real sense of the thoughtful, collaborative work that powers one of the best-documented frameworks out there. She also shared her personal journey: from freelancing into Rails doc writing, to her passion for building inclusive communities like Rails Girls South Africa and Black Girls Code.


Some standout takeaways:
  • Metaprogramming = Superpower: We talked about the "magic" in Rails internals — especially metaprogramming — and how understanding it can make you a better developer. Ridwana gave a real-world use case from her time at Dev.to where metaprogramming enabled highly flexible custom profile fields. Elegant and practical!

  • Docs as a Gateway to Contribution: Whether you're new or experienced, contributing to Rails docs is a great way to get involved. Ridwana encouraged folks to read the source code, dig into tests, and not be afraid to open a PR — even if it's small.

  • Working on Circle: Ridwana’s team focuses on Circle's marketing and email hub features — think broadcasts, workflows, and analytics. She's leading the team (and hiring!), and we geeked out over async work, remote culture, and what makes for a great engineering org.

  • Life in Cape Town: From houseplants to penguins, we veered off into Ridwana’s love of nature, her Arduino hobby projects, and even how Shark Week got us thinking about visiting South Africa someday.

This episode was equal parts inspiring and insightful — especially if you’ve ever looked at the Rails codebase and thought, “how the heck does this work?” Ridwana makes it feel accessible, and she’s proof that curiosity and community-building go a long way in tech.


Become a supporter of this podcast: https://www.spreaker.com/podcast/ruby-rogues--6102073/support.

Transcript

Hey folks, welcome back to another episode of the Ruby Rogues Podcast. This week, I'm your host, Charles Maxwood, and I am talking to Ridwana Khan from South Africa. Very cool. I've always wanted to go down there and see different areas down there. Anyway, you gave a talk at Rails World. You talked about a whole bunch of the internals on Ruby on Rails, and it looks like you also helped write the Rails guides, which is awesome. That's one of the...

Nicest things about rails is when I'm talking to people and it's like well, how do I even get started? It's like they've got these great guides just you know Go spend a half hour or so with them and then you're pretty much off to the races. So why don't you go ahead and introduce yourself as far as anything else you want people to know about you. Why you're popular or famous and all that stuff.

Yeah, so I'm Ridwana. Like you mentioned, I'm a technical writer for the Rails Foundation. I've been helping to improve the official Ruby on Rails guides for the last year or so. I'm also a lead engineer at a company called Circle where I focus on building tools that empower creators and communities. I have about over a decade of experience in software development. Over my career, I've worked mostly within the Ruby and Rails space as well as JavaScript.

I think if I had to sum up the things that I'm passionate about, it would be making code more accessible through documentation and that's why I write the Ruby on Rails guide. thoughtful engineering and just inclusive community building, which is why I work at Circle because they are community building platform. And I've built many communities over my career. I try to build communities where I see a gap. So the most obvious one is sort of the woman in tech gap.

So over my career, I've built communities like Women in Tech. I've built Rails Girls in South Africa, Rails Bridge, Black Girls Code. Ladies at UX which is the intersection of our development and user experience. So just really passionate in that space. And on a personal note, if I'm not coding, I'm trying to keep an eye on my ever-growing collection of houseplants and trying to keep them alive. They're constantly dying.

I also really enjoy traveling and going to speak at conferences. It's one of my favorite things to do. And finally, just hanging out with my very opinionated feline peer programmers or per programmers, Zoe and Zeus. If you watch my talk at Rails World, you've seen some really goofy photos of them. Yeah, that's basically me. Very cool. So I have used Circle before. We used it for, I tried to set up a community for the podcasts and I tried it out.

So, yeah, that's cool. I didn't know they were a rail. Yeah. And before Circle, I was at Dev.2, also known as Forum, also a community platform. So I've just been moving around community platforms recently. Right. Yeah, I was going to say I'm detecting a trend. So I am curious as we dive in, right? Because I think a lot of times when we talk to people, it's, oh, you're doing this very cool thing with code.

I'm sure you do cool things with code. I'm not trying to say you don't, but the thing that's interesting to me is... I think a lot of people don't really think about, okay, what goes into the documentation, what goes into the Rails guides and things like that. And I'm curious, how did you get involved there? Did you just, I don't know, go tell the foundation, hey, you need to fix these or I don't know what would happen? No, I think around last year, I want to say around January 2024, Amanda.

from the Rails Foundation was actually looking for writers to work on the Rails Foundation Ruby on Rails guides. And so they put out a post to say they're looking for two freelance writers to work on the Ruby on Rails guides. And during that time, I was sort of between different gigs.

I've been using the Ruby on Rails guides a lot and so I decided why not let me apply and see how it goes and uh yeah i i started writing um for the rails foundation myself and another writer boomi We started off and we worked with a couple of other people to review the guides and that's how it all got started. Very cool. So is that paid or are you doing it because you love it? I mean, I'm doing it because I love y'all and I love the guides and I love what I do, but it is also paid. Okay, cool.

Yeah, I mean, I guess I hadn't really thought too much about it, but now that I'm thinking about it, I'm like, oh, wow. So are there, because the guides have been around for a while, are there any new guides or is it mostly just updating what was already there? So initially we started with updating what was there but when Rails 8 got released we had a couple of new guides that we needed to implement and we'd done that as with the release.

So it's a combination of both. We look at the old guides, we audit them, we see what needs to be updated, and we update them. But then we also, as Rails releases new features, we go in and we create new guides. Also, if contributors create PRs for new features, sometimes that means we go through the pull requests and we update the guides with new information or new sections. Gotcha. So how much time are you spending every week working on the guy?

So we're going to pause a little bit recently as the new year started but I'll be picking it up again later this month. I spend around, I want to say, I forget the actual number of hours because we've put a pause on it for the last three months and we're just starting again. But I think it's around... 20 hours a week. I stand to be corrected. It's been a while. That makes sense. And what's the process?

So I guess the process is different if you're auditing versus writing new ones. But yeah, what was the process? Yeah, so I mean, I don't do a lot of auditing. We have a specific contributor that helps with auditing. Patrick, Patrick Housh, he does the auditing of the guides and a lot of the reviewing of the guides. But essentially what he does is he comes in, he audits them, he checks which ones.

we need to update and then once he's audited it, we use Basecamp and we basically keep track of which guides need updating. Then one of the writers will go in. look at the existing guides. Patrick will already have some notes in on what he thinks can be improved. We look at it with fresh eyes. We then decide what can be improved from our side.

Sometimes that's how I started diving into the source code. I dive into the source code, see how the internals work because I feel that if you really understand how the internals of Rails works, then you're able to explain the things better. Once that's done we send out a PR. It goes through internal review for us within our team.

Once internal review is done, we then create a PR for the open source community to be able to review the guides. Maybe they pick up some areas or gaps that we may have missed. And then finally we merge it. Very cool. So are they in the Rails repo or are they somewhere else? Yeah, so they're in the Rails repo and usually we encourage open source contributors to have a look through them.

The guides are marked with a label RF docs and it has a label, sorry, in the title we usually have our prefix rfdocs and then it has it has a label rails foundation so if you're trying to find any of the docs you can do that and we really encourage the rails community to review them because it means that if you're learning rails or even if you've been using rails for a long time

You basically know where some of the gaps lie, what you've struggled with, and when you review them, you can bring some of that fresh perspectives to our PRs. Right. Makes sense. So, yeah, I'm curious how deep into the internals have you gotten? Because, I mean, your talk was a half hour, so you didn't get too deep into things. It sounds like you spend a bit of time looking at how Rails is actually put together under the hood.

Yeah, I think, I mean, depending on what guide I'm writing at the time, I then dive into the internals and sometimes it requires a deeper dive, sometimes it doesn't. I feel like when you're writing documentation, it's not really enough just to describe what a method does on a surface. You need to understand how it works, why it behaves the way it does. And that's taken me to some of the more complex parts of Rails codebase.

So for example, in the talk, I talk about MIME types. I've traced through how Rails handles the different MIME types using method missing. I've dug really deep into active record associations because that's a very big part of Rails as well when you're writing applications. So things like the definitions of the dynamic methods and so on. I've looked at, I think I mentioned in the talk as well as validation. So real users like the dynamic callbacks, things like that.

like that and I think that the most common pattern is just the metaprogramming aspect of it right so trying to find those patterns across the different parts of Rails or components in Rails and then trying to understand it a little bit better. The Rails Codeways is really huge and there's like always more to learn. the magic is beginning to feel a little bit less like magic as you start understanding more of it. Yeah, I mean, it seems like...

We've talked to different people about medical programming on this podcast over the years. And so, yeah, a lot of what you put up there, I was like, oh, I see how that works. Um, and yeah, so I can kind of get the idea that, yeah, it feels a whole lot less magic and a whole lot more, oh, that, you know, this is a tool that we used and, you know, and so it's able to, you know, for example, you know.

defining methods, using defined method, right? It just puts things in place. It does the work. And one thing I hadn't thought of with the MIME type is you define the method and then you just call it. I was like, oh, that makes sense. So, yeah, I really liked that and really liked just the clean approach to explaining how all this stuff works. Yeah, I think the main aspect really, and again, I have to emphasize it's the patterns.

Rails is a lot of magic, but once you identify some of the patterns and once you understand how meta-programming works, you sort of start putting these puzzle pieces together and you're able to understand the code a lot better. and then you'll see with the different components.

there'll be one pattern here and then it's applied in this different place and what i try to also do within the talk is show how patterns are applied across the different components so if you understood it in one component you can go and dive into a different component and it has very similar And once you think of it like that, it feels a lot more approachable.

Because when I started off in Rails and even like up until a few years ago, there was all this magic happening in Rails. So when you reach a point of life... Hey, I'm doing this thing but it's a little bit more complex and now Rails isn't playing nicely with me. you don't really know where to go from there. But if you try reading the source code or you try looking into how Rails is actually working, you're able to move past that blocking point and do more complex things.

I mean ideally you don't want to break away from the magic but unfortunately the reality of it is when you build complex applications you end up needing more tools under your belt. And I feel like understanding the code base is a tool. Yeah, that makes sense. For me, what I found was, as I've learned Rails first and then Ruby later, as far as what all the other things are, that Rails kind of makes sense. to deal with right off the bat was I would build stuff.

And then, yeah, I would get stuck on something, right? They'd be like, I don't know why it is doing this. Why is it acting this way? Why is it, you know, doing this thing to whatever it is that I'm trying to work on? It became pretty apparent once I started to learn Ruby. It was like, oh, it's doing this because Ruby works this way.

And so it's just using the Ruby mechanism to do the thing. And so, yeah, I love that idea of saying, okay, look, go look at the internals. It may be something you haven't done before, but it... It's not a mystery. It's not complicated or hard. It's just, you know, it's something that maybe you need to learn a little bit more about. And then you look at it and you go, okay, this is where this is coming from. This is why I have this the way that it is. Yeah, and another aspect of it.

is that when you go through the Rails codebase, you're also not only learning about Rails itself, but you're potentially learning how to solve problems elegantly, right? So Rails does solve problems elegantly and very often when we're working on our features within whatever application or companies we're working for. you're solving similar problems in just different use cases or different forms. And so by going through the Rails codebase, you're able to also learn problem-solving skills.

Yep, absolutely. So let's talk about some of those skills or some of the things that you've seen in the code base. You kind of went straight to metaprogramming. And I've seen plenty of people over the years basically talk about how metaprogramming is scary or you can get yourself into trouble with it. I don't know. How do you feel about that argument about using metaprogramming or not? I think that using metaprogramming, I think there's

You're going to have a lot of people saying metaprogramming is the best and some people saying that you shouldn't use metaprogramming. I think that there's a... for MATA programming. Metaprogramming is a superpower and it can lead to really elegant expressive code but it also can lead to very scary and intimidating code that's very hard to follow. Sao! I appreciate metaprogramming but I also respect that it has a lot of complexity and it can make code harder to debug.

Especially if you're not familiar with the patterns or if it's overused without clear naming or clear direction. So I wouldn't say that. I feel strongly that everybody should use meta programming. I think that meta programming needs to be used based i think master programming has a place and depending on your use case uh master programming may be a good fit But if you're using metaprogramming for everything, you may just be overcomplicating things.

Yeah, I think that's a fair way to put it. I do a lot of work online. And what I found is that most of the time, you know, just the regular tools work. And even if I pull out the power tools, right, they work. But occasionally I've got to open up a wall with a saw or I've got to... Use some other tool that, yeah, you know, may have some safety hazard to it or something if you're not using it properly. And that's the way I think about metaprogramming is, you know, you don't want to.

take more out of the hall than you have to, so to speak. You have to be careful not to hurt yourself with it. Sometimes the code can be hard to debug when you're using metaprogramming. Yeah, you know, what I find is most of the time when I'm reaching for something like metaprogramming, I am doing something on the level of Rails, right? And so what I'm doing is I'm actually using it to provide myself with the pattern I want to see in my code.

And so that winds up being in the lib folder or somewhere elsewhere. It's not code that I'm going to go touch all the time, and it's not code that I'm using to solve all my major problems. What I'm doing is I'm just basically using the metaprogramming to create a better tool for me to solve. Yeah, and I think your example, by the way, was great about how you do DIY walk around the house and sometimes you need to bring out the right tool.

In my talk, I talk about a real-world use case where we use metaprogramming, which I think is really valuable. So when I was working... Dev.2 or known as forum as well. We were building, of course, community software and we needed a way during onboarding to let different communities define custom profile fields for their members.

so for example in this talk i use the example of a gardening community and for gardening community during onboarding we may want a profile field a user can enter their favorite plant. or a developer community might ask if you're available for hire.

So these fields need to be highly customizable and they might need to be dynamically added at runtime. They also might support different data types like strings, boolean states, etc. So rather than hard coding a bunch of different profile attributes that are different for different communities, We used metaprogramming to dynamically define getters and setters for the custom fields as the communities created them.

And it meant that communities could define as many custom fields as they want and the system would just respond. There were no like migrations or extra model code or no like hardwired logic. It just made the system really flexible. And I feel like that's a great example of how metaprogramming is used in a real practical way to solve a problem. But like you say, I feel like they are very metaprogramming.

In my career, I think that's probably like One of the very few cases I've needed to use metaprogramming and maybe there's like one or two others But over 10 years, you're mostly building standard applications that don't necessarily require that level of customization. Yep, absolutely.

So what other things have you found going back to Rails internals? What other things have you found that maybe you wanted to add to the talk but didn't have time or have thought were interesting that people don't really see or know in the Rails code? Um... I think there's so many gems, no pun intended, in the Rails codebase. One of the things that I really enjoy about exploring the Rails internals is seeing how thoughtfully things are architected.

So when you like how it gives you a whole ecosystem of dynamic methods. how things are named really well, so just very thoughtful processes, very thoughtful naming. also how the different components are well separated. Things like how well the code is documented. I think that's really a superpower. If you go through the Rails code base, you'll find sort of method definitions, you'll find how the Rails API documentation is within the code base and you can see what the different methods are doing.

So I think there's a lot of sort of other practices that the Rails team uses within their sort of actual development. And I found a lot of those useful alongside the metaprogramming aspect and the great architecture. i also think sorry one more thing to add there like the pr um i found that When I'm writing documentation, I also sometimes tend to go through the open issues or pull requests to see.

Did someone touch on this? Maybe there's something I don't really understand and I want to understand it better but maybe the Rails codebase doesn't provide as much information. i find that when i go through pull request reviews or even issues our contributors and the core team are very verbose about explaining things. They do a really great job about articulating themselves and working together to form a solution.

So it's really nice to go through pull requests, to go through issues, and I really encourage people to just If you're not contributing to Rails or you're not reviewing documentation PRs or even just normal Rails code, like just browsing the issues and the pull request casually. provide a ton of information and useful knowledge. mm-hmm Makes sense. So do you have any advice for people? Let's say that, you know, somebody, I mean, I have to admit, I haven't really contributed to Rails.

I filed bugs. I think I... maybe put in one pull request in my whole life against rails. So if somebody wants to get involved and they're sitting there and they're thinking, okay, well, I just want to understand it, you know, and maybe they want to contribute to the docs or maybe they, you know, just want to understand things better and, you know, maybe.

help with some little thing here or there? Like, where do you recommend that people start with the Rails code base to just understand what's going on in there? Yeah, I feel like I am so, I get so excited when someone asks me this question. I'm biased. But I feel like starting with documentation is a really good way to get into contributing to Rails or just understanding things better.

Rails places a lot of value on clear, accessible documentation. So if you're reading a guide or an API document and something's confusing or missing, Just open up a PR to improve it, to add value to the next person. You don't need to be a core contributor to that. You don't need to be writing the guides to do that. You just need to be someone who wants to make it clearer for the next person reading the guide.

And especially I feel like a lot of people that are new to the industry or that feel they feel they don't have enough. knowledge to contribute to rails or something or the other that's how i felt for a long time i feel like documentation is a clear way to contribute because if you're not understanding something in the documentation, I can guarantee you there's hundreds of other people that are not understanding it as well.

Another way to get yourself familiar with the Rails codebase, if you're looking to just dive a little bit deeper, I think read the test. They are incredibly instructive, so the Rails test suite is massive, but it's very descriptive. It shows you how methods are supposed to behave. It often gives you breadcrumbs to trace back to the source code and when you're trying to understand something or if you're thinking of fixing a bug.

Tests are often the best entry point and writing or improving tests or just reading the tests is a fantastic way to start. And then if you're looking actively to contribute, you can look for a good first issue or you can look, like I mentioned, the docs tag. The Rails GitHub repo is very well organized so there's very often open issues that are labeled as like a good first issue or where we need contributions in the documentation.

And finally, don't be afraid to read this world's code. Even if you don't understand it, that's fine. Just a lot of reading of it. Eventually, your mind starts to put the pieces together. It's like the more you read. the more somehow your mind just like connects different parts of it. You start seeing patterns emerge. There's lots of tools as well that I mentioned in my tool. on like things that will help you to navigate the real source code better.

So use some of those tools to navigate the Rails source code. And finally, you don't have to do it alone. There are so many people in the Rails community who are so kind and supportive and willing to help. So whether it's in Rails Slack or Discord or GitHub discussions, you can ask questions and you can get on. I think the main thing, finally, to wrap it all up is that contributing to Rails isn't really about being perfect or knowing everything.

It's about just being curious and wanting to make Rails better, even if it's in small ways. Awesome. Alright, well, um... I'm just trying to think where else we... Go from here. Are there things that you want to add or change or bring forward with the Rails documentation or areas that it wish it dove into that it doesn't? I think, yeah, I think there's a couple of places where we could improve the documentation. There's a couple of guides and I'm wrapping up the guides as we speak.

Bear with me as I do this. There's a couple of guides which I think... improvement and we've got them noted. So for instance, one of the ones that I'm hoping to work on within this year is the active record query interface. It's a really big guy. I think it's in a good place but I think there could also be a lot of improvements.

we could maybe move out sections make them smaller more approachable sections i think it's one of the biggest guides i think just breaking it up into smaller more digestible pieces will make it a little bit more approachable there's also some other could use some improvement i think we're ready you know i think the rails guides in general is one of the better guides we have out there across languages i think the rails foundation has been doing an amazing

But there are just individual ones that are work in progress. So like the Rails initialization process, that's a work in progress as well as like the active support instrumenting. things like active record encryption. So the first thing we want to do is we want to finalize those work in progress guides. because they may have right now not like the full picture of what their topic encompasses. So we just want to fill out that information.

cover the bases and then we'll go about improving some of the other But we're hoping to achieve a lot this year and improve it significantly, as well as create some new guides that haven't been covered with Rails 8. Yeah, there are a lot of things that I see you can do with Rails 8 or I mean even some of the stuff that came out in Rails 7 that aren't super well documented, right? And I see people use them.

And they do amazing things with them. And it's like, man, why hasn't anyone really just broken this down? So, yeah, I'm looking forward to some of that. Yeah. So I'm a little curious. I want to kind of switch over to both Cape Town and to Circle. So what do you do at Circle exactly? Like, do you work on a specific part of the platform or do you just kind of hit whatever needs to be hit? And by the way, I'll just explain because I've used Circle.

What I find is if you work at a place you kind of look at it differently from the way that people use it, look at it sometimes. So Circle is essentially a forum. You can think of it as kind of a focused Facebook. It kind of feels like that. Facebook group. And then on top of that, you can add like... other things to your community. You can set it up as a paid community or a free community and yeah, it's a really well put together system. So yeah, so what kinds of things do you work on there?

yeah, what kinds of concerns or improvements do you find at work? Yeah, Sokol is really established. well written product. We have some really big communities using it and it's one of the It's one of the companies that I've worked for that is constantly improving and always looking to better the product and it's very exciting because they constantly features but also improving the features that exist in the application itself.

So specifically, I work on what we call the email hub or marketing hub team at Circle. And we're basically responsible for things like email broadcasting.

sort of that domain whereby you're able to send broadcast to either community members or what we call contacts within the system or leads and there's just a lot of things that tie into it so for example analytics and that ties into things like workflows where for instance when you onboard a community you might want to send a broadcast and then we might want to wait for five days and send them a follow-up things like that

It's a relatively new team at Circle. I think we launched the email hub slash marketing hub. feature last year, I want to say around September, October, it was around Rails World time. So it's relatively new. We're actually hiring for the team at the moment. So I'm leading the team and we have two engineers and we're looking to hire another two engineers for the team. So I've been doing lots of interviews. hiring at the moment. Our tech stack is Ruby on Rails and we use JavaScript as well.

It's a pretty big engineering team, so each sub-engineering team is focused on a particular part of the platform. So we have like a CRM team and a CMS team and you sort of focus on a specific domain. Very cool. Yeah, I just got hired at PrizePix. You know, we're seeing some of this stuff and I'm on the growth team where we... It's kind of your traditional R&D where we come up with ideas on what we can do better and then go.

invent it and see if it works um but yeah i i love what you're talking about where it's yeah the growth that's always exciting to see companies growing and then yeah just Yeah, constantly looking for that level of improvement. Those are the best. If people want to apply, how do they do it? um we are on we have if you go on the circle website you should see a careers yes a careers link

And you can view the open roles and you can find the roles, the role for a senior full stack engineer on the Marketing Hub team. And you can apply through there. It's very exciting. You'll be working with me. So please apply. It's also a fully remote opportunity, which is nice. Those are real few nowadays. Yeah. So you're based in Cape Town. Is your team like all over the world? Yeah, so we have developers from pretty much... all over the world. We are in the Marketing Hub team right now.

It's myself and then we have two developers in India and we're hoping to hire someone in a European time zone and then maybe North America, just so that we have that full time zone support, but also ensuring that we're not too far apart, that we can't collaborate. when we need to so maybe like with a one hour or two hour overlap just in case we need some sync time

So that gives us sort of good collaboration across the board. But for the most part, we use async tools like Slack and Notion. We document things very well. And yeah. Nice. Where's the company based out of? to be honest. I guess, since there isn't actually a head office, then no, there's, I guess, there's not actually. There really isn't a head office at all.

Yeah, I mean, on the invoices and stuff, you'll probably, I think I stand to be corrected, I want to say the US, New York. But again, that may not be factual. Sounds good. So what's the community like in Cape Town? I mean, are there a lot of Rails developers out there? Yeah, they are. We used to have, I want to say, a well-known conference because when I went to Rails World and a couple of other conferences, People have asked me about this conference. It's called RubyFuza.

and we ran it in South Africa for a couple of years, but we haven't run it, I think, since COVID. There's a really big Ruby community here. There used to be a lot of meetups previously. I want to say that since COVID, that's sort of when things slowed down a little bit. I'm also not originally from Cape Town. I was based in...

Living in Joburg Johannesburg and then moved to Cape Town only like five years ago Johannesburg also has a really big Ruby community We still have constant meetups every couple of weeks um and yeah it's really good i will say though because i work for a lot of u.s com i've over my career i've worked for a lot of u.s companies my community tends to be more sort of global i tend to attend

conferences where I'm sort of traveling. And so it's been a little bit more difficult to keep in touch with the Rails community within Cape Town. But I'd like to see Ruby Fooza hit the ground running again. That would be really cool. That would be cool. Yeah. So are there any other personal projects or anything else that you're working on? Or is it mostly the Rails guys? So between the rails guides and then I like to tinker on just personal projects I've been trying to tinker with arduinos.

and connecting that with sort of yeah it's really cool i've really been enjoying it i like seeing like the physical aspect of like things working so i've been working on sort of with moisture detectors and sort of like merging my passion for keeping my house plants alive together with like a little gardening system.

So I've been tinkering with that, and it's been really fun. But between writing code, the Rails guides, and then doing some of the tinkering, and then also speaking at conferences, I've been... very busy over the last few months. My next conference I'm really excited about is Rubicon Thailand. And that's next year, January. I'm one of the keynote speakers, so I'm really excited about that. Oh, nice. That would be so fun. Yeah, I've never been to Thailand as well, so super excited about that.

Yeah. So do you have any, I guess you've been on the conference circuit for a while. I think I went and looked at your website. They listed a whole bunch, and I was like, oh, wow, she's been to quite a few. Do you have any advice for people who are thinking they want to speak at conferences? It seems like a lot of people decide they want to speak. They put in a CFP, and yeah, they get rejected at the first bunch, and then they give up.

Yeah, I think that I'd say just go for it like even if it feels scary at first Like, I think If you have a passion for it and you want to do it, you should.

I think the main thing that i have to say is you don't have to be an expert you just need to be like curious and willing to share people sometimes assume that conference speakers know everything about a topic that's not true i very often i will put together a CFP about something that I know nothing about but want to learn more about and those make for the most interesting tool. So things that you're interested in, things that you may have learned that you think others might find useful.

And especially I find that the CFPs that have the most success rates, at least from my personal experience, is the CFPs that talk about... that have a story that is something that you've experienced and you want to share with the world so for instance

My Rails will talk, demystify and Rails codebase that came from a storyline of being a technical writer and diving into the documentation and some of the difficulties that I experienced and then sort of what I did in order to be able to learn how to demystify the Rails code base. So a lot of the time, it's things that you've experienced and you want to tell that story.

I feel like writing an abstract first even before you have like a full idea the talk that's okay sometimes people write their talks first or they they try to have every not necessarily write their talks but they try to have every aspect ironed out first before you're submitting they feel that they need to know everything before submitting you really don't have to it just needs to be a peer

And then just ensure that you have enough time before the conference talk, of course. And then you can learn on the way. Right. yeah and start small and then grow so if you've never spoken before a good opportunity i remember when i started talking The first kind of places that I submitted my talks to were like local Rails communities, meetups that I went to, and I would talk there.

get a little bit more confident in front of people. I would get feedback on a talk and then I started applying to the bigger ones. And that way you can also put in your CFPs that like, hey, I have spoken at these different communities. I have experience speaking, things like that. Yep. Makes sense. All right. Well, I think I'm going to start leading us toward.

toward the end of the show and pics but before we do that like where do people find you if they're looking for you on the internet and they want to connect So you can find me on Twitter, what do we call it? It's been a few years. I still call it Twitter. You can find me on Axe. My username is Ridwana underscore K. My name has a silent H, so it's R-I-D-H, W-A-N-A underscore K. You can find me on LinkedIn as well. My username is Ridwana, but mostly on X.

Very cool. All right, well, let's go ahead and do the picks then. I'll start it out and just kind of show you how we do it, and then you can shout out about whatever you want. So the first pick that I have is... It's a board game, and I almost always do a board game of some kind. If I haven't played anything new, I'll just pick one that I like that I've played that I've probably picked before. But we played a new one yesterday with my... So I play board games every Wednesday night.

And we played a game called Colt Express. And it's a train robbery game. BoardGameGeek weights at 1.84. which is kind of... So two is about where I tell people the casual gamers are kind of going to go, okay, this was a little bit complicated, but... not so complicated that I didn't like it, and it was fun, right? A one is like the games you play with your kids, right?

So, you know, and so it's got enough to it to where there's some competition and stuff. And some of the ones are really fun, right? There's simple dynamics. But anyway, so this one's a 1.84, so it's almost a 2. It's called Cult Express, and it plays two to six players. My friend has the Cult Express Big Box Edition. which has two of the expansions in it. So his will play up to nine. And apparently there's another expansion that adds another player or two as well.

So you can play with a lot of people. It came out in 2014, and what it is is it actually has little train cars that you put together for your game board. And so you have the locomotive and then you have one train car per player. And there's loot on the floor of the train cars. And so then what you wind up doing is you have a deck of cards. and the cards allow you to shoot.

at the other players. You can punch the other players. You can move up to the roof of the car or back into the main part of the car. And you can move across the car. So you can move from one car to the other. and there's a marshal, and if you wind up in the car with the marshal, then he shoots you, and you move to the roof. because the marshal doesn't go on the roof. And so then the rest of it is when you, oh, and then you can pick up loot, you can move the marshal.

I think that's it. So if you shoot another player, you put the shot card in their deck, right? And it's a no-op card. So it dilutes their deck. It makes it harder for them to get what they want. If you punch a player, then you make them drop a piece of loot. You know, picking up loot, loot's worth anywhere from $250 to $500. There are gems that are worth $500, and there's a lockbox or a strongbox on the locomotive where the marshal starts that's worth it.

And so you just move around the train and try and get as much money as possible. And the way you play the turn is whoever's first, they put a card on the pile. And then you go around the circle and everyone else plays a card, right?

And so you can see what they're playing on the turns where you play face-up, but sometimes there are twists where you go around the circle the other direction, right? And so you may get, if you're first, you know... it doesn't change a lot for you, but if you're last, and it changes the direction, you get to play, the first player plays, and then you get to play again. And so, you know, that may change the dynamics. There's others where you play them face down. So for those cards on that round.

You don't see what the other players did, so you can't react to it. There's another where you play two cards at a time. And so you play twice, right? And so you can move and then pick up loot because you know that you're going to be able to get there before anyone else. Or you move and you punch another player and make them drop loot because you know that they're going to be there. And then if you shoot the most shots, then you get $1,000. So anyway, then you tally it all up at the end.

Anyway, it was a lot of fun. A lot of fun. And the game board is really unique because it's actually a train that you just set up on the table. And so, I mean, it's real small, but anyway, it was a lot of fun. Really, really enjoyed that. It took us about an hour and 15 minutes to play. but we were learning how to So I think you could probably play it. We played it with five people. We'd probably play it in 45 minutes, I think. So anyway, very, very fun. So I'm going to pick Cult Express.

And then I'm going to shout out about a few others. So yesterday we had a team lunch with my team. And basically we got sent gift cards for DoorDash. Right. So I had food. And then we played Wiki Race. And that's at wiki-race.com. And the way that WikiRace works is, and you can put in your own things that you start at and end at, but it starts you on a page on Wikipedia, and then you have to click links to get to the other page, right?

And so one of the ones we played that it was like some soccer player from. like the 1950s that, you know. there were probably like four links that went there, right? And so... Um, and we, I can't remember where we started at, but it was something like completely weird. Right. And so you start figuring out some of the tricks, right. Where it's okay. Well, I know this guy's from England.

And so I'm going to get to England, right? And so I click some of the links that take me to the world and then countries and then England, right? And then I know he played on these teams. So I go to the... soccer leagues and then England, right? And so anyway, it's very, very fun. And it's basically a race. So whoever gets their first win. And then when somebody wins, it shows their progression through Wikipedia. There was one that we got that...

everybody eventually just gave up on. So it is possible to get some that just are hard to figure out. I'm not sure it was possible. I just think it was really, really, really tough to figure out. Anyway, it was really fun. And they picked some really obscure Wikipedia articles. And so that's fun too, because part of the game that we figured out pretty fast was, okay.

the first step to figuring out how to complete this chain is to open another tab in my browser and go look up the thing that i'm trying to get to because i have no idea who this person is or what this thing is right and so you go look it up and it's like it's like oh it's a plant south america

All right. So, you know, then, then you start figuring it out. So anyway, tons of fun. Um, and so I'm going to pick wiki race and then, um, I'm just trying to think through things because there was something else I wanted to pick and I can't remember what it was. Anyway, I'll just save it for next time. Do you have some stuff you want to shout out about? Yeah, those were very cool. I'm very into games and so I'm definitely gonna check them out. So a problem that I've been having recently is...

just being able to I guess document meetings a little bit better. So having to write down notes from every meeting and then consolidate it all together has been a really big pet peeve of mine.

It's very tiring and sometimes really unnecessary to have to take... places and then put it together so i've been looking for a good tool that will be able to help me a little bit with note-taking especially with ai and its advancements so recently i've been exploring a few of these so the one that i've been using has been crisp.ai I don't know if you've heard of it, but it's basically an AI assistant for collaborative meetings. So some of the team meetings.

i'll basically enable crisp and it will it does recording if you wanted to or it can do transcribing So it will give you the entire sort of transcribed version as well as the audio recording of the meeting. but that's not the coolest part the coolest part is that it will give you a summary it will give you the action items from the meeting it will give you a detailed outline if you ask it to but then also it has this ai chat that is attached to sort of every meeting once it's been uploaded.

And with the AI chat you can get pretty specific. So if there's a specific part of the meeting that you want to dive into, you can just ask the AI chat to summarize or detail certain parts of the meeting, which is really nice. Sometimes the output of a meeting is I maybe need to I have specific questions and I just want to summarize these.

summarize the meeting and answer these by answering these specific questions. And so I just go in and I like putting the questions in the AI chat and it will basically spit out. the solutions that we came up with in the meeting. So really, really cool. I've been exploring that against a different AI tool, which is Granola AI. And that's like an AI note period for people in meetings.

So the difference being is that CRISP will transcribe the entire meeting and potentially if you want it to record as well. whereas granola will simply just provide you with a sort of note. for the meeting so it will take your raw meeting notes and make them into something more legible. So both those tools have been pretty interesting and I found that it's made our meetings a lot easier especially like team meetings where we're making big decisions. to summarize it. I also find myself sometimes

so focused on taking notes that I'm not processing what someone's saying in real time. So the fact that I can just give my notes over to a tool and let the tool handle the note taking and I can be present and process what people are saying makes it a lot easier and a lot more efficient for me personally. Nice. So one thing I'm going to clarify for folks, CRISP AI is spelled with a K. It took me a second to find it. But yeah, very cool. Very, very cool.

All right. Well, I don't think there's anything else, so I'm going to go ahead and wrap it up. Thank you for coming. This was fun. Yeah, thank you for inviting me. And I hope that you will end up visiting Cape Town one day because it really is beautiful. Yeah. I have to admit, so I'm going to leave this on the recording, but I'm curious, you know, I'll just bring it up. So my wife is a huge Shark Week person.

So every year in the summer, Discovery Channel does Shark Week, and they have a ton of documentaries out in Cape Town where they have the sharks jumping out of the water. You know, they're just out there kind of filming them doing their thing and, you know, chasing seals and whatever.

And then, you know, sometimes they do show part of the town or at least the coast. And it just looks amazing. It just looks like, oh, wow, this would be a really cool place to visit. And I don't know that I would necessarily want to go out on a boat looking for sharks. But, you know, I think it would be a blast. And I have to say that my wife, after watching some of these shows, she might be the one going, I want to go out on the boat looking for sharks.

Well, there's other animals that you can go out looking for, like dolphins. And we have a penguin beach called Boulder's Beach where you can interact with the penguins. Yeah, you can interact with the fun, cute ones. Yeah. So what's the best part of living in Cape Town? I'm just curious. I think nature, the nature is the best part. It's along the coast. It's absolutely gorgeous. There's this drive called Chapman's Peak if you look it up on the internet.

It's just beautiful scenery along the coast. On the one side you're seeing the sea, on the other side you're seeing the mountains and it's just absolutely gorgeous. We have Table Mountain, which I mean based on the name. It's basically like a tabletop. There's lots of hiking opportunities in Cape Town. If you're an outdoor person, there's a lot of things to do. Lots of like diving, swimming, lots of long drives, lots of good sunset views.

And I think people here are just very relaxed and laid back. I will say that took me a long time to get used to. I'm five years in Cape Town and I'm still not used to that. Because from Johannesburg, we're very like... hustle and very serious about things and Cape Town is just a vibe that's the way I can describe it a very chilled vibe so yeah lots of fun things to do and keep

People are very friendly as well. I find South Africa to be one of... the friendliest people around like you walk in the street and you'll say hello to people and you'll smile at them not every city is like that in the world but South Africans are really friendly people. Nice. So I think a lot of people, if they pay attention to South Africa... You know, they've probably heard of Cape Town. I think most people are, I think Johannesburg's the biggest city in South Africa. And so...

Yeah, I mean, how accessible is it? I'm assuming you have direct flights in and out of there because it's not a small city. My family lives in Johannesburg, so I basically fly. up to Johannesburg, I want to say every four to six weeks to see them and just spend some time with them. It helps that I walk remotely, so it means that I'm just able to walk out of any of the cities. My husband's family stays in Durban, so we fly.

delvin pretty often as well um yeah it's very easy to get to the different cities and each city offers something different um so cape town is i don't know if you know this but cape town has a part of Cape Town and we call it Okay, good hope. Okay, point. It's where the Atlantic and the Indian Ocean meet. And so you can actually see at some points of the year where you can see like the different colors of the ocean and they sort of meeting at that point. It's really beautiful.

But unfortunately you're not really able, or I personally don't swim in the ocean here. The Atlantic Ocean is really cold and just not for me. But if you travel to Darwin, that's the Indian Ocean. And the Indian Ocean is just beautifully warm and really nice to swim in. hop over to Melbourne and go swimming at the beach. And then in Johannesburg, you'd mostly do a lot of shopping there. There's a lot of big buildings, a lot of corporates there as well. So higher earning potential.

people that are just very busy doing things, a lot of good takeout. And just a lot of shopping malls. And then we have the Kruger National Park as well. So if you want to see what we call the big five in South Africa. which is the lion leopard elephant rhino and buffalo you'd basically go to Karuga National Park and you could uh do a safari and see them no we do not have animals walking around the streets of south africa i know sometimes i get asked that question no really that's not the case

I mean, sometimes we have had a tiger on the loose once or twice, but not on a daily basis. So yeah, really good safaris as well. Lots of very cool things to do. Cool. Very cool. All right. Well, I'll stop asking you questions about South Africa, but thanks for coming. This was awesome. No problem. I had so much fun. Thank you for inviting me.

This transcript was generated by Metacast using AI and may contain inaccuracies. Learn more about transcripts.
For the best experience, listen in Metacast app for iOS or Android
Open in Metacast