Podcast appearances and mentions of ruby for good

  • 10PODCASTS
  • 15EPISODES
  • 48mAVG DURATION
  • ?INFREQUENT EPISODES
  • Dec 13, 2022LATEST

POPULARITY

20172018201920202021202220232024


Best podcasts about ruby for good

Latest podcast episodes about ruby for good

The Bike Shed
365: Career Progression

The Bike Shed

Play Episode Listen Later Dec 13, 2022 37:55


Joël has been thinking a lot recently about array indexing. Stephanie started volunteering at the Chicago Tooele Library, a non-profit community lending library for Chicagoans to borrow tools and equipment for DIY home projects! It's the end of the year and often a time of reflection: looking back on the year and thinking about the next. Stephanie and Joël ponder if open source is a critical way to advance careers as software developers. This episode is brought to you by Airbrake (https://airbrake.io/?utm_campaign=Q3_2022%3A%20Bike%20Shed%20Podcast%20Ad&utm_source=Bike%20Shed&utm_medium=website). Visit Frictionless error monitoring and performance insight for your app stack. Chicago Tool Library (https://www.chicagotoollibrary.org/our-organization) Circulate and Ruby For Good (https://github.com/rubyforgood/circulate) Glue Work (https://noidea.dog/glue) Being the DRI of your career (https://cate.blog/2021/09/20/being-the-dri-of-your-career/) The Manager's Path (https://www.oreilly.com/library/view/the-managers-path/9781491973882/) Kingship (https://acoup.blog/2022/10/07/collections-teaching-paradox-crusader-kings-iii-part-iii-constructivisting-a-kingdom/) What technologies should I learn? (https://thoughtbot.com/blog/what-technologies-should-i-learn) Learning by Helping (https://thoughtbot.com/blog/learning-by-helping) "Comb-shaped" Careers (https://killalldefects.com/2020/02/22/specializing-vs-generalizing-careers/) Transcript: STEPHANIE: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Stephanie Minn. JOËL: And I'm Joël Quenneville. And together, we are here to share a little bit of what we've learned along the way. STEPHANIE: So, Joël, what's new in your world? JOËL: I've been thinking a lot recently about array indexing. I feel like this is one of the areas where you commonly get confused as a new programmer because most languages start array indexing at zero. And what we really have here are two counting systems, either an offset so how many spaces from the beginning of the array, or a counting system where you count 1,2,3,4. At first, it feels like why would computers ever go with the offset approach? It's so illogical. Counting 1,2,3,4 would feel natural. But then, the more I think about it, the more I've started seeing the zero-based pattern show up in everyday life. One example, because I enjoy reading history, is how we talk about centuries. You might talk about the 19th century is the Victorian age, roughly. But you might also refer to the 19th century as the 1800s. So we've kind of got these two names that are a little bit off by one. And that's because when you're counting the centuries, you count first century, second century, third century, fourth century, and so on. But when we actually go by the first two digits, you start with the zeros, then the 100s, then the 200s, 300s, and so on. And so we have a zero-based counting system and a one-based counting system, and we sort of have learned to navigate both simultaneously. So that was really interesting to me to make a connection between history and programming and the fact that sometimes we count from zero, and sometimes we count from one. STEPHANIE: Yeah, I will have to admit that I always get confused when we're talking about centuries and making the mental connection that 19th century is the 1800s. It always takes me a bit of an extra second to make sure I know what I'm hearing, and I'm attributing it to the right year. I think another example where I get a bit tripped up is the numbering of floors because, in the U.S., we are counting floors using the one-based counting system, whereas I think in Europe and places outside of North America, to my knowledge, the first floor will be considered the ground floor, and then the second floor will be the first floor and onward. So that is a zero-based counting system that I can recall. JOËL: I never noticed there was a pattern. I just thought every building was arbitrary in where it counted from. STEPHANIE: Yeah, I do think it's a cultural thing. I would be really curious to know more about the history of how those counting systems get adopted. JOËL: So that's a fun thing that I've been exploring recently. What's new in your world, Stephanie? STEPHANIE: I am really excited to talk about a new real-life update. I started volunteering at the Chicago Tooele Library, which is a non-profit community lending library in my city for Chicagoans to borrow tools and equipment for DIY home projects. What I really like about it is they use a pay-what-you-can model so everyone can have access to these resources. It reduces the need for people to buy new things all the time, especially for little one-off projects. And they also provide education to empower folks to learn how to do things themselves, which I thought was really cool. And another thing that I think might be a little relevant to this audience is that I actually first encountered the Tooele library through its open-source software, which is a Ruby for Good project called Circulate. So the Tooele Library had previously been using this software that was built by community members to do all of their lending. And I got to see it in action when I saw a librarian use it to rent out tools to community members. And then I also interfaced with it myself as a member of the Tooele Library. I've borrowed things like saws, cooking appliances like air fryers that they also had. And when I was first a guest on this show, I borrowed a microphone from them to do this podcast because I was just a guest at the time and didn't want to commit to buying a whole new microphone, so that was a really awesome way that I got to benefit from it. JOËL: It's a fantastic resource for the community. STEPHANIE: Yeah, I love it so much. If anyone is in Chicago and wants to check it out, I highly recommend it. And even if you're not in Chicago, if the idea of a lending library interests you, you can check out the software on Ruby for Good. And it's no longer being used by the Chicago Tooele Library, but it would be really cool to see it be picked up by other people who might want to start something similar in their own hometowns. JOËL: So you mentioned you're volunteering here. So this means you're going in person and helping people check out items from the library. STEPHANIE: Yeah, I did my first volunteer librarian shift about a month ago, and right now, they're in the middle of moving from one location to another, so they've had a lot of in-person workdays to get some of that done. But even before that, I had contributed a little bit to the open-source repo, which is just a pretty standard Rails project, so I felt super comfortable with getting my feet wet in it. And it was, I think, my first open-source contribution. I find that some of the other open-source software, especially developer tooling, is a little scary to get into. So this was a really accessible way for me to contribute to that community, just leveraging the skills that I have for my day-to-day work. JOËL: Would you recommend this project for our listeners who are looking to maybe get their own first contribution in open source? STEPHANIE: The Circulate project is actually on a bit of a hiatus right now. But I would definitely suggest people fork it and play around with it if they want to. I also know that Ruby for Good has a bunch of other projects that are Rails apps and have real users and are having an impact that way. So if anyone wants to get into open source in a way that feels accessible and they're building a product that people are using, I definitely recommend checking that out. MID-ROLL AD: Debugging errors can be a developer's worst nightmare...but it doesn't have to be. Airbrake is an award-winning error monitoring, performance, and deployment tracking tool created by developers for developers that can actually help cut your debugging time in half. So why do developers love Airbrake? It has all of the information that web developers need to monitor their application - including error management, performance insights, and deploy tracking! Airbrake's debugging tool catches all of your project errors, intelligently groups them, and points you to the issue in the code so you can quickly fix the bug before customers are impacted. In addition to stellar error monitoring, Airbrake's lightweight APM helps developers to track the performance and availability of their application through metrics like HTTP requests, response times, error occurrences, and user satisfaction. Finally, Airbrake Deploy Tracking helps developers track trends, fix bad deploys, and improve code quality. Since 2008, Airbrake has been a staple in the Ruby community and has grown to cover all major programming languages. Airbrake seamlessly integrates with your favorite apps to include modern features like single sign-on and SDK-based installation. From testing to production, Airbrake notifiers have your back. Your time is valuable, so why waste it combing through logs, waiting for user reports, or retrofitting other tools to monitor your application? You literally have nothing to lose. Head on over to airbrake.io/try/bikeshed to create your FREE developer account today! JOËL: So, as we're recording this, it's the end of the year. It's often a time of reflection and looking back on the year and maybe even thinking about the next year and progression. I'm curious since you said this was your introduction to the world of open source, do you think that working on open source is a critical way to advance our careers as software developers? STEPHANIE: That's a good question. Honestly, I think my answer would be, no, it's not critical. I think it's one avenue for people to explore and increase their impact on the community and increase their technical knowledge, especially if it's in an area that they are not quite working in in their day-to-day, but they're really interested in diving deeper in. But I do think there's sometimes a lot of pressure to feel like open source is this shining beacon of opportunity for you to dive into and that it'll bring a lot of meaning to the work that you do. And people, obviously, and for a good reason, talk about how special it is that open source is part of the industry that we work in, but I don't necessarily think it's critical. I do certainly feel inspired by people who create open-source tools or contribute to Ruby or Rails. But I don't necessarily think that it's something that should be a rule and that everyone needs to get into it or contribute to it. Because there are many ways that people can have an impact having influence on the community, and that way is one. But there's also a lot of value, even just focusing on the team that you're on and your company internally. JOËL: I appreciate the nuance there because I think like you said, we often view open source as the main thing that everyone should be doing to get ahead. And there are a lot of different ways to improve your skill and then to get ahead in your career, which are not always correlated. One kind of really basic way that I was shocked at how much it helped me was I was learning a new language, Elm. I joined their online Slack community and just hung out in the chat room and answered the most beginner questions because I barely knew the language at the time. And most of these could be found just by looking up the documentation or by opening up a REPL and experimenting with a thing and giving an answer, which are skills that, as a programmer who's got some experience, I take for granted but that not everyone has that as a reflex. Because Googling, searching documentation, crafting experiments in the REPL those are all skills that you have to learn to build over time. But answering those very basic questions over and over over the course of a few months actually taught me so much about the language, and I'm not doing anything fancy. STEPHANIE: That's awesome. I have a friend who, during a time when I think she was struggling with her confidence in her technical skill and was feeling a bit stuck at work, spent an afternoon answering Stack Overflow questions on basic Ruby and Rails, and that gave her a lot of joy. Because she recognized that she was the person Googling those questions and needing to find answers many years ago, and that was one way that she could pay it forward. And I think she had a lot of empathy, like I said, for those people who are needing a little help, and it felt really good for her to be able to provide it. JOËL: It's a way to have an impact on other people while also solidifying your own knowledge. STEPHANIE: Yeah, exactly. JOËL: So we've mentioned a couple of different ways where you can level up your skills, that might be through helping out other people online, that could be through open source. But I'd like to zoom out a little bit and look at not just improving your technical skills but thinking about career in general when you're looking out over the next 10, 20, 30 years. Do you have an approach that you like to take when you're thinking that broadly? STEPHANIE: For me, I have had trouble thinking about a five or 10-year plan because things often don't turn out the way that I envisioned them. And so I think I've come to realize that leaning into how I feel about things in any given moment is more valuable and oftentimes more accurate to what I really want. Because I can have an idea of what I want my career to look like, but the things that ring most true are what I'm feeling in the moment. And so you mentioned we're releasing this episode at the end of the year. I do tend to do a little bit of recap about how my year went if I spent it doing things that fulfilled me and made me feel good, if I grew in the ways that I wanted, even separate from any performance review. I know that this is a time of reflection for a lot of people. And I don't personally ascribe to New Year's resolutions, but I do like to think about themes or intentions. And those are things that ground me rather than setting particular goals that I may or may not achieve; I may realize I want to change. So yeah, I really recommend just sitting with yourself and spending time thinking about what you want, and that could mean a promotion, but that could also mean a more interesting project using new technology. It could mean more responsibility and decision-making power. It could mean a move into management. I think it's different for everyone. And so when people have asked me about advice or what they should do in terms of coming to a crossroads between jobs or between projects, I think that you really can't tell anyone else what is the right move for them; only they can decide. JOËL: And tech, it's such a broad field. There are so many different roles and paths you can take through it. Well, there's junior engineer, engineer one, engineer two, engineer three, that's just the same everywhere. And there's only one way forward; it's up or stagnation, and that's it. Like you really get to choose your own adventure in this industry, and that's exciting and maybe a little bit terrifying. STEPHANIE: Oh yeah, for sure. I like that you brought up the different levels and roles that you could have because I have found companies that provide a career ladder or engineering ladder that has been useful for me in the past in figuring out if the next step at the company that I'm at is what I want. And it's helpful. It's very clear to me, okay, these are the skills that I need to get promoted into this next level. But other times, that description describes something that I'm not interested in, and that is also really helpful information. JOËL: Was there ever a moment in your own career where you had to navigate some of these decisions to decide what path you wanted to take as opposed to just following a ladder up? STEPHANIE: Oh yeah. I was presented opportunities to start getting a feel for management or overseeing a team as a lead. And people had really great feedback for me that that was something that I had shown leadership in, and they thought I would do a great job in that role. But I actually decided to kind of hit the brakes a little bit on that particular route because what I realized I wanted at the time was to focus more on being an IC and deepening my technical knowledge. And that was really tough. I do also think that a lot of women are pushed into management because they end up doing a lot of the glue work that comes with unblocking people, supporting people, and project management and those are all skills that, like, quote, unquote, "lend themselves towards management." But just because we do that work doesn't necessarily mean that that's the direction that we want our careers to go in. And so that was a really tough thing that I had to do was to make it really clear that I wasn't quite ready for that yet. And I might be in the future, but in that moment, just standing my ground and being like, actually, I want to focus elsewhere instead. JOËL: That's really valuable, knowing yourself and knowing where you want to go, what the next step is. Are there any exercises you like to do to try to figure that out for yourself? Because I know something that I've struggled with sometimes is not being quite sure what I want. STEPHANIE: I journal a lot in my personal life and also about work. I think I tend to revisit that in my notes, especially about things I've learned or things that I felt excited about in terms of projects and what I've been unlearning, and just going through all of the things that I've collected over the year and synthesizing that information. I also really like to lean on my friends and peers. So I really enjoy a good one-on-one when we just talk about those types of things, you know, dreams, hopes, goals. I like to lean on my manager a lot, too, because oftentimes, they're able to see things about my work over the past year that maybe I was just too in the weeds to be able to have that higher level perspective about. As a third-party observer, they see a lot of things that you might not be able to, either on your current project or even opportunities for you to step into at a higher level in the company. So yeah, I think that, in some ways, it's a solitary activity, but it doesn't always have to be. JOËL: I remember having a really good conversation with my manager as well, at some point, talking about that decision of am I interested in maybe moving into the management track? Do I want to stay on the IC side of things? And that was a really good conversation to have. STEPHANIE: So after having those conversations and kind of figuring out what direction you wanted to go, were there times when you had to actively make that choice or advocate for yourself? JOËL: Yes. One of the things that I realized that I care about is investing in other people, and sort of the mentoring, supporting side of things which you might think is kind of a management activity. But management is a little bit different than that. I prefer the coaching aspect than the management aspect. And so what I wanted to do at some point once, I realized that that's what I wanted and that a management position would not fulfill that desire, I started looking to see is there a way to craft that role within the company? A common thing that happens, I think, in workplaces is that you are given roles or titles for things that you already do. Clearly, if there's something that I care about, I needed to be doing it already in my day-to-day work, and I needed to be doing it at a fairly high level. And so I focused efforts there, trying to say I want to get better at this. I want to do this in the opportunities that I do have in my current role. And then eventually, I did go to my manager and said, "Look, this is what I am looking for in the next step." Had a discussion about whether or not management could be a fit or if we could customize a management role for this, and eventually decided that an IC role would be a better fit for that. And among other things, we introduce at thoughtbot the role of principal developer, which is kind of the next step on our career ladder. It can be a little bit different emphasis for different people on the team who have that role, but, for me, a big part of that was putting more impact on the broader team as its focus. STEPHANIE: That's really cool. I really appreciate that you were able to come to the table with what you wanted and able to have a discussion about, okay, so management might not be the right fit. But how can we create this new role that not only benefited you but also benefited the rest of the company because that hadn't been an area that they had quite figured out yet. But by doing that, you essentially did exactly the kind of coaching and making an impact [chuckles] that you had also shared you had been wanting because you just opened this new door for others to also eventually work towards. And I think that's really awesome. That reminds me a lot of the idea of being directly responsible for yourself and your career. There's a really good blog post by a woman named Cate, who is an engineering director at DuckDuckGo. I'll link it to the show notes. But she writes a lot about how you have to own your own career and find opportunities to have that agency. And you can always ask. Like, you might not get everything that you want, but by asking and by bringing it up, you at least can start the conversation rather than expecting or just hoping that things will turn out the way that you want without having said anything. A couple of things that she says in the article that I also really like is the idea of expecting less from your job and more from your career. JOËL: Hmmm. STEPHANIE: At any given point, your job might not check all of the boxes, but maybe they check some, and that is worthwhile. And once you get to a point where maybe the job is not really doing anything towards the direction you want your overall career to go, that might be time to reevaluate. And then she also mentions learning from feedback and asking for feedback, and making sure that beyond the things that you're able to identify, learning from others areas that you can work on to have a better impact on your team is also really important in progressing your career quickly. JOËL: So how is this mindset of owning your career path maybe different than the default that a lot of people might assume in our industry? It sounds like it's a much more proactive approach. We talked already about doing the work to figure out what you want out of a career, what you care about, as opposed to just being told what you should care about by others. Are there other aspects that you have to sort of own as part of owning that career? STEPHANIE: I mean, I think it's just vital to having a work experience that is fulfilling and brings you joy and doesn't bog you down. I know we all have to work, but we also all have the capacity to exercise our agency there. I know we did talk a little about management earlier, and I wanted to also plug a book, "The Manager's Path" by Camille Fournier, which is about management. But she has a really excellent first chapter about how to be managed and what you can expect from having to be an employee with a manager but also what power you have in that dynamic. She says that while you can be given opportunities and have areas of growth pointed out to you, your manager can't read your mind, and they can't tell you what will make you happy. And so I have seen a lot of people spend time worrying about if they're doing the right things to get to the next level. But oftentimes, we just haven't really talked enough about how that next level is really totally different. And there are so many routes that that could take, whether that is becoming an open-source maintainer, or producing content like blog posts or podcasts even, or speaking at conferences, or management. Once I realized that there were so many different opportunities available to me, I did feel a bit liberated because it does seem like, oh, you're just supposed to level up your technical skills until you've become this superstar coder. But that's not what everyone wants, and I think that's okay. JOËL: And, like you said, there are so many different areas where you might choose to focus or invest time into, and you don't have to do them all. You don't have to be the super prolific open-source person, and also keynoting at conferences, and also publishing the book, and also, you know, whatever you want to add in there. So once you know your goals, how do you make those goals a reality? We've been talking a lot about know yourself and have some goals. But at some point, you have to translate those goals into actions that will take you one step at a time towards those goals, and sometimes that translation step is hard. STEPHANIE: It is hard. I think this is another place where I would work with my manager on, especially if I'm on a project where I'm not quite seeing those opportunities. Like I said, usually having another perspective or another set of eyes on what you're working on can make it clear, like, specific and concrete aspects that you can spend your energy on. So if it's wanting to get better at testing, it's like, okay, what does the current test suite look like, and what are some opportunities that you can provide new value to the test suite to make an impact on the team? Or what are some refactoring opportunities you can make if you are wanting to have more of that experience outside of the regular ticketed feature work that you have to do? JOËL: I think it's interesting that you mentioned impact on the team because not only do you want to level up some skills, but if nobody knows about it, your odds of getting that promotion or getting recognized for it are very low. So not only do you have to get good at technical systems, you have to get good at social systems as well. I was recently reading an article about the role of kingship in medieval Europe and how it's very much a role that needs to play out in public in order to build legitimacy so that people will do what you say. You need to be seen to do the things that everybody has in their mental kind of checklist are things that a good king does. And some of those are somewhat divorced from the reality of what actually is effective governance. It could be various public rituals that you do that people see and are like, oh yes, you're doing this parade every year. You're looking the part of a good king; therefore, I think of you as a good king. It could be military campaigns because there are a lot of those in the Middle Ages. And there's this interesting cycle where kings that have long and effective reigns then get to influence what the next generation of kings are going to have to do in order to look legitimate because people will point back at you and be like, well, Stephanie was an effective ruler, and she did X,Y,Z. And so, in order to look the part of an effective ruler, you should be doing those same things. STEPHANIE: That's fascinating. In some ways, I struggle with the idea that you have to prove that you're, you know, doing the kingly things and worthy of that title. But I do think that there is some degree of truth to that in your career as well, where you want to make sure that the work you're doing is visible. And you also just, in general, bring up a really good idea about the importance of leadership in career progression. And I think that in my experience, and from what I've observed, that is a vital way to progress your career is to just start demonstrating leadership qualities, and that could look like reaching out to new team members and helping them with onboarding. That could mean updating the documentation, just taking the initiative, and doing that. That could also mean starting to voice more of your opinions about risks or red flags about a certain technical implementation or a project because you have amassed the experience to be able to make those decisions and put in your two cents and then making sure that the choices that are made are the right ones. JOËL: Additionally, I think even when you're doing things that are a little bit more inward-focused, like learning something new, you can generally find some kind of artifact that you can take and share more broadly with a team. So maybe you experimented with something, and you wrote up a small code example to showcase the thing that you're trying out; make a Gist on GitHub and share it with your team. If you learn something new, maybe write a blog post about it. Maybe even just start a thread in Slack and start a conversation on something that you learned recently. These can be really low effort, but I always look for opportunities to take things that I have learned, things where I'm sort of working a little bit more inwardly on myself and see how can I share that with the rest of the team? Both because it benefits the team, they get to benefit from the impact of some of what you've done but also, it helps a little bit with making sure that your work is visible. STEPHANIE: Yeah, absolutely. JOËL: So we've been talking a lot about improving ourselves technically, but there's one question that we've danced around that we haven't actually addressed, and I'm curious about your thoughts here. For someone who's early career, do you think it's more valuable to be a specialist, someone who goes all in deep on one technology and becomes great at it? Or is it better to go more broad, become a generalist, and know a little bit about a lot of things? From the point of view of what will help move my career forward. STEPHANIE: I personally do think there is an aspect of being a generalist for a little while, a few years maybe, to get a taste of what is available to you. I think that is valuable before really committing to decide, okay, like, this is what I want to specialize in. Honestly, as a generalist myself, I still do feel a bit like I don't know what I want to dive deep into and commit myself a little bit to being like, okay, I'm going to have to sacrifice learning all of these other things to really focus on this one aspect. So I have found that being a generalist also kind of gives me the flexibility to work on different projects that might require learning a new language, or at least one that I am less familiar with. And I know that that's a skill in and of itself, being able to move on to different things and gather information and the skills you need to start contributing and working effectively quickly. So, honestly, I think I can really only speak to that experience, but it has served me well and is, for the most part, enjoyable to me at this present moment. What about you? Do you have any thoughts about generalist versus specialist? JOËL: I think, in a certain sense, there's no right answer. Like we said earlier, there are multiple paths to a career in tech, and you can go through both. I think something that I've seen be less effective, especially very early career folks, is trying to go too broad, jumping on every new language or framework every couple of weeks, every month, and just dipping your toe in it and then moving on to something else and never really learning deeply, or synthesizing, or building a mental model of things. And so you're kind of stuck in the shallow end forever, and it's hard to break through into that initial level of expertise. So I think, especially very early career people, I tend to recommend pick one language or technology and focus on getting good at that and then branch out. And, of course, you're never doing everything in a vacuum because there are a bajillion dev skills you need to learn beyond a language or framework. So I often categorize three areas to focus on that I like to recommend for people; one is pick a primary language or framework and get good at it. Two, learn some evergreen skills, these are things like version control, so Git, SQL, using the command line. And these are not things that you need to master on day one because you're going to use these your entire career. So learn a few things, move on, come back to them next month, learn a few more things, and just keep coming back there every now and then over the course of your entire career to deepen those skills, and that will serve you very well. And then, finally, some random thing you're interested in. I find that I learn so much faster and so much more deeply on topics that I'm interested in or passionate about. And that interest can be very random sometimes, and it can also be fleeting. It can be, oh, I was interested in a thing for a little bit, and I dug into it, and then I moved on to something else. If I have a career or learning plan, I like to leave that room for spontaneity to say there will be things that are maybe not strategically important as my next step, but I can learn them because I'm interested in them because they bring me joy. And then later on, maybe that will actually be the foundation of something important two years down the line where I can draw on that knowledge. STEPHANIE: You bring up a really interesting point. I do think my interpretation of generalist did line up more with the idea of those evergreen skills. So I think also about debugging and testing, and those are just part of the things that you're doing every day. And that might look different from project to project depending on what language or framework you're using and what testing philosophy people on your team abide by. But yeah, those are areas that I do think investing in will serve you well across projects and help put you in a position where you can jump into anything and be like, okay, I have these core foundational beliefs and skills about this work and now, okay, let me figure out how to apply them to the task at hand. JOËL: Are you familiar with the metaphor of the T-shaped developer? STEPHANIE: I don't think so. JOËL: So the idea is that you want to balance out a broad set of skills that you're a generalist at, that you know a little bit about them with a few things that you are a deep expert in. So you have that horizontal bar, but you also have a deep area of expertise which creates a kind of a T shape. In a sense, maybe that's just trying to say, like, do both. But I was recently reading an article that was advocating for not only a T-shaped developer as a sort of starting point but then also beyond that, over the course of a long career, you have plenty of opportunities to develop more than one specialization. And so now you start having a very broad base of general knowledge as well as multiple areas that you have spent significant time becoming an expert in. And this article referred to this idea as a comb-shaped developer, and that's something you work up to over the course of years or decades in tech. STEPHANIE: That's very cool. I love the idea that you might start out as a T-shaped but what you're doing is kind of like adding to your harness of skills and it being an additive process. You'd have more teeth in your comb [laughs] rather than it replacing something or a set of skills. On that note, shall we wrap up? JOËL: Let's wrap up. STEPHANIE: Let's wrap up. Show notes for this episode can be found at bikeshed.fm. JOËL: This show has been produced and edited by Mandy Moore. STEPHANIE: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes. It really helps other folks find the show. JOËL: If you have any feedback for this or any of our other episodes, you can reach us @_bikeshed, or you can reach me @joelquen on Twitter. STEPHANIE: Or reach both of us at hosts@bikeshed.fm via email. JOËL: Thanks so much for listening to The Bike Shed, and we'll see you next week. ALL: Byeeeeeeee!!!!!!!!! ANNOUNCER: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

Greater Than Code
247: Approaching Learning and Content Creation with Sy Brand

Greater Than Code

Play Episode Listen Later Aug 25, 2021 54:23


02:01 - Sy's Superpower: Making Complex Topics Digestible * Sy on YouTube: "Computer Science Explained with my Cats" (https://www.youtube.com/SyBrandPlusCats) 06:28 - Approaching Learning to Code: Do Something That Motivates You * Greater Than Code Episode 246: Digital Democracy and Indigenous Storytelling with Rudo Kemper (https://www.greaterthancode.com/digital-democracy-and-indigenous-storytelling) * Ruby For Good (https://rubyforgood.org/) * Terrastories (https://terrastories.io/) 11:25 - Computers Can Hurt Our Bodies! * Logitech M570 Max (https://www.amazon.com/Logitech-M570-Wireless-Trackball-Mouse/dp/B0043T7FXE) * Dvorak Keyboard (https://www.dvorak-keyboard.com/) 13:57 - Motivation (Cont'd) * Weekend Game Jams * The I Do, We Do, You Do Pattern (https://theowlteacher.com/examples-of-i-do-you-do-we-do/) 22:15 - Sy's Content (Cont'd) * Sy on YouTube: "Computer Science Explained with my Cats" (https://www.youtube.com/SyBrandPlusCats) * Content Creation and Choosing Topics 33:58 - Code As Art * code:art (https://code-art.xyz/) / @codeart_journal (https://twitter.com/codeart_journal) * trashheap (https://trashheap.party/) / @trashheapzine (https://twitter.com/trashheapzine) * Submission Guidelines (https://trashheap.party/submit/) * Casey's Viral TikTok! (https://www.tiktok.com/@heycaseywattsup/video/6988571925811367173?lang=en&is_copy_url=1&is_from_webapp=v1) 41:34 - #include <C++> (https://www.includecpp.org/) * Lessons learned creating an inclusive space in a decades old community (Sy's Talk) (https://developerrelations.com/community/lessons-learned-creating-an-inclusive-space-in-a-decades-old-community) * QueerJS (https://queerjs.com/) * Emscripten (https://emscripten.org/) * Graphiz it! (http://graphviz.it/#/gallery) Reflections: Mandy: Digging into Sy's videos. Casey: Working within content creation constraints. Sy: Make a video on register allocation. This episode was brought to you by @therubyrep (https://twitter.com/therubyrep) of DevReps, LLC (http://www.devreps.com/). To pledge your support and to join our awesome Slack community, visit patreon.com/greaterthancode (https://www.patreon.com/greaterthancode) To make a one-time donation so that we can continue to bring you more content and transcripts like this, please do so at paypal.me/devreps (https://www.paypal.me/devreps). You will also get an invitation to our Slack community this way as well. Transcript: Software is broken, but it can be fixed. Test Double's superpower is improving how the world builds software by building both great software and great teams and you can help. Test Double is looking for empathetic senior software engineers and dev ops engineers. We work in JavaScript, Ruby, Elixir, and a lot more. Test Double trusts developers with autonomy and flexibility at a 100% remote employee-owned software consulting agency. Are you trying to grow? Looking for more challenges? Enjoy lots of variety in projects working with the best teams in tech as a developer consultant at Test Double. Find out more and check out remote openings at link.testdouble.com/join. That's link.testdouble.com/join. MANDY: Hello and welcome to Greater Than Code, Episode 247. My name is Mandy Moore and I'm here with my friend, Casey Watts. CASEY: Hi, I'm Casey, and we're both here with our guest today, Sy Brand. SY: Hey, everyone! CASEY: Sy is Microsoft's C++ Developer Advocate. Their background is in compilers and debuggers for embedded accelerators. They're particularly interested in generic library design, making complex concepts understandable, and making our communities more welcoming and inclusive. They can usually be found on Twitter, playing with their three cats, writing, or watching experimental movies. Hi, Sy! Good to have you. SY: Hey, thanks for having me on. CASEY: The first question we like to ask, I think you're prepared for it, is what is your superpower and how did you acquire it? SY: Yeah, so very topically, I think one of my superpowers is forgetting what topics I want to talk about when recording podcasts and that, I acquired through having ADHD and forgetting to write things down. But I did write things down this time so maybe that won't be too much of a problem. But I think one of my other ones is making complex topics digestible, trying to take computer science topics and distill them down into things which are understandable without necessarily having a lot of the background knowledge, the resources you'd expect. I gained that mostly through my background in computer science and then my interest in public speaking and communication and performance poetry, trying to blend those together to make things easier to understand, lower the barrier for entry. CASEY: I love it. Making complex topics digestible. That's definitely a skill we need more of in the world. MANDY: Absolutely. So Casey told me you are a bit of a teacher and you do a lot of teaching on, is it YouTube? So making things easier to digest. Like I said, during the preshow, I've been trying to learn to code on and off for 12 years, as long as I've had this career, and I've started and stopped, gotten frustrated and stopped, and I've tried different things. I've had mentors and I feel like I've let my mentors down and I've tried this and that. I've tried the code academy and I don't know. So how do you do it? Can you tell us a little bit about how you do that? SY: Sure. So most of the topics that I am interested in teaching is, because I come from a background of compilers and debuggers and very low-level systems, those are the things that I want people to get excited about because I think people look at compilers, or C++, or low-level programming and think, “Oh, this is not very interesting,” or new, or it's too complex, or it requires too much of a degree, or whatever. But none of that is true. You can write a compiler without having to have a lot of the background knowledge you might expect and you can learn C++ without having to – it can be a lot easier than people make art. So I want to make these concepts seem interesting and understandable because they're deeply interesting to me and they've been working on them for a large part of my life and I still love it and find them fascinating. So I want to share that with people. CASEY: What's your motivation when you're working on these? Is it to understand things that are complex, or are you solving problems you have, or other people have, or maybe a blend, or other motivations? I'm wondering what gets you so pumped about it. SY: Yeah, so I think it's a few different things. I make videos on Twitter, or YouTube, things like that of explaining concepts that I'm already familiar with and it's pretty much stuff that I could write an entire video off the top of my head without having to do any research. So I've done videos on explaining what a compiler is and all the stages of compilation, or a video on higher cash performance works, or [in audible 05:48] cash configurancy, garbage collection. These are all things I could just sit down and write something on and don't have to do a lot of research. Then there's the more exploratory stuff. I've been live streaming the development of a Ranges library for C++, which is being able to compose operations, building up a pipeline of operations for your data and then declarative manner so that you don't have to deal with a lot of memory allocations and moving data, or a range yourself. You just say, “Here's all the steps that I want to occur,” and then someone who has written all of these pipeline operations deals with how that actually happens. I've been developing that library live and trying to teach myself hired to do all of these things as while also teaching other people at the same time. MANDY: So is it right to assume that maybe I've been going about learning to code in all the wrong ways and that I've just picked a language and tried to dive in, or did I miss some of the conceptual stuff? And if so, as I suspect, a lot of the conceptual stuff has gone over my head. So where do you suggest, if you were giving me advice, which yes, you are giving me advice. [laughter] Where would you suggest, as a brand-new beginner coder, what kind of software concepts I need to research and understand before actually diving into an actual programming language? SY: Honestly, I don't think that there's a single answer there and I don't think there's a lot of wrong answers there. From my perspective, the best way to learn how to code is doing something that motivates you and that gets you excited because coding is hard and when you hit those bumps and things are going wrong, if you don't have that motivation to keep going, then it's very easy to stop. I know I've done it in trying to learn certain concepts and things like that before, because I felt like, “Oh, I should learn this thing, but I wasn't really interested in it,” and then I find out it was hard and stopped. The best way that I learn is finding something where I'm like, “Hey, I want to build this thing,” or “I want to understand this because I want to solve this problem,” or “because I want to dove on that knowledge with something else.” It's always the motivation, but then I'm coming from if you're someone with ADHD, or something like me, then it's pretty much impossible to do anything without [chuckles] having a strong motivation behind it. So that kind of comes into my way of learning as well. MANDY: That's super interesting. Actually, the last episode we did was with Rudo Kemper and he did a project with Ruby for Good. I went to that and I actually got really excited, intrigued, and wanted to get involved and learn how to code because I was really interested and passionate about the project that he presented, which was Terrastories, which was handing down indigenous knowledge technologically so that stories aren't lost in just having oral traditions, that these stories are actually being recorded and are living somewhere on the internet. So that's really interesting. I went to that and then of course, pandemic happened. It didn't happen again last year, but I'm thinking about going back this year. I'm hoping maybe I can be on a team with somebody that could just shadow and sit there and maybe Casey would let me be that person because rumor has it, Casey is going to be there. Ruby for Good on the East Coast in the fall. CASEY: Yeah, I'll be there. I'd be happy to have you shadow me. Also, my role lately has been a higher level. Last time I was a product manager for the team not coding and this year I'm going to be helping the teams be happy and effective across the board because there's always a team, or two that need some alignment work so that they can be productive the whole weekend. MANDY: That's interesting. Okay. Well, I'm sure I'll find somebody who wouldn't mind me doing a kind of shadow. CASEY: For sure. MANDY: Yeah, cool. CASEY: That's the kind of environment it is. MANDY: Absolutely. CASEY: Yeah. SY: That definitely sounds like the right kind of thing like something where you hear about something, or you look at this project and you think, “Hey, I want to get involved. I want to contribute to this.” That's what can drive a positive learning experience, I think it's that motivation and that motivation could just be, “Hey, I want to get into the tech industry because it pays well and we need money to live because capitalism.” That's like totally legit as well. Whatever you find motivates you to work. MANDY: Yeah, that's why I'm here. I had to find a way for my daughter and I to live. SY: Yeah. MANDY: So I got into tech and podcasts and then I'm working for all these people who I always considered so much smarter than me. I was like, “I could never learn that. I'm not good enough.” But now since joining the podcast as a host and coming on here, I'm feeling more and more like I am smart enough, I could do the thing and so, I'm actually really getting into it more. But it's just that being on the computer for so many hours doing the work stuff makes it hard to also break into the wanting to do the learning outside of my work hours – [overtalk] SY: Right, yeah. MANDY: Because it's so much computering. SY: Yeah, or just split the good screen from bad screen. CASEY: I've been computering so much, I have a tendonitis in my right pinky now from using the arrow keys on the keyboard too much, I think and bad posture, which I've been working on for years. Computers can hurt our bodies. SY: Yeah, definitely. I use the Logitech M570 mouse, which I switched to a number of years ago and was one of the best changes I ever made for using the computer and also, switching to Dvorak for keyboard layout. CASEY: Okay. I use that, too. SY: Nice! CASEY: Dvorak. It's not better, but I learned it. [laughter] It might be more better for my health maybe, but I'm not faster. That's what people always ask. SY: I'm definitely – [overtalk] CASEY: Instead of ASDF, it's a AOEU under your fingers; the common letters right at your fingertips. You don't need the semicolon under your right pinky. [laughter] Why is that there? SY: Yeah. MANDY: Yeah. I was going to ask for us what you were even talking about there. So it's just basically reconfiguring your keyboard to not be QWERTY thing? SY: Yeah, exactly. MANDY: Okay. SY: That means you have to completely relearn how to type, which can take a while. Like when I completely stopped using QWERTY at all and just switched to Dvorak, I didn't even buy a Dvorak keyboard, I just printed out the keyboard layout and stuck it to my monitor and just learned. For the first while, it's excruciating because you're trying to type an email and you're typing 15 words per minute, or something. That's bad. I did definitely did get faster shifting to Dvorak. Before I think I used to type at like 70, 80; I type around a 100 words per minute so it changed my speed a bit. But to be fair, I don't think I typed properly on QWERTY. I switched 10 years ago, though so I can't even remember a whole lot. [chuckles] MANDY: That's interesting, though. That gives me something I want to play around with right there and it's not even really coding. [laughter] It's just I'll be just trying to teach myself to type in a different way. That's really interesting. Thank you. [chuckles] CASEY: Yeah. It was fun for when I learned it, too. I think I learned in middle school and I was I practiced on AIM, AOL Instant Messenger, and RuneScape. SY: Nice. CASEY: I didn't dare practice while I had essays due and I had to write those up. That was too stressful. [laughter] CASEY: Summer was better for me. SY: Yeah, I switched during a summer break at university. CASEY: Low stakes. I needed the low stakes for that to succeed. SY: [laughs] Yeah. CASEY: We were talking about what motivates you to learn programming and I wrote up a story about that for me actually recently. SY: Okay. CASEY: At the highest level, my first programming class, we modeled buoys and boats and it was so boring. I don't know why we were doing it. It didn't have a purpose. There was no end goal, no user, nobody was ever going to use the code. It was fine for learning concepts, I guess, but it wasn't motivated and I hated it and I stopped doing CS for years until I had the opportunity to work on an app that I actually used every day. I was like, “Yeah, I want to edit that.” I just want to add this little checkbox there. Finally, I'll learn programming for that and relearn programming to do useful things for people. Motivation is key. SY: Yeah. I think because I started doing programming when I was quite young, I knew it was definitely the classic video games, wanting to learn how to make video games and then by the time I actually got to university, then I was like, “Yeah, don't want go into the games industry.” So didn't end up doing that. But I still enjoy game jams and things like that. If you're not again. CASEY: That's another thing you might like, Mandy. It's a weekend game jam. MANDY: Hm. CASEY: I don't know how into gaming you are, but it's also fun, lower stakes. People are just partying. Not unlike Ruby for Good. They happen more often and I like how it feels at a game jam, a little better than a hackathon because you're building something fun and creative instead of using a company's API because they told you to. SY: [laughs] Yeah. MANDY: Yeah, I was honestly never exposed to video games as a child. They were a no-no in my household and that's one of the things that I always cursed my parents for is the fact that I am the worst gamer. [laughs] My daughter makes fun of me. I'll sit down and like try to – she's 12 and I'll try to do something. She'll be like, “Wow, this is hurting me to watch you, Mom,” [laughs] and I'm like – [overtalk] CASEY: Ouch. MANDY: No, she called me a try hard and I was like, “Yeah, I'm trying really hard to just go forward.” Like I'm trying really hard to just jump over this object, [chuckles] I was like, “If that makes me a try hard well, then yes, I'm trying very hard. Thank you.” SY: Yeah. My 6-year-old has now got to the point where he can beat me at Super Smash Brothers so I'm not feeling too good about that. [laughs] CASEY: Yeah. My 6-year-old nephew beat us all in Mario Kart a couple weeks. SY: Yeah. [laughs] I can still beat in the Mario Kart. That, I could do. [laughs] MANDY: Yeah. A lot of the games she does looks fun, though so it's something I would be interested in, it's just something that I haven't been exposed to. I'm really excited now that—I don't want to say the pandemic is nearing an end because it seems to be not happening, but I'm excited – [overtalk] CASEY: True. Things are opening up. MANDY: Right now. Until they start closing down again. CASEY: Yeah. MANDY: Because I'm so excited for things like Ruby for Good, driving down to D.C. and seeing some of my friends, and I would be interested in going to one of those game things, as long as people are just like, “Oh yeah, we can be patient with her because she's never done a game before.” [laughs] CASEY: Yeah. My last game jam had eight people on the team and zero had ever done game development before. We figured something out. SY: [chuckles] Yeah. MANDY: Oh, that's fun. SY: Like muddle along. CASEY: Yeah. Somebody did like level design. They did a title map. Someone did sprites. They were like, “I'm going to do a sprite tutorial now.” Sprite is moving like a walking character. We had learned all the terms for it. We didn't know the terms either, but it was a good environment to learn. MANDY: It seems it. It seems like if you have a happy, healthy environment. For me, it was just, I was becoming stressed out. I had a standing meeting once a week with a really, really awesome person and it felt like it was more of like, I was like, “Oh my gosh, I have to work this into my already busy workweek and if I don't, then I'm completely wasting their time,” and I started to feel guilty to the point it brought me down. I was just like, “I don't think this is good for either one of us right now” because I'm feeling too much pressure, especially with the once-a-week thing and it's like to get through this chapter and then get through this chapter, and then I'd have a question and I'm not good at writing things down and then I'd forget. It seems like that might be more of a strategy to learn for me. I think a lot of people, there's different strategies like you have your visual learners, or you have your audio learners and I think for me, it would be cool just like I said, shadowing somebody. Like, if I just like sat there and it wasn't weird for me just to watch it over somebody's shoulder while they're doing this thing, that would a more conducive environment to the way I learn. CASEY: Yeah. I like the pattern, You do, We do, I do. Have you heard of that one? MANDY: No. CASEY: Or I do, We do, You do depending on the perspective. So it's like shadowing first and then doing it together where you're both involved and then you can do it on your own. It's a three-step process to make it a little bit easier to learn things from other people. SY: Yeah, that makes sense. MANDY: Yeah, that sounds like how kids learn. It's how we teach our children like I do, now we're going to do it together, now you do it. Yeah, I definitely have used that with my kid. [chuckles] CASEY: And it's just completely reasonable to do that as adults. That's how human brains work. MANDY: Yeah. No, I don't feel – that's the thing I would have to not almost get over, but just be like, “Oh my gosh, I'm 2 years old. I'm learning like I'm a toddler and that's so embarrassing.” But I think that that is a great way to learn and a great way to approach learning in general. I just started a book on learning more about crystals and it's the beginner's guide and she said, “You read this book and then you can move on to reading this other 700-page book that I've authored, but you should probably read this concise guide first.” I think a lot of people feel the pressure to dive into the super smart, or what they perceive as being the super smart way of diving in like, picking up the Ruby book, or the books that everyone talks about when there's so many other great resources exist that break it into smaller, bite-sized, digestible chunks. I think there's no shame in learning like that and I think a lot of people think that they just need to dive right in and be like, “Oh, this is the hard book, I'm going to go for the hard book first.” Like no, start with the easiest, start small. SY: Yeah. I think as you say, it definitely depends on how you learn what kind of resources you find interesting and engaging. CASEY: I've heard a similar story from a lot of friends, Mandy, where they really want to learn something, maybe programming in general, or a language, and then they psych themselves out, or they don't have the bandwidth in the first place, but they don't realize it and they struggle through that and the guilt because they want to, but they don't have time, or energy, which you also need. It's really common. A lot of people that I know are really motivated to do a lot of stuff; they want to do everything. I know some people who are fine not doing everything and that's great because they're probably more grounded. [chuckles] [laughter] But a lot of people I know really want to learn at all and it's a tension; you don't have infinite time and energy. SY: Yeah. I definitely fall into wanting to learn absolutely everything and right now. MANDY: So what kind of things are you teaching right now, Sy? What kind of content are you putting out there? SY: Yeah. So like I said, a lot of it's to do with low-level programming, like how memory actually works on a computer and how it affects how we program things. Because for a lot of people, if you come from a higher-level programming background, you're used to memory being abstracted away from what you do. You deal with variables, you deal with objects, and the implementation of the programming language deals with how that actually maps onto the underlying hardware. But if you really need to get the most performance you possibly can out of your system and you're using a little bit lower-level language like C, or C++, or Rust, or Swift, or something, then you need to understand how your processor is actually handling the instructions and that is actually handling your memory accesses in order for your performance to actually be good. Some of it is not obvious as well and does not match with how you might think memory works because the processors which we're using today are based in so much history and legacy. A lot of the time, they're essentially trying to mimic behavior of older processors in order to give us a programming model, which we can understand and work with, but then that means that they have to work in certain ways in order to actually get performance for the high-performance modern systems we need. So having an understanding of how our caches work, how instruction pipelines work, and things like that can actually make a really big difference down with the low-level programming. MANDY: Okay. So I'm looking at your Twitter and then looking at your pinned tweet, it says, “I made a YouTube channel for my ‘Computer Science Explained with my Cats' videos.” How do you explain computer science with your cats? Because that's something I could probably get into. SY: Yeah. So I have three cats and – [overtalk] MANDY: I've got you beat by one. SY: Nice. What were your cats called? MANDY: I have four. I have Nicks after Stevie Nicks. I have Sphinx because he looks so regal and I have Chessy and I have Jolie. SY: Cool. Mine are Milkshake, Marshmallow, and Lexical Analysis cat. MANDY: [laughs] Cool. SY: [chuckles] Yeah. So the things explained with my cats, it's mostly I wanted to explain things with my cats and random things, which I find around my house. So I remember I have a Discord server, which I help to moderate called #include , which is a welcoming inclusive organization for the C++ community. We were talking about hash maps and how hash maps are actually implemented, and I realized that there's a lot of different design areas in hash maps, which can be difficult to understand. I wanted to try and explain it using boxes and teddies and my cats so I set up a bunch of boxes. These are all of the buckets, which your items could go into it and then there's some way to map a given teddy to a given box. Let's say, it could be how cute it is. So if it's super cute and it goes in the west most box, and if it's kind of cute, then it goes into the box after that and so on and so forth. That's kind of how hash maps work. They have a bunch of memory, which is allocated somewhere, a bunch of boxes, and they have some way of mapping given items to a given box, which is called a hash function. In this case, it was how cute they are and then you have some way of what happens if two teddies happened to be as cute as each other, how do you deal with that? There's a bunch of different ways that you could handle that and that's called hash collision. Like, what do you do with collisions? Do you stick them in the same box and have a way of dealing with that, or do you just put them in the next box up, or a few boxes up, or something like that? There's whole decades worth of research and designing, which go into these things, but the concepts map quite nicely onto boxes and teddies and how cute they are. [chuckles] MANDY: I love that. SY: They are also explaining how caching works with chocolate, like the intuition with memory access is you ask for some chunk of memory and you get that chunks. You ask for a single chunk of chocolate and you get that chunk of chocolate, but in reality, that's not what happens in most cases. In most cases, you're actually going to get back a whole row of chocolate because it's most likely that if you're going to get a bit of chocolate, you're probably going to be accessing the bits which are right next to it. Like, if you have an array and you're processing all of the elements in that array, then you're just going to be stepping along all of those elements. So it's much faster to bring all of those elements would be right into memory at once. That's what happens in modern processors. Without you having to ask for it, they just bring in that whole row of chocolate. So I tried to – [overtalk] CASEY: That's so polite. [laughs] When your friend asks for a single chip, or a single piece of chocolate, you know what they want more. SY: [laughs] Yeah. CASEY: How generous of you to give them the whole bag. [laughs] Whether they want it, or not though. SY: Yeah. MANDY: So are these videos relatively short, or are they more long-form videos? SY: Yeah, they are 2 minutes long. MANDY: Oh, cool. SY: I try and keep them within the video limit for Twitter videos, which is 2 minutes, 20 seconds. MANDY: Okay, cool. See, that's something I could probably commit to is watching one of those videos not even maybe once a day because sometimes that's a little bit, much pressure every day. So maybe I try to work out three to four times a week. So saying I'm going to do this three to four times a week and I'm going to not stress on I'm going to do this every Monday. Generally three to four times a week, I think that's something I could, could commit to. SY: Yeah. Trying to get them within 2 minutes, 20 seconds can be really tough sometimes. Like it's quite – [overtalk] MANDY: Do you do a lot of editing? SY: Yeah. I would sit down and I'll write the whole episode, or video, or whatever and just get in all of the content that I want, just put it onto a text document and then I'll start filming it in whatever order I want, and then I start editing and then quite often, I realized that I've got 2 minutes, 40 seconds worth of content, or something and I can't quite cut it down and I have to reshoot something and then reedit it. I try to get it all done within a single day because if I don't get it done in a single day, then it ends up taking even longer because I get distracted and things like that. I need to focus just getting this one thing done. MANDY: So you're doing these within hours? SY: Yeah. MANDY: From start to finish, how many hours would you say you invest in these videos? SY: Start to finish, about 5, 6 hours, something like that. Like I said, I don't really have to do a lot of research for them because they're things I know very well, so I can pretty much sit down and just write something and then most of the time is spent in editing and then captioning as well. MANDY: Very cool. CASEY: I've been doing a bit of video editing lately and it takes so long. SY: Yeah, it really does. CASEY: I'm not surprised it takes 5, or 6 hours. [laughter] MANDY: No, I'm not either. I do all the podcasts editing. For those of you listening, who do not know, I edit all these podcasts and it takes roughly even 5 to 6 hours for audio, because I also put other work into that, like doing the show notes and getting the transcripts. Now I have those outsourced because I don't have enough hours in the day, but there's a lot of different parts to editing, podcasting, screen casting, and stuff that I don't think a lot of people know that these 2-minute videos that you do really do take 5 to 6 hours and you're putting these out there for free? SY: Yeah. MANDY: Wow. That's amazing. I assume you have a full-time job on top of that. SY: Yeah. Because my position is a developer advocate, I can count that as is doing work so I don't have to do that in my own time. MANDY: Very cool. Yeah, that's cool. I love DevRel so working in DevRel, I do that, too. I'm a Renaissance woman, basically. Podcast editing, DevRel conference organizing, it's a lot. SY: Yeah. MANDY: So I give you mad props for putting stuff out there and just giving a shout out to people who might not be aware that content creation is not easy and it does take time. So thank you. Thank you for that. Because this seems like the kind of stuff I would be able to ingest. SY: Yeah, thanks. MANDY: And that's cool. CASEY: I'm especially impressed, Sy that you have these interests that are complex would expand and you can explain the well and you find the overlap with what people want to know about. [chuckle] I think maybe in part from the Discord, you hear people asking questions. Can you tell us a little bit about what that's like? How do you decide what's interesting? SY: Yeah. I ask people on Twitter what they would find it interesting, but I also, because right now I'm not really going to conferences, but previously I'd go to a lot of conferences and people would come up to me and if I give a talk on compilers, for example, come and say like, “Oh hey, I never knew how register allocation worked. It was super interesting to know.” So I don't think I've done a video on register allocation yet actually. I should do one of those. MANDY: Write that down. SY: [laughs] Yeah. That's the kind of thing. Just because I spent a lot of time in communities, conferences, Discords, on Twitter, you get a feel for the kind of topics which people find interesting and maybe want to know how they work under the covers and just haven't found a good topic. Even function calls like, how does a function call work in C at the hardware level? If you call a function, what's actually happening? I did a video on that because it feels like such a fundamental thing, calling a function, but there's a lot of magic which goes into it, or it can seem like a lot of magic. It's actually, I want to say very well-defined, sometimes less so, but [laughs] they are real so there is random reason. MANDY: Very cool. I want to talk about the other content creation that you do. So code art journal and trashheap zine, do you want to talk about those a minute? SY: Sure. So code art was an idea that I had. It's a journal of code as art. I'd hear a lot of people saying, “Oh, coding is an art form.” I'd be like, “Okay. Yes. Sometimes, maybe. When is it an art form? When is it not? What's the difference between these?” Like, I spent a lot of time thinking about art because I'm a poet and I spend most of my free time researching and watching movies. Code as art is something which really interested me so I made this journal, which is a collection of things which people send in of code which they think is art and sometimes, it's something you might immediately see and look at it and think, “Okay, right, this is code and it's fulfilling some functional purpose,” and maybe that functional purpose gives it some artistic qualities just by how it achieved something, or if it does something in a very performant manner, or a very interesting manner. Other times, you might look at it and say, “Okay, well, this is code, but it's more aesthetic than functional.” And sometimes it's things which you might look at and think, “Okay, is this even code?” Like there was someone sent in a program written in a language called Folders, which is a esoteric programming language entirely programmed using empty folders on your hard drive, which I absolutely love. I'm super into esoteric programming languages so I absolutely loved that one. [chuckles] But yeah, so the – [overtalk] CASEY: That sounds so cool. Where can people find it? Is it online also? SY: Yes, it's in print and there's also, you can get the issues online for free in PDF form. There is a third issue, which is pretty much fully put together on my machine, I just haven't done the finishing touches and it's been one of those things that's just sat, not doing anything for months and I need to get finished. [chuckles] And then trashheap zine is another thing that I co-edit, which is just utter trash, because as much as I love more explicitly artistic films and writing and things like that, I also have a deep love of utter, utter trash. So this is the trashiest stuff that we could possibly find, even the submission guidelines that I wrote for that is essentially a trash pond, but random submission guidelines. So if you have trash, please send our way. MANDY: Yeah. I was going to say, what you consider trash? What trashiest [laughs] enough to be in these zines? SY: I can read out, where's my submission guidelines? The URL for the zine is trashyheap.party, which I was very, very pleased with and the website looks awful. I spent a lot of time making it as awful as I possibly could. Things like any kind of – [overtalk] CASEY: I love the sparkles. SY: Yes! CASEY: When the mouse moves, it sparkles. SY: Isn't it the best, seriously? Yeah. CASEY: Every website should have that. SY: Yeah, totally. Like texts you sent your crush at 4:00 AM while drunk where you misspelled their name and they never spoke to you again, or draft tweets which you thought better of sending, purely Photoshop pictures of our website. [laughter] A medically inaccurate explanation of the digestive system of raccoon dogs. All good stuff. MANDY: That's amazing. CASEY: I know a lot of people who would be cracking up reading this together. [laughter] CASEY: That sounds great. There's so much treasure in this trash heap. MANDY: Yeah. Don't worry, folks, we'll put links in the show notes. CASEY: Oh, yeah. SY: Yeah. One of my favorite things with it was when we'd get all of the submissions, we would get together and just project them up on a wall and read them together and so much so bad, it's hilarious in the most wonderful way. CASEY: That sounds like a party itself. SY: It is, yes. CASEY: The be trashheap party. SY: Absolutely. CASEY: It's kind of taking me back to early pre-YouTube internet when we watch flash cartoons all the time and a lot of those were terrible, but we loved them. SY: Yes. I made some as well, they were so bad. [laughter] I remember getting a very non legal version of flash and making the worst stick flash renovations I possibly could. CASEY: Oh, speaking of content creation, I've been learning some animation and 3D modeling animation lately. I had my first ever viral TikTok; it had over 9,000 views. SY: Wow! Nice. CASEY: And so when I look at my phone, if it's not the notifications muted, it's annoying. I have to turn it off. [laughter] SY: Yeah – [overtalk] MANDY: Congratulations! [laughs] CASEY: Thank you. So the video is a USB thumb drive that won't insert, even though you flip it over. That's been done before, but what I added was misheard lyrics by the band Maroon 5. Sugar! USB! That's what I hear every time. Mandy, have you done any art? MANDY: Have I done any art? CASEY: Lately? MANDY: Oh. Yeah. Well, actually – [overtalk] CASEY: You've been doing some home stuff, I know. MANDY: Yeah. I've been doing plant stuff, gardening, but this weekend, I actually took my daughter to a workshop. It was called working with resin—epoxy. SY: Oh, cool. MANDY: And we got to make coasters. The teacher brought stickers, feathers, and crystals and it was like a 3-hour workshop and I think my daughter had extra resin. Her birthday is on Thursday this week and I noticed she was making kind of the same ones and I said, “What are you doing?” And she said, “I'm making gifts for my friends that come to my birthday party.” I just thought it was so sweet that I was like – [overtalk] SY: Oh, so sweet. MANDY: Usually birthday parties, you receive gifts, or whatever and she's like, “No, I would like to give them gifts for my birthday,” and I was like, “Oh, that's adorable.” So I've been trying to do more things with my hands and get off the screens more, which has been the major thing keeping me back from being on code. I've made a strict weekend policy where I do not touch my computer from Friday evening to Monday morning, unless it's an absolute dumpster fire, I need to do something, or if a takeout menu looks better on my computer than it does on my phone. [laughter] Then I'll pop it open, but I won't read the email, or do the Slack. And then this Saturday I'm taking a course in astrology. It's all-day workshop so I'm excited to kind of dive into that stuff a little bit more. CASEY: So cool. It's hard to believe we can do these in person again. I'm not over it. MANDY: I know. I'm so afraid to get excited over it and then have it be taken away again. CASEY: Yeah. Sy, tell us a little more about #includes . I've actually heard of it. It's a little bit famous online. It's an inclusive community, I know from the name. SY: Yes. CASEY: Tell us more about it. SY: So it actually started off on Twitter as a half joke; Guy Davidson tweeted being like, “Hey, so why isn't there a diversity and inclusion organization for C++ called #include?” Because #include is it's like a language concept in C and C++ and people were like, “Hahaha yeah, you're right,” and then Kate Gregory was like, “You're right. We should make one.” So we did [chuckles] and we started off with like six of us in a Slack channel and then ended up moving to Discord and starting our own server there and now we are a few thousand members. Back when we had in-person conferences, we would have a booth at pretty much every major C++ conference, we had scholarships, which we would send people on, we got conferences to improve by having live captioning and wheelchair accessible stages and gender-neutral bathrooms instituting and upholding code of conduct, things like that. We started off thinking, “Hey, if we could get some conferences to have a code of conduct or something that would be great,” and then it ended up being way, way, way bigger than any of us thought it would become, which is amazing to see. CASEY: That's so cool. What a success story. SY: Yeah. CASEY: How long has it been going on now? SY: I guess about 3, or 4 years. Yeah, probably closer to 4 years. My sense of time is not good the best of times, but something around 4 years. CASEY: I'm curious if another language community wanted to do something similar if they're inspired. Is there a writeup about what y'all have done? 
SY: I've given talks. CASEY: That we can point people to. We can put that in the show notes. SY: Yeah. I've given a couple of talks, as I said. CASEY: Talks, that would be good. SY: Other people have given talks as well. I gave a slightly longer form talk DevRelCon, London in 2019, I think, which was on the lessons which we learned through trying to build a welcoming and inclusive community. Community which has already been around for decades because C++ was first standardized in 1998 so it's been around for quite a long time and has a lot of history. CASEY: That sounds great. I can't wait to watch it. SY: Yeah. I know that there's other languages. You have JavaScript, QueerJS, which is a really cool community and I'm sure there are other languages which have similar things going as well. CASEY: I had never heard of QueerJS. I'm queer and JS. SY: Yeah. CASEY: I'm glad I had this moment just now. SY: It's cool. They have a Discord and I can't remember how active the Discord is, but they would have meetups across the world, they have one in London and in Berlin and bunch of other places, and talks and community. It seems really cool. CASEY: That's awesome. SY: I wanted to give a talk about C++ and JavaScript because you could link target JavaScript with C++ these days, which is kind of cool. CASEY: I've used Emscripten before. SY: Yeah. CASEY: I didn't use it directly, other people did. It turned Graphviz into a JavaScript. A program that runs in JavaScript instead of normally, it's just CSS. So I could draw circles pointing to other circles in the browser, which is what I always wanted to do. Graphviz.it, that “it” is my favorite Graphviz editor. It's online. SY: Cool. I like Graphviz a lot. Emscripten is really cool, though. Basically a way of compiling C++ plus to JavaScript and then having the interoperation with the browser and the ecosystem that you might want to be able to call JS functions from C++, or other way around, and do things which seem operating systems E, but have to be mapped inside the browser environment. CASEY: That's powerful. I'm also glad I've never had to use it directly. Other people made libraries doing it what I needed. Thank goodness. [chuckles] Abstraction! SY: Yeah. I've not used a whole lot, but I did find it fairly nice to work with when I did. I made a silly esoteric programming language called Enjamb, which is a language where the programs are cones and it runs on a stack-based abstract machine and the interpreter for it is written in C++. I wrote a command line driver for it and also, a version which runs in the browser and that compiles using Emscripten. It was really cool and I picked it all up with CMake, which is the main C++ build systems that you could just say, “Hey, I want to build the combine line version for my platform” like Windows, or Mac, or Linux, or whatever, or “Hey, I want to build it for the web,” and it would build the JavaScript version in HTML page and things like that. It's pretty cool. I recently made another esoteric programming language, which you program using MS Paint. You literally make shapes with MS Paint and you give the compiler an image file, and then it uses OCR and computer vision in order to parse your code and then generate C from that. [laughs] It's pretty ridiculous, but I had so much fun with it. CASEY: OCR is Optical Character Recognition? SY: Yes, exactly. CASEY: So I'm picturing if I wrote a program on a napkin and a computer could maybe OCR that into software. SY: Yeah. So it uses OCR for things like function names because it supports function calls and then uses shapes for most things. It has things like a plus sign, which means increment what it's currently being pointed to, or right, or left, or up, or down arrow is for moving things around. You would actually make an image file with those symbols and then I used OpenCV for working out what the shapes were. It was the first time I've ever done any kind of image recognition stuff. It was a lot easier than I expected it to be; I thought we'd have to write a lot of code in order to get things up and running and to do image detection. But most of the simple things like recognizing hey, this is a triangle, or this is a plus sign, or this is a square, and things like that were pretty, you don't need a lot of code in order to do them. That was mostly when you had to say like, “Okay, this is a triangle, but which direction is it pointing in?” It got a little bit more complicated; I had to do some maths and things like that and I'm terrible at maths. [chuckles] So that was a little bit more difficult, but it was a lot fun to get started with and I had a much lower barrier to entry than I expected. CASEY: Now I want to play with OCR and image recognition. I haven't done that for 10 years. It was not easy when I tried it last time with whatever tool that was. SY: [chuckles] Yeah, I did it – [overtalk] CASEY: For the future! SY: [laughs] Definitely. Yeah. I did it with Python and Python has fairly nice OpenCV bindings and there's a ton of resources out there for predicting most of the basic stuff that you would expect. So there's a lot of learning resources and decent library solutions out there now. CASEY: Cool. All right. We're getting near the end of time. At the end, we like to go through reflections, which is what's something interesting that stood out to you, something you'll take with you going forward from our conversations today. MANDY: I really am excited to dig into Sy's videos. They seem, like I said earlier in the show, something I could commit to a few times a week to watching these videos especially when they are concepts that seem so much fun, like cats, teddy bears, cuteness levels, and things like that. I think that would be a great start for me just to in the morning while I'm still drinking tea just before I even dive into my email, check out one of those videos. So I think I'll do that. SY: Thanks. CASEY: Sy, I liked hearing about your process side with your constraints like 2 minutes, 20 seconds on Twitter, that's such a helpful constraint to make sure it's really polished and dense. It takes you 5 to 6 hours and you make things that people ask about, that they're interested in. That whole process is fascinating to me as I try to make more viral TikToks. [laughter] Or whatever I'm making at the time. SY: Yeah. CASEY: I always wondered how you made such good stuff that got retweeted so often. Cool things of insight. SY: Yeah. Mostly just time. [laughs] I guess, it makes me remember that I definitely want to make a video on register allocation because I love register allocation. It's such a cool thing. For those who don't know, it's like if you have a compiler which takes your code and maps it onto the hardware, your hardware only has a certain number of resources so how do you work out how to use those resources in the best manner? It maps onto some quite nice computer science algorithms like graph coloring, which means it maps quite nicely visually, I could probably make a pretty cool graph coloring visualization with some random things I have strewn around my room. CASEY: I can't imagine this yet, but I will understand that clearly soon I bet. MANDY: That's awesome. Well, I just want to wrap up by saying thank you so much for joining us today, Sy. This has been a really awesome conversation. And to folks who have been listening, thank a content creator. It takes time. It takes energy. It's a lot of work that I don't think a lot of people, unless you've done it, really understand how long and in-depth of a process it is. So thank one of us content creators, especially when we're putting this content out for you for free. To do that for us Greater Than Code, we do a Patreon page and we will invite Sy to join us and we would like you to join us as well. If you are able to donate on a monthly basis, it's awesome. It's patreon.com/greaterthancode. All episodes have show notes and transcripts, and we do a lot of audio editing. So join us if you're able. If you are still a person who is greater than code and cannot afford a monthly commitment, you are still welcome to join us in our Slack community. Simply send a DM to one of the panelists and we will let you in for free. So with that, thank you so much, Casey. Thank you again, Sy. And we'll see you all next week. Special Guest: Sy Brand.

Greater Than Code
246: Digital Democracy and Indigenous Storytelling with Rudo Kemper

Greater Than Code

Play Episode Listen Later Aug 18, 2021 57:03


02:45 - Rudo's Superpower: Being Pretty Good At Lots of Things! * Learning How to Learn on the Fly * Digital Democracy (https://www.digital-democracy.org/) * Earth Defenders Toolkit (https://www.earthdefenderstoolkit.com/) * Ruby For Good (https://rubyforgood.org/) * Problem-Solving & Mastery: “Fake it until you make it!” 13:14 - Digital Democracy (https://www.digital-democracy.org/) & Terrastories (https://terrastories.io/) * The Amazon Conservation Team (https://www.amazonteam.org/) (ACT) * Matawai People (https://en.wikipedia.org/wiki/Matawai_people) * Capturing & Recording Oral History * Ruby For Good (https://rubyforgood.org/) * Mapbox (https://www.mapbox.com/) * Indiginous-Requested, Indiginous-Led * Taking Action When Invited * Listen Before Action * Co Creation * Mapeo (https://www.digital-democracy.org/mapeo/) 27:39 - Defining an “Earth Defender” * Earth Defenders Toolkit (https://www.earthdefenderstoolkit.com/) 30:40 - Community Collaboration/Development Best Practices Without Overstepping Boundaries * Tech Literacy 35:52 - Getting Involved/Supporting This Work * Digital Democracy (https://www.digital-democracy.org/) & Earth Defenders Toolkit (https://www.earthdefenderstoolkit.com/) * Stakeholders & Ownership 45:03 - Experiences Working w/ These Projects * Anyone Can Contribute * Meeting Fellow Dreamers 47:33 - Oral Traditions & Storytelling: Preserving History Reflections: Jacob: Getting involved and connecting virtually. Mandy: Register for Ruby For Good! (https://ti.to/codeforgood/rubyforgood) Happening in-person this year from September 23-26 at the Shepherd's Spring Retreat (http://maps.google.com/maps?q=39.5070593%2C-77.7891734+%28Shepherd%27s+Spring%2C+16869+Taylors+Landing+Rd%2C+Sharpsburg%2C+MD+21782%29), in Sharpsburg, Maryland! Mae: Being able to adapt and learn as a superskill. Be proud of the things you can do. Rudo: It's inspiring to build community around software and the needs that it serves. This episode was brought to you by @therubyrep (https://twitter.com/therubyrep) of DevReps, LLC (http://www.devreps.com/). To pledge your support and to join our awesome Slack community, visit patreon.com/greaterthancode (https://www.patreon.com/greaterthancode) To make a one-time donation so that we can continue to bring you more content and transcripts like this, please do so at paypal.me/devreps (https://www.paypal.me/devreps). You will also get an invitation to our Slack community this way as well. Transcript: Coming soon! Special Guest: Rudo Kemper.

Elixir Mix
Securely Managing Environment Variables using DotEnvy with Everett Griffiths - EMx 133

Elixir Mix

Play Episode Listen Later Jun 23, 2021 50:09


Everett Griffiths is the author of the DotEnvy library. He wrote the library to help manage environment variables across multiple applications and environments. He and the Elixir Mix panel dive into how DotEnvy works and in the ins and outs of managing environment variables securely from one application to another and from one environment to another. Through development and deployment this is often an overlooked step in keeping things secure while also keeping them simple. Panel Adi Iyengar Allen Wyma Charles Max Wood Sascha Wolf  Guest Everett Griffiths Sponsors Dev Influencers Accelerator Links Giving What We Can Community Centre for Effective Altruism LinkedIn: Everett Griffiths Picks Adi- Huntress Adi- GitHub | marp-team/marpit Allen- Rust Web Development Allen- Concurrent Data Processing in Elixir Charles- DigitalOcean Charles- TrainingPeaks Everett- Ruby For Good Everett- Elixir For Good Sascha- Hands-on Rust Sascha- GitHub | mozilla/sops Contact Adi: Adi Iyengar – The Bug Catcher GitHub: Adi Iyengar ( thebugcatcher ) Twitter: Adi Iyengar ( @lebugcatcher ) Contact Allen: Plangora  Plangora Limited Plangora – YouTube Plangora | Facebook Tech_Plangora Limited_Elixir | Instagram Twitter: Plangora ( @Plangora ) LinkedIn: Plangora – Web and Mobile Development Plangora – Reddit Flying High With Flutter Flying High With Flutter Flying High with Flutter – YouTube Flying High with Flutter | Facebook Flying High With Flutter | Instagram Twitter: Flying High with Flutter ( @fhwflutter ) Teach Me Code Teach Me Code Teach Me Code | Facebook TeachMeCode | Instagram Contact Charles: Devchat.tv DevChat.tv | Facebook Twitter: DevChat.tv ( @devchattv ) Contact Sascha: Sascha Wolf

Devchat.tv Master Feed
Securely Managing Environment Variables using DotEnvy with Everett Griffiths - EMx 133

Devchat.tv Master Feed

Play Episode Listen Later Jun 23, 2021 50:09


Everett Griffiths is the author of the DotEnvy library. He wrote the library to help manage environment variables across multiple applications and environments. He and the Elixir Mix panel dive into how DotEnvy works and in the ins and outs of managing environment variables securely from one application to another and from one environment to another. Through development and deployment this is often an overlooked step in keeping things secure while also keeping them simple. Panel Adi Iyengar Allen Wyma Charles Max Wood Sascha Wolf  Guest Everett Griffiths Sponsors Dev Influencers Accelerator Links Giving What We Can Community Centre for Effective Altruism LinkedIn: Everett Griffiths Picks Adi- Huntress Adi- GitHub | marp-team/marpit Allen- Rust Web Development Allen- Concurrent Data Processing in Elixir Charles- DigitalOcean Charles- TrainingPeaks Everett- Ruby For Good Everett- Elixir For Good Sascha- Hands-on Rust Sascha- GitHub | mozilla/sops Contact Adi: Adi Iyengar – The Bug Catcher GitHub: Adi Iyengar ( thebugcatcher ) Twitter: Adi Iyengar ( @lebugcatcher ) Contact Allen: Plangora  Plangora Limited Plangora – YouTube Plangora | Facebook Tech_Plangora Limited_Elixir | Instagram Twitter: Plangora ( @Plangora ) LinkedIn: Plangora – Web and Mobile Development Plangora – Reddit Flying High With Flutter Flying High With Flutter Flying High with Flutter – YouTube Flying High with Flutter | Facebook Flying High With Flutter | Instagram Twitter: Flying High with Flutter ( @fhwflutter ) Teach Me Code Teach Me Code Teach Me Code | Facebook TeachMeCode | Instagram Contact Charles: Devchat.tv DevChat.tv | Facebook Twitter: DevChat.tv ( @devchattv ) Contact Sascha: Sascha Wolf

Greater Than Code
238: Contributing to Humanity and Mutual Aid – Solidarity, Not Charity

Greater Than Code

Play Episode Listen Later Jun 9, 2021 56:36


01:00 - Mae's Superpower: Being Able to Relate to Other People and Finding Ways to Support Them 03:42 - Contributing to Humanity (Specifically American Culture) * Title Track Michigan (https://titletrackmichigan.org/) * Climate Change * Clean, Accessible Water * Hate & Divisiveness; Understanding Racial Justice 07:01 - Somatics (https://en.wikipedia.org/wiki/Somatics) and The Effects of Yoga, Meditation, and Self-Awareness * Flow (https://en.wikipedia.org/wiki/Flow_(psychology)) * Kripalu (https://kripalu.org/?) * PubMed (https://pubmed.ncbi.nlm.nih.gov/) * Cognitive Behavioral Therapy (CBT) (https://www.apa.org/ptsd-guideline/patients-and-families/cognitive-behavioral) * Debugging Your Brain by Casey Watts (https://www.debuggingyourbrain.com/) 12:20 - Mutual Aid: Solidarity, Not Charity * WeCamp (https://weca.mp/) * Ruby For Good (https://rubyforgood.org/) * Harm Reduction * Encampments * “We keep us safe.” * Rainbow Gatherings (https://en.wikipedia.org/wiki/Rainbow_Gathering) * Burning Man (https://burningman.org/) * Big Big Table Community Cafe (https://www.bigbigtable.org/) 33:17 - Giving vs Accepting Help; Extending and Accepting Love, Empathy, and Forgiveness * Collective Liberation * The Parable of Polygons (https://en.wikipedia.org/wiki/Parable_of_the_Polygons) * Listening: What could be of use? * 99 Bottles of OOP (https://sandimetz.com/99bottles) – Sandi Metz (https://twitter.com/sandimetz) 48:25 - The Mental Health Challenges of Being a Programmer * Celebrating Small Wins; “Microjoys!” Reflections: Casey: The word mutual aid can be more approachable if you think about it like people helping people and not a formal organization. Also: help and be helped! Jamey: Valuing yourself and the way that helps the communities you are a part of. Mae: Engaging with users using the things your building is a reward and a way to give yourself “microjoy!” This episode was brought to you by @therubyrep (https://twitter.com/therubyrep) of DevReps, LLC (http://www.devreps.com/). To pledge your support and to join our awesome Slack community, visit patreon.com/greaterthancode (https://www.patreon.com/greaterthancode) To make a one-time donation so that we can continue to bring you more content and transcripts like this, please do so at paypal.me/devreps (https://www.paypal.me/devreps). You will also get an invitation to our Slack community this way as well. Transcript: JAMEY: Hello and welcome to Episode 238 of Greater Than Code. I am your host, Jamey Hampton, and I'm here with my friend, Casey Watts. CASEY: Hi, I'm Casey, and we're both here today with our guest, Mae Beale. Mae spent 20 years in and out of nonprofit-land, with jaunts into biochemistry and women's studies degreeing, full-time pool playing, high school chemistry and physics teaching, higher ed senior administrating, and more. She went to code school in 2014 (at 37 years old) to gain the technical skills needed to build the tools she wished she'd had in all the years prior. So glad to have you, Mae. MAE: Thanks, Casey. Thanks, Jamey. Same for me. JAMEY: So you may be ready for the first question that we're going to ask you, which is, what is your superpower and how did you acquire it? MAE: Yeah, thank you. I think that my superpower is being able to relate to other people and find ways to support them. How did I get good at that? Well, I've dealt with a lot of pretty complicated people in my life that you have to do extra thinking to figure out. So I think I got my start with that and I've done lots of different things in life and met lots of different people and felt lots of different feelings and thought lots of different thoughts. So I think that's mostly it: living. JAMEY: I was going to say that I know from knowing you that you've done lots of things, but even our listeners who don't know you probably already know that just after listening to your bio, so. [laughter] MAE: Yeah, and there's plenty more that didn't make it in there. That's something that is fun and a joke is no matter how long people know me, there's always still something that they didn't know and so, that's fun for me. I like to surprise other people and I love being surprised by people. So it's like a little game I have with all my fun facts. JAMEY: I love that. CASEY: I've got a question: what's on your mind lately. MAE: What is on my mind lately? So many things, I don't even know where to start. One is where and how can I contribute to the future of humanity [chuckles] and American culture in particular and in the circles that I'm in, drawing it down even more. So I think about that a lot. I think about my house a lot. I just bought a house and I'm going to do each room with a color theme so it'll end up being, you walked through the rainbow. Pretty excited for that, lots of things there. And I think a lot about how to empower others and be a more and more effective communicator. I think about that a lot. Probably those are the top ones and maybe Dominion. I play that every day. So I think about that a little bit. CASEY: [chuckles] Love that game. JAMEY: Me too. CASEY: This is great. All three are really interesting. I want to start on your first one. What opportunities do you see lately, or what have you done recently, or what do you hope to do to help the world help American culture help make an impact? What are you working on? MAE: From where I sit, it seems like the most important things that any of us can attune to about even a portion of is the environment and whatever's going on with our ability as humans to respond to climate change and water, like clean, accessible water for people, and hate and divisiveness. Those three things I think are our biggest challenges. So I try to do things that end up in those spheres, if not in things that ideally have some mix of those rather than having them be silos. One of my jobs is working with Title Track Michigan, and they are a relatively new nonprofit that brings creative practice to complex problems and is specifically focused on water protection, racial equity, and youth empowerment. Once all the uprising started in 2020, we created an Understanding Racial Justice course for white people in Northern Michigan and so, I've been helping to facilitate those courses and taking as many opportunities to rethink my orientation to all those topics as well. CASEY: That's so cool. You found a group that does all of those things in one. MAE: Amazing, right? CASEY: Wow. Title Track Michigan, huh? MAE: Yeah. I found them because my life radically changed a few years ago. A lot of things changed at once like, not just a lot, all of the things. So I went on this walkabout just trying to find ways to be of service in the world without expectation, watch who I met, and where I ended up. I ended up in Michigan and getting introduced to these people who then were creating a new nonprofit Title Track. Another thing I do is I have a consultancy that I have a flagship enterprise product for nonprofit, small business administration. That is a little bit of a Trojan horse for change management and organizational development and sustainable longevity planning for organizations. So the fact that I ended up there with them at that time and way more cool synchronicities happened. That's how I met them. So it just feels right and great to have landed in that space and then to have 2020 be what it became, we were already formed and positioned to try to be of help. JAMEY: This is an abstract question. MAE: Okay. JAMEY: But what does it feel like to feel like you're doing the right thing in that way like, the right place to be? I got the sense from you telling this story that things just came together in the right way at the right time and that's a beautiful thing when it happens and you said it feels right. What does that feel like? MAE: Mm thanks, Jamey. Well, my first thought is another thing that Title Track does in that Understanding Racial Justice course and a lot of circles I've ended up in have a focus on somatic and so, body centered awareness and engagement. So I used to always think my answer was going to be emotional when people ask me, “How do I feel?” and now I hear and think of my body first so that's cool. I'll answer a couple of ways, if that's okay. When for me synchronicities happen and I feel most alive, or of use, which is important to me, my heart literally feels bigger and almost breathing like I can feel air. I don't know how to explain that. I definitely will be smiling more, my back is straighter, and I usually have a lot more to say. All of a sudden, I'll have a lot to say. Other times, I have nothing to say! For how I might've answered that question previously would be closer to having a lot of things to say, like I'm a lot more creative, making connections, getting excited, and wanting to create new things together with other people. How about you two? CASEY: Just hearing you describe that, I have thought back on times I felt really proud and engaged and I noticed my posture improved, too. That's so interesting. I've had a nerve injury for 2 years. My hands go tingly sometimes. So I'm working on my back and noticing posture all the time. Interesting how my mood like that could affect the posture. I believe it, too. JAMEY: I'm not sure that I would have called out posture specifically in that way, but now that I'm thinking about it, I think what I would say is I feel lighter. MAE: Yeah! JAMEY: So to feel less bogged down, I can see in what way that's related to posture. [chuckles] MAE: Totally. Yeah. CASEY: We all have a lot to say on this, I love it. [chuckles] This reminds me of the Flow State. So when your skills match a need and it's challenging the appropriate amount, you're in a great concentration state, but if your skills aren't enough, or if the need isn't important enough—either one—feels a little way less good, not good. JAMEY: Totally. MAE: I lived at a yoga retreat center for a little while in Massachusetts called Kripalu—it's the largest yoga retreat center in North America. I had never done yoga and I was like, “Oh, cool. I'll just go live there [laughs] and see.” Anyway, I was there for three months and they have a part of their organization dedicated to optimal human performance. They have a partnership with Tanglewood and some other places around there to see if yoga and meditation can induce more Flow State, more of the time for top performing musicians, and just to be able to have more “scientific evidence” about how physiologically we can do things to get ourselves closer to those states more often. Pretty cool work. JAMEY: Yeah. That's really interesting. CASEY: I was just doing some research on the effects of different types of yoga and meditation on anxiety. I was trying to read some of the primary sources. I like to go to PubMed first—that's my go-to. Some people do Google Scholar. It's interesting, the framing sounded in a couple of papers like, “Well, it's not as good as CBT,” and my takeaway was, “Well, it helps an amount, huh? Great, good.” [laughter] So people who can't get access to CBT should consider that and that's true anyway. Science has shown this thing we knew was helpful anyway, is helpful in an empirical sense and that's great. MAE: Totally. Casey, for anybody who might not know what CBT is, would you be willing to…? CASEY: Thank you. CBT here is Cognitive Behavioral Therapy, which is one of the most common and effective forms of talk therapy you would do with a therapist. It focuses on what some maladaptive, unhelpful thought patterns are and helps you change them. MAE: And that's coming from a psych major, right, Casey? CASEY: That's right. I talk all about that in my book, Debugging Your Brain. It's funny, but you're flipping the script here. Usually we do this to our guests. MAE: [laughter] Great! CASEY: Love it. JAMEY: There's another project, Mae that I know that you've worked on that. I'm a little bit surprised that you haven't brought up yet, but I'm going to bring it up, which is your Mutual Aid program. MAE: Thank you. JAMEY: I think that when you are talking about doing something to make an impact on the world, like that was the first thing I thought of since I know you're involved with that and I would love to hear you talk about it. MAE: Yes. Thank you. Thanks for bringing that up and I did want to talk about that and I was looking forward to hearing what you have to say about that topic as well. So when the pandemic started, you may have seen these, or become involved, but there was a whole bunch of spreadsheets starting like Google Sheets of people who had some needs and people who wanted to offer some things. Google spreadsheets are really easy first pass for people with low tech skills and no budget to just come together. But I started being invited to all these different spreadsheets from around the country that include people's name, address, phone number, CashApp name, their exact vulnerabilities and identities, and current struggles in a spreadsheet that's downloadable. It really freaked me out and I started coding that day about how can we start to do something to make these people not have to have their identity so exposed and through like WeCamp networks, Ruby for Good networks, and different Slacks I'm in of varying programmers, I started saying, “Does anybody else want to get involved?” and several people did. So we have built a platform to support mutual aid groups and what we did immediately was find some groups to figure out what their needs were instead of just what we might imagine. They were doing a lot of, we call it dispatch moderated setups where people fill out a form and then volunteers read the forms and then match people and do all the communication manually, but not having peer-to-peer things go on. The system was originally designed to support that dispatch moderated set up and once people started to go back to work in the fall and there weren't as many people able to devote as much time to volunteer, and as varying groups, especially ones that hadn't been around as long, realized they would probably need a lot more training in social work, ask things just to be more effective and figure out how to route people correctly within their community to services that might be able to help them a little more. Since the fall, we've to coding peer-to-peer solution. We have several different mutual aid groups around the country and right now, most closely working with groups in Michigan and New York state, just because that's where our networks are. Getting to launch some peer-to-peer stuff, but mutual aid itself has become a buzzword and like, what is that anyway? [chuckles] So that topic I love talking about. There's like a mutual aid saying, “Solidarity, not charity.” The whole thing is we're all in it together and we're not going to rely on different structures, or institutions that were set up most often in ways that institutionalized various forms of oppression. Just empowering people to connect with each other, have stronger networks, and build more resiliency is what's up with it, but mutual aid has been around for over a 100 years, at least as a term and a thing, but it generally, almost always springs from communities that have been disenfranchised. So when the pandemic started and a lot of new groups formed, not everybody had already checked what's already happening and a lot of different people, especially in communities of color, were surprised by like, they didn't hear that term, that's just what they do. There's been a big—along with everything else—learning of how those structures already were in place and how we can continue to grow them, and support each other as we navigate this world we're in. Jamey, I was going to ask you about your involvement with mutual aid, too and if you had anything to add to that definition. JAMEY: I was going to say that I really liked what you said about finding new ways around things that have been institutionalized. Because I think one of the things that's so beautiful about mutual aid is the way that people can help each other realize what kind of help is available and what kind of help they even might need. A story that I really like to tell that and I think about a lot is I have a friend who's involved in mutual aid in Buffalo, where I'm from and he does repair work and just is very handy in that way. So he does a lot of mutual aid repair for people and he told me that the way that this started for him is that there was a request in our mutual aid Facebook group where someone was saying, “I really need $200, or something like this because my window is broken and I need to buy a space heater because it's been getting really cold. So I need this money to buy a heater and all of this stuff.” My friend came in and was like, “Okay, but what if I just fixed your window?” It had not occurred to this person that she could ask for that. MAE: Oh, boy. JAMEY: She was coming up with all these solutions around it. So this idea of like coming together as a community and saying, ‘Yeah, I can help you, but can we help a little bit closer to the source than what you even just asked for?” I think is really powerful. MAE: Yes. I love that, Jamey. Yeah, it's the closer we can be in community with each other, the easier those asks are. Something that you said about figuring out your own needs, there is a thing and it's related a little bit to some of the other topics we've talked about where there's like the white savior thing. People want to do something for people who they think are less – they have less than them. There's a power dynamic there and mutual aid—mutual, that's the main part. So you really aren't doing mutual aid if you're not accepting help. All of us have things that we could be supportive with and things to offer. I love also having that not – there's a lot of mutual aid that is about just giving money and/or like reparation stuff. But I love when money isn't part of the equation and quantification of value isn't part of the equation. It's just like, “I have something to give and I could use something and this is how we're going to stay in community and in network and lower those barriers to have offers and asks be even easier in the future.” JAMEY: For sure. I think it's about meeting people where they are, too, because I agree about some programs are focused on money, and some people have money and can put that into the community and that's great. But maybe they don't have time to show up and do these things and other people might think like, “Well, how can I help because I don't have money,” but they have time, or they have skills. I think that everyone bringing in and saying, “This is what I have to offer with what's going on in my life right now,” and maybe it's money, or maybe it's time, or maybe it's something else that I didn't even think of that they're going to offer. [chuckles] MAE: Totally. When you were saying that, I just got a chill thinking if really every single person just that question you just said, “How can I help?” If we all did one thing, this is how to effect broad change. CASEY: How can people find the mutual aid groups near them? If they just search mutual aid, that probably gets a bunch, but they don't all say it, right? MAE: Yeah. It's a really great point. There have been some different efforts to link together mutual aid networks and there's a map, but not every network is on it because not every network even knows about it. [chuckles] So because mutual aid is so grassroots, it's not – CASEY: Right. MAE: A number of them have form 501(c)(3) is just to not be doing illegal financial transaction stuff that is problematic by having all this money go through their personal Venmo, or something. But that is what a lot of people have done. So mostly there's the Google option and the term mutual aid is getting used more and more, but there are some other phrases. I'm forgetting it right now. What's the name when they hand out medical supplies? Harm reduction, there's a bunch of harm reduction efforts. Also, in cities where there are a lot of homeless shelters, there's things around encampments and like becoming community with those folks to advocate. Another piece, major piece of mutual aid that I forgot to name is it inherently has a political engagement component in it. So one of the reasons why it is this solidarity thing is you're seeing all the humans as inherently equally valuable and that you're identifying the structural things that led to people having a different experience, or a different privilege, or a different outcome to what's going down for them. So then by identifying those together, you try to change the system to not create the problem. Whereas, to go back to that phrase charity, a lot of charities—which are awesome, I'm not trying to knock those—but a lot of them have more of a it's your fault, or shortcoming, or need that has put you where you are. Mutual aid is the way in which this is all rigged and on purpose, or not on purpose, or just the impact of the structures is how you ended up where you are so let's rejigger. JAMEY: A phrase that comes up a lot, in the protest community specifically, is, “We keep us safe and we say that at protests about security, medics and things, and wearing masks—I've seen people start to use that phrase. But I think that that's a phrase that really speaks to like what mutual aid is about, too. It's about we are doing something together for ourselves as a community, and we're not looking for something from the outside that comes in a hierarchical structure. We're just making this decision as a group of people to take care of ourselves and our neighbors and I think that's what I really love about it. [chuckles] MAE: Totally. Yeah, absolutely. And back to what you were saying, Casey, the how can people find those things? There's also just, “Hey, I've got some extra seeds,” or put a cabinet in your yard with some food in it and say free food. You don't have to associate with a “mutual aid group” to do mutual aid. It's like, that's just a blanket term, basically that offers a little bit of a cue about what those people might be up to. But it's really, in whatever way you are sharing and developing relationships with your fellow community members. This is mutual aid. JAMEY: I thought of another example of that. MAE: Yay! JAMEY: We have this in Buffalo, but I think it's a thing that we're seeing other places, too. Separate from our mutual aid network, we have a Facebook Buy Nothing group. MAE: yes. JAMEY: And people will post like, “Oh, I have this, I'm going to get rid of it. Someone come pick it up.” “Oh, I was going to donate these spoons from my kitchen. Someone can have them.” When you said seeds, that's the kind of thing you'll see on Buy Nothing and I think that's been a revolution in anything even separately from it, because I do think that money plays a part in a lot of mutual aid stuff, because folks need money for things. But in Buy Nothing, it's pointedly without money and I think that that's a very fun and cool dynamic, too. MAE: Totally. Yes. I have a couple of things I would love to say them. One is that the bringing up Facebook has started to support mutual aid. But also, I don't know if y'all have seen The Social Dilemma and just become aware of all of this tracking that's going down. There's something that is another motivator for us on the mutual aid repo is this is open source code that anybody who wants to use it can stand up their own instance and if you partner with us, connect with us, we will help you if you need us to. But it's intentionally not a multitenant app so that people have small datasets that they own and there isn't like this aggregate thing going on about local data. It's basically a small tech for the win, which is also pretty mutual aid-y. Our group, like the programmers who are most involved, meet a couple times a week and know about what's going on in each other's lives. We are mutual aid for each other, too. The energy of what, how, who we are, and what we're doing is getting put into the thing that we're building that hopefully has that same effect. So there's this nice spiral thing going on in there that I'm proud of. I think there's a lot about what we referenced earlier, institutionalization of oppression, that has to be like, there are ways to create other options and they take cultivation of and building new structures. Stuff like this as an example of that and an experiment in it. Another one that it reminded me of is when I was younger, I used to go to rainbow gatherings. I don't know if y'all know about these. It's a super hippie thing and there's regional gatherings, but there's a national gathering at a national forest every year. All these people just show up and then they build earthen stoves. There's a bunch of people who do not participate in main society; they just go to these different gatherings and travel around as a… There's plenty more to talk about rainbow tribe and even the usage of that word tribe and what goes down. I'm not going to try to touch into that, but something I love about it is there's a whole exchange row where people just sit out with things and there's no money. You're not allowed to use money. I think I was 18 when I went to my first one and I was just like, “What? This is amazing.” Like, just to imagine my life not through a currency, or that evaluated exchange, it was so inspiring to me. It still is and so, some of what you said, Jamey, reminded me of that. JAMEY: I relate a lot to that, too. Burning Man events are also no money allowed. MAE: Ah. JAMEY: When I first entered that space, that was one of the things that really spoke to me about it too. In fact, it's also no barter allowed in Burning Man. It's a purely gifting economy where if you give someone something, a lot of times they become inspired to gift you something back right there and there's an exchange that happens. But culturally, the point of it is that there's not supposed to be any expectation of exchange when you gift something to somebody. MAE: Do you know about that restaurant in San Francisco that is free, but you pay for the person behind you if you want? JAMEY: I don't know about one in San Francisco specifically, but we have a program like that similar in Buffalo. It's called Big – I'm going to look it up so I can link it up. MAE: How about you, Casey? I'm getting excited so I keep saying things. CASEY: I'm reflecting on the award mutual aid a lot through all this. I like this idea that mutual aid as it is in action and that mutual aid groups do mutual aid, but individuals can, too. MAE: Yeah. CASEY: That's a pretty powerful theme. It makes the term more approachable, especially since it's a jargon word lately. It's just grassroots-y helping each other out, however that looks. MAE: Totally. CASEY: I'm thinking a lot about what communities I'm a part of, too, that naturally have that phenomenon. It's like, I'm queer, I'm in a lot of queer groups. I'm in interest groups like musician groups and they help each other do stuff. They carpool to the practice or anything like that that's this. There's also a formal ones like D.C. Ward 6 has mutual aid groups that are named that. That's its own thing. And then even my Facebook friends, I just post like, “I have a crackpot, who wants it?” MAE: Totally! CASEY: But before today, I might not have used the word mutual aid to describe any of that because I'm not part of a formal approved mutual aid group, which is not the point of that term. MAE: [laughs] Yeah. CASEY: Just people helping people. MAE: When I was thinking about getting into tech, I, as a pretty outspoken woman who will address injustice directly if I see it, when I see it in myself and others, I wasn't sure if that was going to be a place for me. I had had some not awesome experiences with tech people before I was in tech. So I reached out to a bunch of people who were already in the biz and they spent hours talking to me about their experiences, answering all of my questions, and offering to help me. As I took the leap and went to code school and participated in a meetups and just, everywhere is mutual aid in programming, everybody is helping each other. “I have a question,” “I'm wondering about this.” This podcast is mutual aid, in my opinion. It's been really inspiring for me to be a programmer because I feel a part of a worldwide network of people who try to, especially with mixing in the open source piece, build things and offer what they can. It's awesome. CASEY: I have a challenge for people listening to this podcast. This week, I'd like you to help someone and accept help from someone, both in the spirit of mutual aid. MAE: Yes! CASEY: I'm not surprised; accepting help might be the harder half for a lot of people. MAE: Yes. JAMEY: I think that's true. [chuckles] MAE: One way I've said it before is that that is your gift to the giver. The giver doesn't get to be a giver [chuckles] unless you accept the gift from them and that people can, including myself at times, tend to over-give and that is its own challenge. So if you need to stay in the giving frame, [chuckles] you can be like, “All right, well, I'm providing this opportunity to the other person.” [chuckles] CASEY: Sometimes I've playfully pushed on an idea to people. I'm trying to help them and they say, “No, no, no. I can't accept your help because I would be indebted,” and I'm like, “You would deprive me of this good feeling I would get from helping you? Really?” [laughter] MAE: Yeah. CASEY: Thinking of it a little bit, I'm not like – [overtalk] JAMEY: [inaudible]. CASEY: Right. I'm just thinking that way a little bit, flipping it, helps some people accept the help then. MAE: Yeah. JAMEY: I think that people have so much harder of a time of extending love and empathy, and forgiveness, and all of these nice things that we might really value extending to other people, but not to ourselves. MAE: Yo, that's for real, Jamey and still on this theme, the seeing each other as equals as in community. My Mom used to say this great phrase, “There but for the grace of God, go I.” She was raised Catholic so it's got that in there, but I love that of this could definitely be me. There's a cool Buddhist practice that I learned from Pema Chödrön about you extend release of suffering to others and then you widen the circle to include yourself in it, but you don't start there. So similar to how you're saying, Jamey, that that is a challenge for a lot of people, it's just built into that practice where when you can't give yourself a break, [chuckles] imagining others in that situation and then trying to include yourself is an angle on it. JAMEY: I like that. I think also related to Casey's example of his joke. It's thinking about how what you do affects other people, I think sometimes we're better at that and if you're treating yourself bad, especially if you're in one of these tight mutual communities. If you're treating yourself bad, that's affecting the people around you, too. They don't want to see you being treated bad and they don't want to see you being miserable and they want the best for you. When you're preventing yourself from having the best, that's affecting the whole community, too. MAE: Yo! JAMEY: I hadn't really thought about it like that until right now. So thank you, Casey, for your joke. CASEY: Powerful thought. Yeah. Like the group, your people, your team, they need you to be your best. So if you want to help your team, sometimes the best way is to help yourself. It's not selfish. It's the opposite of selfish. MAE: Exactly. Another thing I've heard a bunch of the different activist groups, some phrasing that people have started to use is collective liberation and no one's free till we're all free and if we are suffering, the other people are suffering and vice versa. So figuring out how to not be so cut off from ourselves, or others, or that suffering and seeing them as intertwined, I think is one of the ways to unlock the lack of empathy that a lot of people experience. CASEY: There's a really cool visualization I like that that reminds me of. It's called the Parable of the Polygons and you can drag around triangles and squares. You can see how segregation ends up happening, if you have certain criteria set up in the heuristics of how they move. Or if some people want to be around diverse people, it ends up not happening, or it ends up recovering and getting more integrated and mixed. It's so powerful because you can manipulate the diagrams. There's a whole series of diagrams. Look it up, it's the Parable of the Polygons. MAE: Cool! That is awesome. CASEY: So I want to be around people who aren't like me and that helps. It helps with this phenomenon and the more people do that, the better. MAE: Yeah, and having grown up in a small city, that's pretty homogenous on multiple levels. When I went to college and learned that people thought differently, my world was this very rigidly defined, this is how things are. [chuckles] My biker dad, that's still his way, his lens. When you start to experience people who are not like yourself, you let that challenge your assumptions, then you end up transformed by that. I was a double major in college—biochemistry and women's studies—and I remember being in an organic chemistry class and the professor said, “Well, if that's too hard for you, you can go take a sociology class.” I raised my hand and was like, “My sociology classes challenge me on every single thing I think about the world. Your class requires me to provide rote memorization, which I'm awesome at luckily and that's how I ended up in your class.” But that is not harder. That's that story. CASEY: The last episode that I recorded was with Andrea Goulet. One of the things that kept coming up was the old-timey programming interview questions were all about math. MAE: Yes. CASEY: Which isn't necessarily what programming is about. That reminds me here of rote memorization in that class versus complex systems thinking in sociology. MAE: Totally!
 CASEY: With these two choices, I might choose a sociology person to do architecture work in my software than the rote memorization person. MAE: Totally, definitely, every time. Yeah, and that's a different lens that I have coming in to the industry from having been an administrator for so many years is our perception as programmers about what's going to be helpful is very different than someone whose day job is to do repetitive work like very, very, very simple apps. When I was in code school, I really wanted us to figure out how to make even our homework assignments be available for nonprofits and that's how my whole system in business ended up getting spun up. Oh, it was before that. My job before that, when I interviewed, I said, “Well, how long do you need someone here for? How long would you need me to commit?” and he said, “A year,” and I said, “All right, well, I'm not sure I'm the best candidate for you because I'm going to go to grad school and get a degree and be a consultant as businesses and nonprofits.” And then I was at that job for 8 and a half years before I went to code school. [laughs] But the thing about what could be of use just requires so much humility from programmers to defer to the actual employees and the workers about their experience and what could help them. Because so often, we think that we're the ones with the awesome idea and we can just change their lives and disrupt the thing. A lot of the best ideas come from the people themselves. I went to a project management training in Puerto Rico and it was a very rarefied environment of people who could pay for people to get PMP training, or whatever. The people that were in my cohort were factory project planners and not a single one of them knew anyone who worked in the factory. Like, they didn't get to know them as part of that project and they didn't have anyone in their sphere and my parents were paper mill workers. So when I'm sitting there and listening to these people talk about the worker and their lack of wherewithal, I guess, there'll be a gracious way to say it right now, I was just appalled. I try to take that into any time we are building software in a way that honors all people. CASEY: Yeah. My favorite leaders are the ones that listen to their employees and the users. I am happy with my roles in leadership positions, but the thing that makes me happy with myself is listening and if I ever lose that, I don't trust myself to be a good leader, or manager. MAE: Totally. CASEY: I could. I know it's easy when you get promoted to stop listing as much. It's the incentive structure of the system. I wouldn't blame myself if I lost it, but knowing I value it and don't want to lose it helps me hold on to my propensity to listen. MAE: Yes, Casey! Totally that. CASEY: Sometimes people have asked me, “What makes you think you'd be good at leading this?” That is literally my answer is like, “Well, I won't forget to listen.” MAE: Yeah. JAMEY: I think that it's weird the way that people create this hierarchy of good ideas and better ideas and which idea is better and put that kind of value judgment on it. When really, when you're dealing with software and trying to create something that works for the people that are using it. It's not about whether your idea is good or bad, it's about whether it's the right one for that group of people. My background, my first tech industry job was in agriculture and so, all of our customers were farmers and people that worked at farms, To admit I don't know what it's like to work on a farm in that way, it's not a value judgment about whether you're smart, or good at programming, which people act like it is. It's just a true fact about whether, or not you've ever had that experience. [laughter] CASEY: Sometimes I run workshops where we think about all the pros and cons to different ideas and when we need it, we pull out a matrix. We get a spreadsheet that has columns and rows, and rows are the ideas. A lot of decisions are made with one column, naturally like, “What's the best?” You just say like, “1 to 10, this one's the best.” But when we break it out, we have lots of columns, lots of variables like, oh, this one's easier to build, this one's higher impact. And when we break it out even further, we can weight those columns then do the matrix math and people like that, actually. Even people who are math averse. They can fill in the numbers in each of the cells and then they trust the spreadsheet to do the thing. That gets us on the same page. It depends on the context, which columns matter, which factors are important and that can completely change the situation. Even if you all agree on this one's harder than that one, the outcome could be completely different. The columns, or the context in my matrix model. JAMEY: We're reading at work 99 Bottles of Object-Oriented Programming, which Mae knows because we work together, which we haven't said yet on the show. But we're doing a book club. Your description of the matrix columns and what is relevant reminded me of the thesis of that book because it's like, there are tradeoffs. It's not that one tradeoff is necessarily more valuable than another tradeoff, it's just like what makes sense for this context that you're using and building it in, then you have to think about it in a nuanced way if you want to come up with a nuanced answer. MAE: I am so grateful to and inspired by Sandi Metz. Her ability to distill these concepts into common sense terms is so genius and moving, welcoming, accessible. So grateful, so really glad you brought that up, Jamey. One of the things that really stuck out from various talks of hers that I've been to is even if you aren't changing that code, that code does not need to change. That's bad code, but it works. That's great code, [chuckles] like working code, and splitting some of the bikeshedding that we do on code quality with business impact is a teeter-totter that I really appreciate. JAMEY: I like the way it puts value on everyone and what they're working on. Because my big takeaway from starting to read this book has been that I tend to write fairly simple code because that's what I find easy to do. [chuckles] I always felt well, other people write more complicated code than me because they know more about X, Y, and Z than me and I don't know enough about it to write something that elegant, or that complex, or et cetera, et cetera, et cetera. I had placed this value judgment on other people's code over mine and to read about code that's dissecting the value judgments we put on it and determining hey, just because maybe it's not always the best thing to overengineer something Maybe it doesn't have to be because you don't feel smart enough to overengineer it. Maybe it can just be because that's not the right choice. [chuckles] MAE: Cool. JAMEY: I thought that was really valuable to think about. MAE: Love that, Jamey. JAMEY: Boost people's confidence, I hope because I think a lot of people need their confidence boosted. [chuckles] MAE: Yo, I had no idea what I was getting into as far as the mental health challenge of being a programmer. To maintain one's self-respect, especially as an adult who was successful in her career prior to then be like, there is a whole thing about the adult learner. But to have your entire day be dealing with things that are either broken, or don't exist yet, that's your whole day. Nothing works ever basically and the moment it does, you move on to the things that aren't, or don't exist. So it's so critical to try to remember and/or learn how to celebrate those small wins that then somehow feel like insulting that you're celebrating this is just some simple things. [laughs] And then it's like, why are we making a big fanfare? But those microjoys—I've never heard that phrase as opposed to microaggression, or something. Microjoys, if we could give each other those, it could go a long because the validation is a very different experience than I have seen, or heard about, or experienced in any other industry. It's a real challenge. JAMEY: Not only is everything broken, or doesn't exist. But once it's working, you never hear about it again until it's broken again. [chuckles] MAE: Yeah. [laughs] CASEY: That's so true and it's such an anti-pattern. At USCIS, you would have every developer, who was interested, see an interview—we're working on an interview app—watch the user use the app every month at least, if not more and they loved those. They saw the context, they saw the thing they just built be used. That's positive feedback that everyone deserves, in my opinion and it's just a cultural idea that engineers don't get to see users, but they should. They do at some companies and yours can, too. MAE: Yes, Casey! We are working on that at True Link financial as well. Figuring out how to work that more in so that we all feel part of the same team more and we're not like the IT crowd and in the basement and all we have to say is, “Hello, have you tried turning it on and off again?” [laughs] JAMEY: Casey, I love that because even as you were telling that story, I was like, “Yeah, it's useful to see how people use it because that'll help you make better decisions,” and blah, blah, blah, which I feel strongly about. And then what you actually said at the end was, “and you get satisfaction out of being able to see people using your thing.” I hadn't even thought of that dynamic of it. CASEY: Yeah. It's both, happier and more effective. That's the thing I say a lot. These user interviews make you happier doing your job and make you more effective at doing them both. How can you not? MAE: Yeah. JAMEY: What's not to like? [laughter] It's true, though about knowing that people use your app. I started in consulting and a lot of the things I worked on felt a little soul crushing and not because I thought that they were bad, or unethical in any way, but just like, who is this for? Like, who cares about this? One of my most joyful experiences was one of the other products that wasn't quite like that, that I worked on when I was in consulting was an app called Scorebuilders and it was for physical therapy students have a specific standardized test they have to take and so, it's study prep for this specific test. There's like two, or three and we had different programs for them. And then I, a few years after that was, in physical therapy myself, because I have back problems and they have interns from college helping them in the physical therapy office that I went to and they were talking about studying for their test, or whatever. I was like, “Oh, that's funny. I haven't thought about that in a while. Do you use Scorebuilders to study in?” They were like, “Oh yeah. We all use it. That's what you use if you're in this program,” and I was like, “Oh, I built that,” and they were like, “What?!” They were calling all of the other people from the next room to be like, “Guess what?” and I'm like, “This is literally the best thing that's ever happened.” [laughs] MAE: Yay! CASEY: Yeah! That's such a good story in the end, but it's such a bad story. You never got to meet anyone like that earlier, really? JAMEY: Yeah. CASEY: That's common, that's everywhere, but that's a shame. You can change that. [overtalk] JAMEY: I just realized since it was consulting and not like, I didn't work for Scorebuilders. CASEY: Oh, I'm sure. It's even more hard. JAMEY: Yeah. CASEY: I'm so glad you got that. JAMEY: Thank you. It happened like 5 years ago and I still think about it all the time. [laughs] Well, we've been having a great discussion, but we've pretty much reached the point in the show where it's time to do reflections and that's when everyone will say something that really stood out to them about our conversation, maybe a call-to-action, something that they want to think more about. So, Casey, do you want to start? CASEY: Yeah. I said this earlier, but this is my big takeaway is the word mutual aid can be more approachable if you think about it like people helping people and not a formal organization. Especially since it is, by definition, grassroots-y. There is no formal stamp of approval on a mutual aid group that formalizes it. That's pretty powerful. I'll be thinking about what communities I'm part of that do that through that lens this week and I challenge listeners to help and be helped sometime this week, both. JAMEY: I think one thing that I'm going to really try and keep in mind is what we were talking about, valuing yourself and the way that that helps the community. I really liked Mae's story about including yourself after other people and using that way to frame it in your mind. Because I think that that will make it easier and thinking about like, this is something I struggle with all the time. I think a lot of us do. So I think that I really want to take that one into my life. Next time I realize I'm treating myself unfairly, I want to think, “Well, how is this affecting the other people around me who probably don't want to see me to do that?” [chuckles] MAE: Thanks, Jamey. Yeah. I have so many answers of reflections! The one I know I'm going to use immediately is this most recent one of engaging with users using the things you're building as a reward and a way to be able to get microjoy. I'm definitely going to use that word now more, microjoys, but I agree with both of what you said, too. JAMEY: Well, Mae thank you so much for coming on and chatting with us. This was really great and I think people will really appreciate it. MAE: Yay. I loved it! Thank you both so much. What a treat! CASEY: I feel like we could keep talking for hours. JAMEY: I know. [laughter] This is how I feel after a lot of my episodes. [laughter] Which is always good, I guess, but. Special Guest: Mae Beale.

All Ruby Podcasts by Devchat.tv
RR 456: Ruby for Good :) with Sean Marcia

All Ruby Podcasts by Devchat.tv

Play Episode Listen Later Apr 21, 2020 52:18


JavaScript Remote Conf 2020 May 13th to 15th - register now! Sean Marcia organizes Ruby For Good—an organization for building technology to solve the world's problems and an in person meetup held online this year. Sean talks about founding Ruby For Good and some of the projects it has been responsible for creating. Panel Charles Max Wood John Epperson Luke Stutters Guest Sean Marcia Sponsors Springboard | $500 Scholarship Available for Candidates who Apply with Code "DASPRINGBOARD"   "The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!   Links Ruby for Good - Making the world gooder Code for America The Code for America Brigade Network Picks Charles Max Wood: Ruby by the Bay / Ruby for Good Ruby Virtual Meetup - April 20 at 4pm MDT Ruby Virtual Meetup - Europe/Africa/Middle East - April 23 at 9am MDT John Epperson: Disney+ Ruby Meetup: Online Luke Stutters: GitHub - larsch/ocra: One-Click Ruby Application Builder Sean Marcia: Follow Sean on Twitter > @seanmarcia, Github Flour Water Salt Yeast Follow Ruby Rogues on Twitter > @rubyrogues

america amazon disney code panel candidates github springboard mdt charles max wood finding your dream developer job maxcoders guide ruby for good
Devchat.tv Master Feed
RR 456: Ruby for Good :) with Sean Marcia

Devchat.tv Master Feed

Play Episode Listen Later Apr 21, 2020 52:18


JavaScript Remote Conf 2020 May 13th to 15th - register now! Sean Marcia organizes Ruby For Good—an organization for building technology to solve the world's problems and an in person meetup held online this year. Sean talks about founding Ruby For Good and some of the projects it has been responsible for creating. Panel Charles Max Wood John Epperson Luke Stutters Guest Sean Marcia Sponsors Springboard | $500 Scholarship Available for Candidates who Apply with Code "DASPRINGBOARD"   "The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!   Links Ruby for Good - Making the world gooder Code for America The Code for America Brigade Network Picks Charles Max Wood: Ruby by the Bay / Ruby for Good Ruby Virtual Meetup - April 20 at 4pm MDT Ruby Virtual Meetup - Europe/Africa/Middle East - April 23 at 9am MDT John Epperson: Disney+ Ruby Meetup: Online Luke Stutters: GitHub - larsch/ocra: One-Click Ruby Application Builder Sean Marcia: Follow Sean on Twitter > @seanmarcia, Github Flour Water Salt Yeast Follow Ruby Rogues on Twitter > @rubyrogues

america amazon disney code panel candidates github springboard mdt charles max wood finding your dream developer job maxcoders guide ruby for good
Ruby Rogues
RR 456: Ruby for Good :) with Sean Marcia

Ruby Rogues

Play Episode Listen Later Apr 21, 2020 52:18


JavaScript Remote Conf 2020 May 13th to 15th - register now! Sean Marcia organizes Ruby For Good—an organization for building technology to solve the world's problems and an in person meetup held online this year. Sean talks about founding Ruby For Good and some of the projects it has been responsible for creating. Panel Charles Max Wood John Epperson Luke Stutters Guest Sean Marcia Sponsors Springboard | $500 Scholarship Available for Candidates who Apply with Code "DASPRINGBOARD"   "The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!   Links Ruby for Good - Making the world gooder Code for America The Code for America Brigade Network Picks Charles Max Wood: Ruby by the Bay / Ruby for Good Ruby Virtual Meetup - April 20 at 4pm MDT Ruby Virtual Meetup - Europe/Africa/Middle East - April 23 at 9am MDT John Epperson: Disney+ Ruby Meetup: Online Luke Stutters: GitHub - larsch/ocra: One-Click Ruby Application Builder Sean Marcia: Follow Sean on Twitter > @seanmarcia, Github Flour Water Salt Yeast Follow Ruby Rogues on Twitter > @rubyrogues

america amazon disney code panel candidates github springboard mdt charles max wood finding your dream developer job maxcoders guide ruby for good luke stutters
Ruby on Rails Podcast
290: Ruby for Good with Polly Schandorf

Ruby on Rails Podcast

Play Episode Listen Later Oct 9, 2019 25:23


Polly Schandorf is a Ruby community advocate, a newly minted extreme programmer and an organizer for Ruby for Good. She is also one of the organizers of WeCamp - a code retreat and unconference in the woods in the suburbs of DC. Help Ruby for Good do the good they are trying to do!

Ruby on Rails Podcast
290: Ruby for Good with Polly Schandorf

Ruby on Rails Podcast

Play Episode Listen Later Oct 9, 2019 25:23


Polly Schandorf is a Ruby community advocate, a newly minted extreme programmer and an organizer for Ruby for Good. She is also one of the organizers of WeCamp - a code retreat and unconference in the woods in the suburbs of DC. Help Ruby for Good do the good they are trying to do!

Parent Driven Development
029: Organizing Conferences

Parent Driven Development

Play Episode Listen Later May 15, 2019 44:55


Parent Driven Development Episode 029: Organizing Conferences 00:57 Balancing Conferencing with Parenting Andy has organized RedDotRubyConf (https://www.reddotrubyconf.com/), still organizes Brighton Ruby (https://brightonruby.com/), and has spoken the past few years at RubyConf (https://rubyconf.org/). Andy also puts out an email newsletter, with one Ruby/Rails technique delivered with a ‘why?’ and a ‘how?’ every two weeks. It’s deliberately brief, focussed & opinionated, and called One Ruby Thing (https://onerubything.com/). Chris helps to co-organize Ruby For Good (https://rubyforgood.org/). Systems, systems, systems. Staying in the speaker hotel during crunch time. Getting paid helps. Having no co-organizers = no extra communication challenges. Relying on your partner. Staying local helps. Having a venue. 06:52 Conference Sizes: How Big is Big? Andy runs Brighton Ruby as a single track, one-day conference of 300-400. Ruby Central (http://rubycentral.org/) conferences by comparison are up to about 1,000 attendees and multi-track over 3-4 days. Ruby For Good is about 80 people, but has less of a conference feel because it's groups of people hacking on different projects over a few days. 09:46 Classifying These Gatherings as "Work-Adjacent Hobbies" Benefits the career. Meeting, networking, and making friends. Feel-good factor. Prioritization. Time frees up as kids have gotten older. 19:30 Family Involvement Kids on stage are cute. Teenagers can help volunteer! Osmosis of exposure. This is what mom/dad does! Showing that work does not necessarily equal drudgery. 22:30 Behind-The-Scenes Tradeoffs The best track at any conference is the speaker track. Coaching, mentoring, and cheering on first-time speakers. Repetition of putting on conferences over the years = it gets easier, more fun, and less stressful. Atomic Habits (https://www.amazon.com/gp/product/0735211299/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=therubyrep-20&creative=9325&linkCode=as2&creativeASIN=0735211299&linkId=a6154fb4886e2b76620e69e1d1f699a2) 28:21 Meal Kits and Meal Planning Conversation We all have tried them. We all have opinions. We are definitely open for sponsorship. Email us!

Tech Done Right
Episode 61: Tech For Good With Andrew Means and Sean Marcia

Tech Done Right

Play Episode Listen Later May 8, 2019 33:21


Tech For Good With Andrew Means and Sean Marcia TableXI is now offering training for developers and products teams! For more info, email workshops@tablexi.com. Guests Andrew Means (https://twitter.com/meansandrew): Data Analysts 4 Social Good (https://t.co/dWOGuNxRiP), The Good Tech Fest (https://www.goodtechfest.com/), Big Elephant Studios (https://www.bigelephant.io/). Sean Marcia (https://twitter.com/seanmarcia): Ruby For Good (https://rubyforgood.org/), Code For Good (http://codeforgood.io/). Summary Our guests this week are Andrew Means of Data Analysts for Social Good and Sean Marcia of Ruby for Good. Both of them run organizations that are involved with using technology to helping non-profits that could use even some simple software or data assistance. We’ll talk about what kinds of work their organizations do, how non-profits differ from for-profit work, how they try to keep projects running over time, and how you can get involved working with technology for good. Notes 02:01 - The Shared Mission of Tech For Good Events - Uptake.org (https://www.uptake.org/) 04:04 - The History and The Why 06:30 - Working with Nonprofits and Vetting Projects - National Diaper Bank Network (https://nationaldiaperbanknetwork.org/) - 412 Food Rescue (https://412foodrescue.org/) - BrightHive (https://brighthive.io/) - Salesforce (https://www.salesforce.com/) 13:20 - Managing and Maintaining Projects 16:26 - Understanding Nonprofit Problems and Issues 18:54 - For Profit vs Nonprofit - The Overhead Ratio (https://www.investopedia.com/terms/o/overhead-ratio.asp) - Tech Literacy (https://en.wikipedia.org/wiki/Technological_literacy) 25:12 - Getting Involved / Recruiting Technologists - DataKind (https://www.datakind.org/) 26:51 - Using Open Source - Ruby for Good on GitHub (https://github.com/rubyforgood) 27:34 - Growing and Maturing the Tech For Good Space Special Guests: Andrew Means and Sean Marcia.

The Drunken UX Podcast
#24: Producing Open Source for Good

The Drunken UX Podcast

Play Episode Listen Later Nov 26, 2018 84:35


This week we bring back previous Build Process guest Sean Marcia to join Aaron in a chat with Michael about the Ruby for Good project and their project DiaperBase. Together, we take a dive into...

Parent Driven Development
010: Doing Good with Our Children LIVE! From Ruby For Good

Parent Driven Development

Play Episode Listen Later Aug 15, 2018 45:30


Parent Driven Development Episode 010: Doing Good with Kids, Live Episode 00:50 We're LIVE from Ruby For Good (https://rubyforgood.org/) 02:30 How do we make our kids do good? School is a good place to start. There are lots of options for kids and parents to start out. We talk about different activities at different ages, preschool to high school 03:37 Where to start when you want to have childcare at your conference Treat it as any other vendor Go to the conference venue and ask for recommendations Ask for recommendations from the hotel, local user groups, etc. 5:30 Various programs are mentioned For Girl Scout cookies (https://www.girlscouts.org/en/cookies/all-about-cookies.html) you can purchase a cookie to have sent to troops overseas Girls on the Run (https://www.girlsontherun.org/) each session has a theme related to "good" things 6:40 For young children, focus on having the conversation What does it mean to do good things? We talk about PJ Library (https://pjlibrary.org/home) and Tikkun Olam (https://en.wikipedia.org/wiki/Tikkun_olam) Simple things are good like the Dawn soap (https://dawn-dish.com/en-us/dawn-saves-wildlife) that you can use to tell a story Box Tops (https://www.boxtops4education.com/) can be taken to school The more exposure, the better 9:50 Bring the kids along At this conference, bringing kids can help them see that we're doing good things. It also happens when kids see you packing up food for shelters. The more exposure you have, the better JC talks about how they help people move a lot. Religious institutions are also a good way to find opportunities. Mandy talks about doing something nice for a homeless person and the conversation that resulted from that action 13:30 Helping family is also a good option Helping family members and grandparents can be very important. Finding places with family and extended family or neighbors to do good things for is really great. Helping our kids be aware of opportunities to help others is key 17:00 The News We talk about what's going on in the world and how we help our kids understand them. Do we bring our children to rallies? or marches? What is the importance of talking about what is going on in the news and being aware of how it affects our children, the world, and others. How do we support our children if they want to participate in walk-outs or some of the activism happening with our kids these days? 21:20 - 22:53 Trigger Warning: We talk a bit about the Parkland Shooting and gun violence related to our children 23:00 What do we do for the world for our kids? Beyond involving our kids, we get involved in issues that affect the world our children are growing up in Like elections, environment, infrastructure, etc. Writing letters to the Senate can be incredibly important so that funding continues for life changing programs. 26:30 Showing kids that doing good is also bi-directional. You give and you get. Local tech stuff, mentoring, starting a Women Who Code (https://www.womenwhocode.com/) chapter and more 29:00 Monetary donations are also great Sometimes you're not going to be able to do things hands-on, giving money is also important Involve kids in where to donate Allow children to allocate money to a charity or charity type Birthdays are a great opportunity as well, money to charity instead of gifts 34:00 Genius / Fail moments Allison - We sleep trained our daughter! We were going to wait but we didn't and it's worked out really well. #Genius JC - Teenager was being a teenager and we took him off the Spotify premium family plan. #Genius Chris - My son doesn't enunciate always and we had a Trader Joe's chicken in the freezer and we called it Emergency Chicken. One day Lars was in class and said Emergency Chicken is his favorite food. #Fail Mandy - I've been super busy this conference season and end of the school year and I missed an email from a teacher which apparently said there were portfolio reading. My daughter was super sad and I just missed it. But I'm making up for it! #Fail 44:40 Contact Us! Tell us if you have a question you want us to discuss on air! Follow & Support Please follow us @parentdrivendev (https://twitter.com/parentdrivendev) on Twitter or email us at panel@parentdrivendevelopment.com (mailto:panel@parentdrivendevelopment.com). Our website is at ParentDrivenDevelopment.com (https://parentdrivendevelopment.com) Support us via Patreon (https://www.patreon.com/parentdrivendev) and get access to our our Slack Community. Panel: Mandy Moore (https://twitter.com/therubyrep) Allison McMillan (https://twitter.com/allie_p) JC Avena (https://twitter.com/jcavena) Chris Sexton (https://twitter.com/crsexton)