UNLIMITED
1: Sandi & Derek's Rules: Sean and Derek discuss lessons learned from following Sandi Metz' rules on a project and the overall impact of rules on code. by The Bike Shedratings:
Length:
31 minutes
Released:
Oct 11, 2022
Format:
Podcast episode
Description
Joël is joined by Amanda Beiner, a Senior Software Engineer at GitHub, who is known for her legendary well-organized notes. They talk about various types of notes: debugging, todos, mental stack, Zetelkasten/evergreen notes, notetaking apps and systems, and visual note-taking and diagramming too!
@amandabeiner (https://twitter.com/amandabeiner)
Mermaid.live (https://mermaid.live)
Monodraw (https://monodraw.helftone.com/)
Zettlekasten (https://zettelkasten.de/introduction/)
Evergreen Notes (https://notes.andymatuschak.org/Evergreen_notes)
Notion (https://www.notion.so/)
Obsidian (https://obsidian.md/)
Transcript:
JOËL: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Joël Quenneville. And today, I'm joined by Amanda Beiner, a Senior Software Engineer at GitHub.
AMANDA: Hey, Joël. Great to see you.
JOËL: And together, we're here to share a little bit of what we've learned along the way. So, Amanda, what is new in your world?
AMANDA: Well, one thing I'm really excited about is that my team at GitHub is experimenting with how we're going to incorporate learning and sharing what we've learned with each other in new ways, and I'm really excited to see where people take that.
So, one of the things that we're thinking of is that we all get really busy, and we all have exciting projects that we're working on in the day-to-day, and sometimes it can be really hard to pull yourself away from them to do some learning that would be something that will probably help you in the long run. But every time we do do projects like that, people are really excited about it, and people like to collaborate. So we're just trying to figure out how we can make that a more regular thing because it's great for our whole team.
JOËL: I love that. Do you have a project or something that you've been getting into recently to learn?
AMANDA: Yeah. One of the things that I have been working on is that this is the first backend-focused role that I've had in my entire career. So I feel like I just kind of keep pulling back layers on how different forms of magic work. And I'm just trying to get closer to the metal of what is powering our databases. And that's something that I've been really excited to learn some more about.
JOËL: So it's digging into a lot of, like, Postgres and just general database theory.
AMANDA: Yeah. So for me, I've spent a lot of time at the Active Record layer as I have been settling into my role and figuring out what our domain models are that we care about. And I'm trying to get a little bit more into the questions of why did these tables end up looking the way that they do? Why are they normalized or denormalized where they are? And trying to get a better idea of the theory behind those decisions.
JOËL: And this is a new team that you've joined.
AMANDA: This is an existing team that I've joined a year ago now.
JOËL: So it sounds like you're dealing with a somewhat unfamiliar codebase. You're looking at a bunch of existing models and database tables. That can be a lot to process and understand when you first join a team. Do you have an approach that you like to use when you're looking at unknown code for the first time?
AMANDA: Yeah. I usually like to dive right in as much as I can, even if it's with a very small bug fix or something like that, something that allows me to just get my hands dirty from the beginning and poke around what models I'm dealing with, and maybe some of the adjacent ones that I don't need to know about now but might want to come back to later.
JOËL: One thing that I find is really helpful for me are diagramming and note-taking. So if it's something like a database table or ActiveRecord models that I'm not familiar with, if it's more than maybe two or three, which is probably the most I can keep in my head, I have to start drawing some kind of like an entity-relationship diagram or maybe even just a bulleted list somewhere where
@amandabeiner (https://twitter.com/amandabeiner)
Mermaid.live (https://mermaid.live)
Monodraw (https://monodraw.helftone.com/)
Zettlekasten (https://zettelkasten.de/introduction/)
Evergreen Notes (https://notes.andymatuschak.org/Evergreen_notes)
Notion (https://www.notion.so/)
Obsidian (https://obsidian.md/)
Transcript:
JOËL: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Joël Quenneville. And today, I'm joined by Amanda Beiner, a Senior Software Engineer at GitHub.
AMANDA: Hey, Joël. Great to see you.
JOËL: And together, we're here to share a little bit of what we've learned along the way. So, Amanda, what is new in your world?
AMANDA: Well, one thing I'm really excited about is that my team at GitHub is experimenting with how we're going to incorporate learning and sharing what we've learned with each other in new ways, and I'm really excited to see where people take that.
So, one of the things that we're thinking of is that we all get really busy, and we all have exciting projects that we're working on in the day-to-day, and sometimes it can be really hard to pull yourself away from them to do some learning that would be something that will probably help you in the long run. But every time we do do projects like that, people are really excited about it, and people like to collaborate. So we're just trying to figure out how we can make that a more regular thing because it's great for our whole team.
JOËL: I love that. Do you have a project or something that you've been getting into recently to learn?
AMANDA: Yeah. One of the things that I have been working on is that this is the first backend-focused role that I've had in my entire career. So I feel like I just kind of keep pulling back layers on how different forms of magic work. And I'm just trying to get closer to the metal of what is powering our databases. And that's something that I've been really excited to learn some more about.
JOËL: So it's digging into a lot of, like, Postgres and just general database theory.
AMANDA: Yeah. So for me, I've spent a lot of time at the Active Record layer as I have been settling into my role and figuring out what our domain models are that we care about. And I'm trying to get a little bit more into the questions of why did these tables end up looking the way that they do? Why are they normalized or denormalized where they are? And trying to get a better idea of the theory behind those decisions.
JOËL: And this is a new team that you've joined.
AMANDA: This is an existing team that I've joined a year ago now.
JOËL: So it sounds like you're dealing with a somewhat unfamiliar codebase. You're looking at a bunch of existing models and database tables. That can be a lot to process and understand when you first join a team. Do you have an approach that you like to use when you're looking at unknown code for the first time?
AMANDA: Yeah. I usually like to dive right in as much as I can, even if it's with a very small bug fix or something like that, something that allows me to just get my hands dirty from the beginning and poke around what models I'm dealing with, and maybe some of the adjacent ones that I don't need to know about now but might want to come back to later.
JOËL: One thing that I find is really helpful for me are diagramming and note-taking. So if it's something like a database table or ActiveRecord models that I'm not familiar with, if it's more than maybe two or three, which is probably the most I can keep in my head, I have to start drawing some kind of like an entity-relationship diagram or maybe even just a bulleted list somewhere where
Released:
Oct 11, 2022
Format:
Podcast episode
Titles in the series (100)
- 28 min listen