Episode Archives

Being an engineering manager wasn’t for me

Nicolas Dular shares why he wasn’t happy as an engineering manager, even though he always dreamt of becoming one.

Mentoring as an engineering manager

In this episode, I talk to Jess Rose, who specializes in community building, outreach, and developing better processes for talent in technology.

We talk about:

  • her process of mentoring other developers – from junior to senior – via online 1 on 1
  • how managers can and cannot advocate for their team
  • how mobile devices are omnipresent as development devices, yet they come with a lot of challenges,
  • and code reviews and the importance of a shared language.
Jess Rose

Today’s episode is sponsored by Mergify, the faster and safer way to merge your code.  

Subscribe on iTunes, Spotify, Google, Deezer, or via RSS.

Transcript: 

[If you want, you can help make the transcript better, and improve the podcast’s accessibility via Github. I’m happy to lend a hand to help you get started with pull requests, and open source work.]

[00:00:00] Dr. McKayla Hello, and welcome to the Software Engineering Unlocked podcast. I’m your host, Dr. McKayla and today I have the pleasure to talk to Jess Rose. Jess is a technology professional and keynote speaker specializing in community building outreach and developing better processes for talented technology. She is passionate about fostering more equal access to technical education, and digital spaces. But before I start, let me tell you about an amazing startup that is sponsoring today’s episode Mergify. You know, I’m all about code reviews and pull requests. Having your teammates review your code can be super beneficial, but it also can create a bottleneck and slow down your software development. With Mergify, your team can be way more productive with GitHub. Mergify automates all about merging pull requests, you can specify the merge conditions, and Mergify will take care of the rest. Do you want a specific order for merging the pull requests? Should one PR be prioritized? Or do you need a copy of the PR and another branch for bug fixing? No problem. Mergify can take care of all those situations. By saving time, you and your team can focus on projects that matter. Mergify integrates completely with GitHub and your CI pipeline. They have a startup program that could give your company a 12-month credit up to $21,000 of value. Start saving time, visit Mergify.com to sign up for a demo and get started or just click the link in the show notes. I’m super, super thrilled to have Jess here with me. Jess, welcome to the show.

[00:01:38] Jess Rose Oh, gosh. And I’m absolutely delighted to be here when you said hey, do you want to come and talk about teaching and learning? Oh, I’m just going to be insufferable. Thank you so much.

[00:01:48] Dr. McKayla I’m really excited because I’m following you on Twitter. And I see that you’re creating spaces for people to learn to get better to grow. Right. So there are a couple of things that I want to touch base on today with you. One is the 1-1s that you’re offering. So maybe, maybe let’s get started with that. Because I see you from time to time you say, you know, I have some time available, why not hop over on a call, and I can help you with some career advice? How’s it going? What do you do with people? What kind of people are picking up on that?

[00:02:27] Jess Rose So I’ve been doing this for about, I looked the other day because I do, I do keep records and privacy-preserving records just like, oh, what kinds of things am I talking to people about? And I’ve been doing this for about eight years now. So just broke 1700 folks I’ve talked to over the years.

[00:02:40] Dr. McKayla Wow.

[00:02:40] Jess Rose And you would think oh, it’s going to be mostly juniors or mostly people trying to break into tech. But just the absolute vastness of experience is so dazzling and exciting and strange to me. I don’t see myself as especially well suited to give great advice. But on these calls, people are almost never asking for actual advice. So a lot, most of it’s just, I’d like to be heard and I’d like someone to confirm that my experience is unusual or isn’t unusual. Or getting sort of a level check for a different area saying, Hey, I’m based in this region, and I’m looking for work in your region. What’s that like? What’s the experience like? What’s the process like? I actually documented the whole process out because I want, I definitely want other people to be doing this if you feel like it. No pressure. And it’s on my GitHub. So GitHub.com/JessicaRose. And it should be right on there as 1-1s.

[00:03:37] Dr. McKayla Yeah, I saw that. I saw that on your Twitter feed. So it tells us how to do those 1-1s and how to, what questions to ask, and so on?

[00:03:46] Jess Rose Yeah. And mostly just about the tooling. So how to get it scheduled, how to get that sorted? And then because I’m a weirdo, how to get the records of who chatted to you deleted if you want to, like, yeah, I wouldn’t keep notes on somebody who doesn’t want me to keep notes.

[00:04:00] Dr. McKayla Yeah. And I think it’s good for privacy as well, right?. If people I don’t know which topics, they are coming to you, but I mean, some of them might be private, and you know, especially if you’re having maybe, like, I think if you need advice, you’re very often not such a good place, right? Probably more than being in a great place where you think, well, everything figured out, you know, things are going smooth than you’re seldomly reaching out to other people. It would be like I’m bragging now to you. You’re more probably reaching out if you have some problems with your team maybe or getting a job or something like this. Is that what people talk to you about in the sessions?

[00:04:41] Jess Rose So anything from, Hey, am I getting paid right? To, Oh, I’m getting screamed at a lot at work. Is this normal? So a lot of them are sort of, oh, gosh, but a lot of times folks just want to explore what’s going on next. I’ve managed people a lot in my career. And one of the things that I always, I always have a difficult time with, and I hope other managers do, too, is how do you deal with the conflict? And there’s always going to be conflict between what’s best to the individual person you’re managing, and what’s best for the company because those are those, And one of the big things I push when I do manage people is, hey, do you have someone external to the company to give you good advice when I can’t? Or I shouldn’t give you the advice that’s best for you?

[00:05:31] Dr. McKayla Yeah, yeah, it’s a conflict, right? Because obviously, you don’t want to lose that person. But you see that they’re outgrowing, you know, maybe the position?

[00:05:42] Jess Rose Oh, I really just want to chase this up a minute. I’m always like, you don’t want to lose somebody, like, you don’t want somebody to move on for your team because they were unhappy or mistreated. This is definitely from me being a teacher for too long. I’m always pretty excited when somebody graduates up out of a team I run. Like, of course, you want to make sure that people have space to grow, of course, you want to be actively making sure there’s career progression and more things to learn. But and especially in a job market, like right now, sometimes people like oh, cool, I could make a bigger salary jump bracket, they could make your title jump by leaving. And I’m always pretty chill with that.

[00:06:24] Dr. McKayla Yeah, yeah. Me too. And my husband is also managing a bunch of people. And but I see tension there, right? So I think he’s always really behind the people. But then upper management would be, yeah, but you know.

[00:06:38] Jess Rose The business case for retention.

[00:06:40] Dr. McKayla Exactly. Right. And the same for, for example, giving your raise, right. And I think, especially maybe the managers, you know, that are really like first line, they are more for the people because they have like some personal relationship, and then one level up, it’s already like, yeah, but you know, we don’t have the budget or we don’t want or we believe we can still keep that person, you know, for this for this cheaper?

[00:06:38] Jess Rose Oh, well, you know, let’s give it another quarter or two and wait and see.

[00:07:08] Dr. McKayla Yeah, exactly, right?

[00:07:10] Jess Rose Baffling.

[00:07:11] Dr. McKayla how do you do that as a manager? How do you speak up for your, for your people, or for your team? And h ow do you deal with that conflict as well?

[00:07:22] Jess Rose So I think that’s a really challenging one because I think that the conflict there is still the same. What do you do as an individual manager when the y eah, when your contractual, your fiduciary duties to your company, run counter to your individual ethical responsibilities to the people you manage? And or what happens when there’s a conflict between the needs of an individual and the needs of a team? And it’s not a good answer. And it’s not a reassuring answer. But it depends. If somebody is facing treatment that feels unfair, or targeted, or they’re in a position that I, generally, if somebody is in a position, I’m not okay, with being much more lovingly strident around, hey, this is a topic I would really bring to your external mentor A well, and then setting really clear limits internally about what, even as a manager, you are and aren’t willing to do. So somebody saying, Oh, you get the idea that, Oh, maybe we want to manage so and so out, go ahead and write them up for stuff that the rest of the team routinely does. You still have consent as a manager. So you could say, like, yeah, no, I won’t work in a space that involves maybe this kind of behavior.

[00:08:45] Dr. McKayla Yeah, yeah, I think this is really important that we are standing up for our own ethics and for our own beliefs and value and, you know, also behind our, you know, our people that we, you know, I think we have a responsibility as well for and yeah, so I yeah, I can totally see that.

[00:09:05] Jess Rose It’s easy to say in this kind of job market in the West as well. I think, a re you based perhaps in Europe as well?

[00:09:12] Dr. McKayla Yes. Yeah.

[00:09:13] Jess Rose Because, like, these days for many European job markets in tech, finding a new job feels to many people who are established for juniors or people getting your first job, It is hard. But for folks who’ve been in for a little while, and folks in different in high demand areas, getting a new job as a junior as a middleweight, or a senior, is not as difficult as it could be these days. Whereas if you’re having to engage in management behavior that you’re just not comfortable with, yeah, sometimes changing jobs is easier than making peace with uneasy ethical decisions. Yeah, sometimes that’s not true for everybody. And it’s a very, very privileged take for those of us who have a little bit of wiggle room.

[00:09:58] Dr. McKayla Yeah, I think so. And it really depends on where are you located? And what is your personal situation, right? Do you have dependents? Do you have like family or people that you have to take care of? And so on, which I think makes it much harder to say, you know, I’m going to not do that. But I think there, you know, there are boundaries, it’s, it’s one thing is playing along, and just, you know, or letting the other person also, you know, know, in the space that you have, right? You’re also like, as a manager, you also, you can’t just go and, you know, give advice directly conflicting with the interests of your upper management because that, you know, is a problem, but you can, you know, talk a little bit about, as you said, maybe asking you an external person, or also I think very well, you can say I’m disagreeing with this decision, right? And I advocated for you, unfortunately, you know, these were my boundaries here, for example, and let them know, I think that’s, that’s perfectly fine. Yeah. And I think that the problem is that if more of those things come together, people start thinking about leaving, right?

[00:11:06] Jess Rose And that’s not always a bad thing. As a manager, if you’re not able to offer someone, a place that is safe, and productive, and non-traumatic to work, yeah, it’s okay, that your people move on, and actually kind of preferable?

[00:11:22] Dr. McKayla Yeah, yeah, I think so, too. So another topic that I wanted to talk with you about, and it’s a little bit related to management, but it’s more related to teaching. So I don’t think you have to be a manager to teach, right? You can be, you can be, you know, Junior Dev, Mid Dev, senior Dev, right, so we can all learn from each other. But I really see you as a teaching, you know, expert here. Yeah. Because you’re, you’re bringing topics around programming, but also, you know, advice for hiring or you know, how to get hired. And to so many people, right, you’re, you’re also making these really mass, mass online learning events, right, occur online boot camps. So how is that going? Why did you start that and is that only for really junior people?

[00:12:12] Jess Rose So the first thing I want to do is like, I would absolutely love if there was an excuse for me, Oh, yes, I’ll just take all the credit. But the free online boot camps that I’ve started are absolutely not just me. So they started as 12-week boot camps, and they’ve been collapsed into a reasonably intense but still part-time, six-week boot camp. And this is built off of the freeCodeCamp curriculum. So they’re a registered nonprofit. They’re amazing. We could not do this without them and without their permission. But also the good people, I’m pointing behind me like they’re back there. The good people Class Central built a whole platform that lets us teach on so like, just really, and Ramon is my, my co-teacher. And he’s he’s just, it’s almost disgusting how lovely he is. Like, the learners love him and deservedly so.

[00:13:03] Dr. McKayla Cool. Yeah. So what do you teach there? Is it like really the 101 of programming? Or is it more advanced concepts? Who is your target audience here?

[00:13:14] Jess Rose So this last cohort, which just ended about two weeks ago, I should get back to work on those. We had 15,000 unique learners across two tracks learning either web development, which is HTML, CSS, accessibility, really, really intro level of like first steps of programming, or across JavaScript. And again, that sort of first steps with JavaScript, getting started. So really sort of introductory level. But we added some additional forums for peer support. We’ve got a very noisy Discord. And then some live stream lessons and question-answer to get people unstuck. We’ve had such a, so I would have expected oh, these will be beginners. We have back-end devs who wanted to try out web development. We’ve got folks who don’t want to go into tech, but they do want to build a website for their business. And the thing I was, I used to be a teacher and I used to be a linguist. And very selfishly, the thing I was, one of the things I was most excited about was the absolute range of the learners. We’ve got folks across every regularly inhabited continent. And folks joining us in this massive exciting range of first languages. I was just so, so people who are learning from their phones, people who are learning from the library computers, and I just really really loved this loud, chaotic, and so lovely and so supportive group of learners all helping each other out.

[00:14:49] Dr. McKayla Yeah, that’s, that’s really exciting. So I actually was thinking a little bit about learning on devices that are not high-end, right. And when I, when I started university, I couldn’t afford a really high-end computer not even a normal computer, right? So I was on this, I got, I got one of those really cheap computers from somebody that you know, gave it to me for free. And it was a nightmare. It was a nightmare to work on that. And nowadays, it’s obviously not the case anymore. And I’m really happy about that. But I was wondering what about, you know, people that don’t want to work on the phone or work to, you know, on a tablet, and I’m pregnant right now.

[00:15:32] Jess Rose Oh, congratulations. How exciting, how scary.

[00:15:36] Dr. McKayla Yeah. But it’s also a really cool experience because I’m thinking, like, this is my third child. So I know a little bit.

[00:15:45] Jess Rose Oh, you’re just fine. You’re like, duh, this happens.

[00:15:46] Dr. McKayla I know what’s going to happen, that I can sit here and you know, work on my comfortable devices. And so I tried a little bit to work on my phone and work on the tablet and so on, I still think it’s really difficult. What tools do your learners have?

[00:16:03] Jess Rose Did somebody, somebody did one of my friends talk to you about this? I’m deeply suspicious. So I’m going to try really carefully not to say too much. I’m working on a little side project around this problem. Because this is a problem I’ve been thinking about a lot. So right now, and if our dear listeners aren’t your viewers are, oh, gosh, what’s the noun? Our beloved audience, your beloved audience has a tool or has something in the space that I haven’t seen yet, please come and yell at me. But right now, I’m not seeing really good tooling. I’m not seeing a good way to write to the web from mobile devices.

[00:16:46] Dr. McKayla Yeah, it’s not there.

[00:16:47] Jess Rose And this is an ethical problem for me. Because right now we hear people talking about the next billion users, I love this. But in a lot of cases, we’re seeing people who are accessing the web for the first time, and I love it, and I live for it. But they’re accessing the web on a lot of constraints. So they’re usually on phones, they’re usually mobile-only is what we’ll call those kinds of learners. They may be accessing it in their third or fourth language, because you’re going to see global web primarily in English and French and Spanish. And they’re often constrained to really, really challenging limits on their, like their actual access to broadband or to mobile signal. And that’s something I’ve been thinking about a lot on the device level for this problem. If I went, I’m going to date myself terribly. But I got access to the internet, when I was maybe 13, or 14. And the device I use to access the web to read the web, I could also write to the web. And we’re effectively giving people this right only access to the web through smartphones. And that just, that doesn’t seem like enough to me. So there’s nothing great yet. And I don’t think I’ve necessarily cracked it myself. But in the next couple of months, I would like to, I’ve got a little thing I’d like to launch to see whether or not that might be a good tool.

[00:18:10] Dr. McKayla Yeah. Cool. I would be super interested in that. And I also think like, nowadays, I’m actually, I should actually be the whole day on bed rest. But two weeks ago…

[00:18:20] Jess Rose What are you doing? You should be doing this lounging.

[00:18:23] Dr. McKayla Yeah, I should. Right, yeah. But so now I’m allowed to be up a couple of hours per day, which is, which is great, but because I’m on this bed rest, right, and I only can lie down, I’m not allowed to sit actually, I experienced all these accessibility problems that, you know, couple of, you know, disabled folks also are experiencing and I’m like, right now, I really understand how difficult it is if you can’t, you know, type, write, if you have like these mobile devices. And I think there is really there isn’t a lot of you know, there’s so much space in there. And we should really be much more welcoming to people that can’t, you know, sit on this nice computer have their three monitors, right, the keyboard and the mouse. And it’s really I mean, it’s really frustrating for me to write a blog post to make an update on Git, right, to make a PR.

[00:19:12] Jess Rose I’m not ignoring you. I’m just grabbing a book to see, so rude, isn’t it? Turning away? Oh, heck, I must have hidden it somewhere. But there’s a really fantastic book from the late 90s that Tim Berners Lee wrote about the process of inventing the web. But I’ve got sort of a tab in the book because he said, Oh, okay, we had to sit down we had to define the bare minimum. What is the minimum viable setup you need to access the web? He said, Oh, you need to, you need some kind of CPU, we need some kind of monitor some kind of display. And one of the things that they specified as necessary for the web was, you’re going to need a keyboard. I think that’s the point that sticks me again and again, where I think, but we’ve gotten past the need for keyboard in so many other spaces. Yeah, it seems a bit lazy to have not gotten past it in sort of the ability to do simple web development.

[00:20:12] Dr. McKayla Yeah, yeah, it would be so great. Like, I would benefit so much from it.

[00:20:17] Jess Rose Oh, just the guilt I’ve got right now. I’m just like, yes, yes, I’ll get back to work. But we do currently have learned, well, in the last cohort, we had a number of learners who were accessing the course, all via smartphones. So they would post and we’d love to see them post, screenshots of their code to see, hey, where’s this gone wrong, but it’s going to be folks screenshotting their phone screen, and just the implication of how challenging it would be to write, I’ve tried it to write a bunch of CSS on your phone, oh, the absolute, like the strength these people have in their hearts not to throw it across the room.

[00:21:01] Dr. McKayla Yeah, definitely. Definitely. So another question that came to my mind is now you have this experience of, you know, teaching really beginners, and also in a different space, it’s a space of you are, you know, like this, this teacher now, and they’re doing an online course. But I’m also very interested in how can we actually bring back or coming back to the managing position, right, how can we teach and mentor within a team, right? How can we do that for juniors? How can we do that for mid engineers? Who mentors and teachers, senior engineers? How is that all, you know, the dynamic in a team? And I was wondering if you have like some experience around that and some thoughts around that topic as well.

[00:21:47] Jess Rose So I was really lucky. I was on a team several years ago now out at FutureLearn. With oh, gosh, Nikki, What’s your surname? I’m so sorry. I swear I know it. I’ve just forgotten it, because I’m a bad person. And Belinda Sockington, who are both unreasonably brilliant and fantastic managers. And a lot of that work on that team was around, because I have FutureLearn was that it was a MOOC platform. How do we, how do we encourage learning? How do we incentivize it? How do we balance it? And really, what kind of landed for me is it’s an ongoing conversation between the folks running these teams, the individual people, I think it may be one of those issues where there’s just no one size fits all. It’s a combination of saying, Hey, we have these options. Here are some off-the-shelf learning experiences, with starting a conversation and keeping up a conversation of what do you want to learn, what works for you? What’s best for you? One thing that I’ve encountered a couple of times in my career, which I’ve had a really, really hard time with and my opinion on it has really radically changed, is every now and again, I’d meet somebody who’s sort of mid-level or senior, so they’ve they’ve gotten themselves into a secure role. They’re feeling okay with it. And they wouldn’t be that excited about learning where they said, Yeah, I just want to do my job. But I want to go home. And I think the first couple of times, because nobody tells you, but you’re not going to start managing people and get it right right away. I’m going to stay awake late tonight absolutely obsessing over the ways I’m still not doing it right. But back then I was thinking, Oh, how can I, how can I make this person care about their learning? And these days, I think with the, with the world having gotten much more stressful, and me having enough experience to see that I think now that I was wrong. These days, when I meet somebody who’s like, well, I’d like to do my job. I’d like to do a good job at my job. And I’d like to go home, I don’t really need to move up. I don’t really want to stretch and learn more. I’ve gotten, yeah, like, that seems increasingly chill. I think it might be cultural as well, I think. I’m from the States originally. And I think there’s quite a bit more fear around employment in the States. Almost everybody can be fired at any time and that makes everything very exciting. And generally your health care is associated with your employment. So I think I see when I was younger and based in the States, there was a lot more. Of course, you have to keep learning, of course, you have to keep running, you have to progress. Otherwise, something bad could happen. And yeah, I think I’ve just gotten increasingly excited to see people set boundaries around where they put their learning and where they put their interests. Yeah. Yeah, that’s a very strange take for a teacher.

[00:24:47] Dr. McKayla Yeah. So actually, I was talking to Cat Hicks, just a couple of weeks ago. Yeah. And so we were talking about learning debt. And this whole topic brought us to something where I think, you know, learning is often something very externalized, right, where you say, Oh, I’m learning, let’s say I’m learning React, or now I’m learning Remix, right? So maybe the newest framework or, you know, a new a new approach for DevOps or whatnot, right? So it’s something that’s out of what you’re doing right now. And it’s a new technology, very technology-oriented as well, whereby I think at the company, there are so many, a little bit more how to call it but informal, or, you know, a little bit more tactic, learning experience that you actually have every day, right, which is, how do I communicate with this new person on the team, right? How do I, how do I understand parts of this codebase? Can we change the architecture for that without breaking something? And all of these are also learning experiences, which we are often not declaring as that right, so we are not saying, oh, you know, McKayla, today learned about new ways to do this architecture for us or to refactor that code, or, you know, she did, she learned about how this API works over there that she hasn’t worked about, right? This is very often not, I don’t think it’s so visible in the learning experience than if I would say, Oh, me, hey, let’s sit down and learned React. Yeah, you know.

[00:26:25] Jess Rose And I think that’s really valuable. Because even when you say something, somebody say, I think, oh, you know, I’m just going to chill and do a good job. And it’s so easy to generalize about brains and learning to, say, Oh, we know what we know about learning. In so much as we’ve learned anything about learning like self-assessment’s messy, the study of, I’m not nearly clever enough to have a good handle on neuroscience and learning. But there’s actually a fantastic researcher and author, Dr. Barbara Oakley, who does a lot of work on learning how to learn. And she’s been doing some work with Zack Caceres who’s a programmer, and I’m not going to tell, talk out of turn. But I believe they may be launching a project around how we learn programming skills relatively soon.

[00:27:11] Dr. McKayla Yeah, nice. Yeah.

[00:27:11] Jess Rose But we’re primates in changing environments. Even if we don’t think about it as learning, we are getting new situations and new stimuli, just like you said, I’ve got a new teammate, I’m going to learn to work with them. Oh, I’ve got this API. Oh, I finally understood what’s going on under the hood. Regardless of whether or not we’ve set ourselves a mountain path to hike a declared learning journey, there’s still learning happening. Yeah.

[00:27:37] Dr. McKayla Yeah. And I think that those chill folks, how you call them, right? Maybe they have also more capacity to actually see things that are, you know, people that are very on their journey of, oh, I want to learn React and the latest, you know, whatever, technology comes out right now, maybe don’t have the capacity to see, for example, oh, you know, now that the market changed a little bit, budget shifted, we have to work a little bit different with this team, or, you know, how can we make sure that our deadlines are, you know, approachable, and so on? So, yeah, I think learning really happens in so many forms. And, yeah.

[00:28:14] Jess Rose And I, yeah, I’ve always been really excited about that as well. I think resilience is undervalued in teams often. Sorry, this isn’t very confident or it is not very definitive, but I’m going to waffle about my biases as part of this. I really like thinking about resilience in individuals and in teams as a resource available. And I like thinking of people as resources, but like, someone being rested, somebody having the capacity, somebody being ready for a little tiny crisis, or a little weird thing. That feels like a resource right there. But I think often we really lean on productivity so hard. How can we get. what kind of developer experience tooling can we use to get 20% more? How can we make sure people are focused? How can we cycle our meeting? And we’re so focused on developer productivity and the productivity of technologists, I think we often sacrifice that flexibility and that resilience of having somebody who’s not under these productivity pressures to such a high degree. Like, we learn better when we’re chill.

[00:29:25] Dr. McKayla Yeah, yeah. And I think it brings us back also to, there was this blue code, right? People that are taking on responsibilities, right, blue work, sorry, blue work, that was what it was called, right? But people that are taking on some invisible work that are, you know, good for the team. And, and so yeah, I think this also for teaching, mentoring, learning, I think this can be one thing, and obviously, we shouldn’t get outdated too much. And, but I also think that it’s not changing every minute, you know, like, sometimes we believe, or we were made to believe, or this story lines around time, Oh, my God, you know, if you’re not doing every day something and..

[00:30:11] Jess Rose What do you mean you’re not using blank? I’m like, look, I’m very old, and I’m very tired. Like, I’m good.

[00:30:18] Dr. McKayla I think it’s totally fine, right. And there are a lot of technologies, that I mean, if you’re working on PHP, you know, a lot of the web runs on PHP, and it’s still, you know, a good technology, and it’s okay.

[00:30:33] Jess Rose Like, if you want to stretch a little bit, getting into some Laravel is really, really exciting. But if you write PHP, you can hang out and get better at the core stuff of what you do. And do a good job. Like, you don’t have to run as hard as you can, as fast as you can forever.

[00:30:51] Dr. McKayla Yeah, I think they’re, they’re, you know, good choices to make. And I’m definitely for growth and for learning. But sometimes people are just burning, you know, mental calories. I learned so much. I mean, I’m actually a learner, right? I love to learn. But most of the stuff that I learn, I never used. It’s not very productive, right?

[00:31:16] Jess Rose Yeah, but not sorry, you’ve invited me on here. And I’m just up here ready to blow you. But yeah, this sort of cult of productivity, not that you’re espousing it makes me very, very, and when I talk to new learners, and they say, oh, okay, I need to learn this, and this, and this, and this, and this, and this. And I’ve heard these words, and I need to learn this. I’m like, Babe, you can, you can show we can all chill. Like, we don’t have to learn any frameworks yet. We don’t have to learn any ops yet, we can just chill and learn the core stuff. And as these are like, one thing I really like to encourage, especially with new learners, or learners new to a specific space, is to go ahead and get some kind of digital or some kind of physical space where you can dump stuff. Some people like Notion, I hate Notion a lot. I quite like Obsidian. I don’t care what you use, as long as you’re happy about it. As you’re seeing all these terms, just chuck them in a big doc. Okay, well, I keep seeing Angular, I know Angular is a thing, should I learn it? Don’t worry about whether or not you have to learn it next, just go ahead. And when you see an article about it, throw it in the slush pile. I call it my link dump for early learning. And that means once you’ve got through the foundational stuff, you say, Okay, I’ve learned enough JavaScript where I can write. And I like setting these little tiny interim goals to say, Well, I’ve learned enough JavaScript where I’m able to make simple bug fixes in this open source project I was interested in. I’ve learned enough. And one thing I’m excited about is the The Art of Learning code, or the art of reading code, which is something Felienne… is an academic who’s done a lot of work in the space.

[00:32:59] Dr. McKayla She’s from Leiden University.

[00:33:01] Jess Rose Yes. You’ve talked to her already. I bet.

[00:33:02] Dr. McKayla I did my PhD with her in the same room. Roommates. Yeah.

[00:33:06] Jess Rose Did you? Did you?

[00:33:06] Dr. McKayla Yeah, we were roommates. Yeah.

[00:33:07] Jess Rose Oh, is she just as delightful to study with?

[00:33:10] Dr. McKayla Yeah, she is wonderful.

[00:33:13] Jess Rose But yeah, so really getting through the basics of well, I set out to do X, I’m doing X. Now it’s time for me to go look through my link dump file, and see, wow, it looks like I’ve got like 40 different articles about Angular. Maybe that was important that that’s enough for what I want to learn next. Yeah.

[00:33:34] Dr. McKayla Maybe something else that comes to my mind here is also that I think fundamentals are really important, right? So I like for example, the approach of Dan Abramoff, right? He has like this course of chess JavaScript, which it means that you’re not starting with React, right? You’re starting with JavaScript and with the fundamentals around it, and I wouldn’t say it’s really a course for really real beginners. But it’s like if you got a little bit of your hands dirty around JavaScript, it’s really nice to go in and then check. Did I actually really understand what’s you know, what’s happening here? And then if you have these fundamentals, I think it’s so much easier to build upon that dump. And dive into React or whatnot, right? Whatever technology you want to add here.

[00:34:21] Jess Rose I think this comes back to something I’ve been thinking about a lot in how we learn and teach. But like, where we abstract things out. Soin the boot camp, we’re using Free Code Camp to teach, which is a, it’s an in-browser sandbox, you don’t have, and they’ve just come out with a new beta curriculum for web development I’m in love with. And it previews that these are files and that you have to link to these files. It is very, very good. But it’s still a sandbox, it’s still an abstraction. And the places we tend to send learners next are things like, Okay, we’re going to head over to CodeSandbox, we’re going to head over to Glitch which are still abstracting away a lot of really, and then even when you look in to professional tooling and frameworks, they say, Okay, let’s get into React. A lot of the power behind these frameworks are that they abstract away or that they compress, or they obscure or or smooth over some of the fundamentals of how we work with the core technology, maybe JavaScript or the way, Tailwind is a weird abstraction of the things you’d like to do with CSS. And I don’t have a problem with, I think it’s a teacher, I’d have a hard time having a problem with abstraction. But I think that thinking really carefully about how we do this, when we abstract things , and how we signpost what’s been taking, or what’s been added gets to be really valuable.

[00:34:47] Dr. McKayla Yeah, I think so too. Yeah. When I was starting to learn programming, I struggled a lot with abstractions because I just wanted to know, or not only with abstractions, but also like, there wasn’t a lot of abstractions. It was actually very, very raw, right? It was like, Oh, you have an Eclipse IDE open and you’re writing Java code. Bbut then you have like, oh, let’s say, you know, public wide string, main, whatever, right? And it’s just like, you just do it, right. And I’m like, why? What does it mean, don’t worry about it.

[00:36:22] Jess Rose And then we’ll cover this later. And so by the time, we will have covered it, yeah… Having been a linguist, I fear that I mentally map language learning to programming language learning, even when it might not be entirely suitable. But I see this happening in human language education as well, where we say, okay, cool. Here’s how, we keep we start people in the present perfect tens for a lot of languages, I see the cat, I drink the water, I walked to the store. And we don’t send them into a present perfect world. And I think that’s true with programming as well to say, Okay, well, we’re going to give you this sandbox, or we’re going to give you this framework, which abstracts away a lot of the complexities of the grammar or the the nuance of, and I think it’s really valuable to talk about the culture of the language we use around programming and really the culture of, of the structures we build, because it’s not transparent to people. I met with a learner in person, what a delight, in person last week. And without thinking about it, I said, yada yada yada bikeshedding. And thank goodness, this learner was confident enough to be like, cool, what the heck are you talking about? I was like, oh, gosh, that’s just something we say. We say it as though everyone’s going to understand it. And it means to get sidelined to get distracted with little unnecessary details. Just like okay, cool. You should just say that, it’s less complicated.

[00:37:55] Dr. McKayla Yeah. I think it’s not always that easy to be always aware of how you do it. But I recall the time that I started at Microsoft, and, you know, when you start there, it’s full of acronyms. And they mean, they mean something completely else inside Microsoft and what it would mean outside, and it really takes quite some time. And then a lot of people get very blind to it, and you know, just start using it as well. And you know, you start talking this gibberish. Nobody else can understand. Yeah.

[00:38:32] Jess Rose But like, from a linguistic perspective, that’s because that’s identifies you as a member of the in-group, doesn’t it? How fascinating. Yeah, incredibly interesting. Oh, no, no, I absolutely refuse to spend the next three days hyperfocused learning about weird Microsoft acronyms. It’s so tempting.

[00:38:49] Dr. McKayla Yeah, there are a lot. But I think it’s the same with code reviews, right? And with sometimes how people say, oh, you know, we have this style of giving feedback to each other. And in my code review workshops, I always talk You know, I always try to have people come to an agreement that we need to use language and also, you know, phrase that in a respectful way, that’s not only for the internal, you know, internal team to understand. Because there are newcomers, you know, in the team, maybe somebody will look at that, what you wrote two years from now, right, and still should be able to understand it. And so I think it’s really good if we be clear about those bridges that we built that, you know, are this internal behavior and language that we are using that it’s only, you know, it’s an insider joke, and so on.

[00:39:47] Jess Rose Yeah. Yeah. And I think we’re often really chill about that in tech. Yeah, oh, here’s a glossary of technical terms you need to know to do the thing. We’re, we’re cool about that. There seems to be a bit more resistance around when shared language or shared norms, or shared language structures around things like code reviews are proposed because we don’t need that we know how to talk to each other. I hope I’m not putting you on the spot. Are you one of those lucky people who speak like nine languages?

[00:40:15] Dr. McKayla No, not nine.

[00:40:15] Jess Rose Oh, only five?

[00:40:17] Dr. McKayla Maybe, yeah. German is my mother tongue, right? English, Dutch, Italian, and a little bit of Spanish.

[00:40:28] Jess Rose A little bit of Spanish. Look at that. The fantastic thing about chatting to many folks from Europe is, is y’all always have this very, very beautiful, very casual, like humble brag at the end, you like, you know, just a little tiny bit of Croatian. I’m terribly jealous. Yeah, like recognizing that folks aren’t going to be coming to, coming to these code reviews. And I really liked that you highlight that they’re going to be coming to the uncoupled in time. I love this idea that when you leave a code review, when you leave feedback, when you leave a pull request, when you leave code, you’re leaving a little artifact of understanding behind. So to say, Cool, we’ve standardized how we talk about these, we’ve created a shared language for them. Because when we go into the far scary future, we want these to still make sense.

[00:41:23] Dr. McKayla Yeah, I think this is really important.

[00:41:26] Jess Rose But also making them like giving a shared language around, hey, maybe English, or if we’re doing the, if we’re doing the code review, in Dutch, I’m in a bit of trouble. But maybe the language this code review is in is your second or third or fifth? Let’s go ahead and have some shared language have some shared structures around feedback to lower the cognitive load? Yeah, well, can we talk about cognitive load? I imagine you’ve done it tons of times on the podcast. I imagine many programmers are familiar with it.

[00:42:00] Dr. McKayla Yeah, we also have to be a little bit careful of the time now. But maybe the last thing that I want to add here is I’m writing a book on code reviews, right?

[00:42:10] Jess Rose Are you?

[00:42:10] Dr. McKayla Yeah, I’m right now in the middle of the feedback section, right? So how to give feedback, how to give respectful feedback, and how to communicate with each other and also cultural right? So how do we deal with, it gets really hairy there, right? So yeah, what are different cultures are expecting, what’s respectful there, you know, how much you know, how harsh should a feedback be? Or can it be or, you know, what is seen as polite and so on? And this is not only, it’s not only, it’s not one standard thing, right? It depends on who’s on the team, what’s the background? What’s the culture? But I think the expectation, setting the right expectations, and, you know, explicitly stating that, and talking about that, reflecting on that, and, you know, learning how others see those things and learning how, you know, like, if I would talk to you I’m originally from Austria lived in a couple of countries, right? You’re from the States you’re, you’re in the UK now, right?

[00:43:12] Jess Rose I am, yeah, everything’s just fine here. Very chill. Not weird.

[00:43:10] Dr. McKayla Yeah. And then maybe we have another person from Croatia and then somebody from India, right. And so I think it would be really important for us to talk about how we understand different terminologies, how we understand different you know, expressions in my career workshops, sometimes I have discussions about looks good to me. And I love those discussions because, you know, it’s just a simple term looks good to me. Most of the time, people just, you know, have the acronym for it, right?

[00:43:47] Jess Rose Like it’s the thumbs up emoji in my head.

[00:43:50] Dr. McKayla Exactly or you know, LGTM, right? And then some people are like, oh, yeah, this means you know, that I looked through it and you did a good job. And then the other person has no, you know, looks good to me means that you haven’t looked at my code.

[00:44:07] Jess Rose You just glanced at it.

[00:44:07] Dr. McKayla Yeah, you just want it out of your way. Yeah. And the other person says, Oh, this means, I don’t care.

[00:44:07] Jess Rose Sometimes, sometimes.

[00:44:16] Dr. McKayla And having those discussions in the team, you know, and understanding where everybody is coming from, and that they actually use, you know, one simple terminology. And everybody on the same team understood something else about it, I think it’s so valuable, right? And only by these discussions, you know, we can really understand what’s behind those terms and the way that we are communicating. But I’m also getting a little bit carried away.

[00:44:45] Jess Rose No, no. So I’m going to ask you about your book. And yeah, I’ve just had a friend tell me that there are some questions you’re not supposed to ask about someone’s book. So I won’t ask any of those. Instead, I’ve been told you’re supposed to say, I hope it’s going well. I’d like and I think it might be useful for hopefully some of the audience as well. I had an idea for a book that sounded really fun in my head. And I’ve sort of broken it down into chapters into essays and trying to write a couple of chapters. And my goal in writing a couple of essays is I’m trying to talk myself out of writing a book.

[00:45:22] Dr. McKayla Yeah, I’ve heard that. Yeah.

[00:45:23] Jess Rose Do you have any advice for not, like, it’s the worst. It’s the worst idea ever. No one wants to write a book like, please, please, please.

[00:45:32] Dr. McKayla No, I don’t have.

[00:45:32] Jess Rose No, I want to know what you’re doing.

[00:45:34] Dr. McKayla But I saw on Twitter that you said that and I thought, like, yeah, you won’t be able to not write a book with this approach, right?

[00:45:42] Jess Rose I love that it sounds like a th reat, where you’re like, you’re going to write that book.

[00:45:45] Dr. McKayla Yeah, it looks like. I think if you’re breaking it up in essays, that become more manageable. I think you will write this book. Yeah.

[00:45:55] Jess Rose But for our beloved audience, for your beloved audience, they shouldn’t write a book, they should, they should definitely do things that are not writing a book. Like, it’s a terrible idea, isn’t it?

[00:46:04] Dr. McKayla I can’t, I can’t say it’s a terrible idea.

[00:46:06] Jess Rose Are you enjoying it?

[00:46:08] Dr. McKayla I don’t think it’s a good idea. But I think a lot of people would like to write a book and I would be the last person that would discourage them. Because I was always discouraged to write a book, right? But I think I know what mess I got myself into.

[00:46:25] Jess Rose That’s what I’m looking for, there we go.

[00:46:26] Dr. McKayla I would just tell the people that you’re getting yourself into a big mess. But it’s okay. You know, it’s okay. I think people can write books, and people should write books.

[00:46:36] Jess Rose The world is messy. It’ll be fun. Oh, no, this is the opposite of what I was looking for. But it’s so delightful.

[00:46:42] Dr. McKayla Yeah, well, Jess actually, this brings us to the end of our show, I really enjoyed talking with you about all of that. And I think we should talk about cognition and cognitive load, and you know, all of that. So maybe I will invite you again, to another session

[00:46:58] Jess Rose I’d love to come back any time. But I’ll also pass you some contacts for folks who are much better at this than I am, I would just go back and be like, so books. And really, your audience deserves better.

[00:47:13] Dr. McKayla Okay. And we will both all the things that we talked about down there also, maybe the Twitter handle or LinkedIn profile or whatnot, from the person that you mentioned in the middle, where you forgot the last name, I put it there. So she will be there as well. And then, yeah, so is there something that you want to wrap this episode up? Or?

[00:47:36] Jess Rose Oh, gosh, can I bully your audience? Is that doable? Is it permitted? I’ve been doing advice calls all this week. And the big thing that I keep coming back to when I chat to people, I do do them just to be mean to people who are smarter than me is right now everything, everything is just so big and so loud and so stressful. One thing I’ve really enjoyed exploring with people is looking at ways that what they have to do, what they think they have to do can be smaller and softer and quieter. And I think that yeah, I’d love to gently bully folks to consider how what they need to do could be a little less. Maybe you don’t have to write that book. It can just be an essay.

[00:48:24] Dr. McKayla Yeah. Yeah. I like that. I actually did that this week with myself and just gave myself permission to let go of a couple of balls that I was juggling. And I think it’s delightful. We should really do that. And I think it’s it’s the time that we are many people needed. Not everybody, right. I think a lot of people needed.

[00:48:41] Jess Rose There’s going to be one person out there who’s having a real good week. I just haven’t met him.

[00:48:46] Dr. McKayla Or yeah, or that cat very nicely distracted by all of the work and don’t have to think about the stuff that’s going on. Yeah. Okay, so Jess, thank you so much. Thank you. It was really a pleasure talking to you.

[00:49:01] Jess Rose Thanks so much. I’ll let you go and thank you again. I won’t get into a thank you loop with you.

[00:49:06] Dr. McKayla Okay, bye-bye.

[00:49:06] Dr. McKayla This was another episode of the Software Engineering Unlocked podcast. If you enjoyed the episode, please help me spread the word about the podcast, send episode to a friend via email, Twitter, LinkedIn. Well, whatever messaging system you use, or give it a positive review on your favorite podcasting platforms such as Spotify or iTunes. This would mean really a lot to me. So thank you for listening. Don’t forget to subscribe and I will talk to you in two weeks. Bye

 

What hinders your career as a developer? – Mindset.

In this episode, I talk to Dagna Bieda. Dagna is a software engineer turned career coach who has mentored 50+ clients, some of whom worked at big brand names (such as LinkedIn, Amazon, Google, Disney), as well as much smaller businesses. Whether it’s for promotion, salary increase, landing a new job, or becoming a CTO, she’s committed to helping her clients reach their full potential.

We talk about:

  • how Dagna experienced a plateau in her career as a software engineer
  • what she did to overcome this stagnation
  • Cultural differences in the US and other countries
  • how she helps immigrants like her fit into their American workplace
  • and common limiting beliefs engineers have and how to overcome those.
Dagna Bieda Engineering Coach

This episode is sponsored by Tonic.ai – where your data is modeled from your production data to help you tell an identical story in your testing environments.

Links:

Subscribe on iTunes, Spotify, Google, Deezer, or via RSS.

Transcript: 

[If you want, you can help make the transcript better, and improve the podcast’s accessibility via Github. I’m happy to lend a hand to help you get started with pull requests, and open source work.]

[00:00:00] Dr. McKayla: Hello, and welcome to the Software Engineering Unlocked podcast. I’m your host, Dr. McKayla. And today I have the pleasure to talk to Dagna Bieda. She’s a software engineer turned career coach for software engineers. She’s been coding for over 10 years and has been a coach or has been coaching for the past two-plus years.

[00:00:24] Dr. McKayla: And today I will learn everything around how to get a job, how to be successful as a software engineer, and how to advance your career. But before I start, let me introduce you to an amazing startup that’s sponsoring today’s episode, Tonic.ai, the fake data company. So what does Tonic.ai do? I’m sure you know how complex and cumbersome it is to create quality test data.

[00:00:51] Dr. McKayla: It’s a never-ending chore that eats into valuable engineering resources. Random data doesn’t do it and production data is neither safe nor legal for developers to use. What if you could mimic your entire production database to create a realistic dataset with zero sensitive data? That sounds amazing, right?

[00:01:10] Dr. McKayla: Tonic.ai does exactly that. With Tonic.ai, you can generate fake data that looks, acts, and behaves like production data because it’s made from production. Yet, Tonic.ai guarantees privacy so your data sets are safe to share with developers, QA, data scientists, heck, even distributed teams around the world. Visit Tonic.ai to sign up today or click the link in the show notes to get a free two weeks trial sandbox.

[00:01:38] Dr. McKayla: Well, Dagna, I’m, I’m so excited to learn everything that, you know, you have been through. in your career as a software engineer and how you actually help software engineers get the most out of their career. So can you tell me a little bit, how did you go about to this shift from, you know, being a software engineer, yourself to being a full-time career coach for software engineers? Why did that happen and how?

[00:02:03] Dagna Bieda: Absolutely. And first of all, thanks so much for having me on your show, McKayla. Essentially, you know, in my own career, I have seen some incredible accelerated progression in my own career. When I started programming, I went from a junior engineer to a senior engineer fairly quickly.

[00:02:22] Dagna Bieda: It happened in less than three years, which, it takes a lot more for a lot of engineers in our industry. And it was all because of the people that were in my corner that supported me, that mentored me. And because I was very relentless about asking them for feedback to tell me how I can improve, how I can do better.

[00:02:44] Dagna Bieda: And as I kind of like, went up in my career in my senior engineering role, what happened is I experienced this plateau, you could say. And I recognized, later on, you know, in hindsight that I was just working really hard on the wrong things, but I didn’t have that kind of support that I needed that would have showed me like, Hey, Dagna, what you’re focusing on is not going to take you to that next level.

[00:03:11] Dagna Bieda: So after having that aha moment, I recognized like, okay, I was going super quickly, advancing in my career in the early, in the beginning, because of that support. Later on, I didn’t have that support. I had to figure it out by myself. And so , it was so much slower of a process when I was trying to figure it out myself.

[00:03:32] Dagna Bieda: So I decided that, you know, this is a great idea for a business because not everybody, being a software engineer, has that support network that they could lean on. So I could step in and become that support network for my clients. And that’s exactly what I do today. And it’s just amazing. And I’ve helped so many clients, you know, I’ve had over the past three years that I’ve been coaching, I’ve helped over 50 engineers.

[00:03:59] Dagna Bieda: They had various backgrounds. Some of them work at fan companies. Some of them work for like small mom and pop shops, and they had experience ranging anywhere from 2 to 20 years of experience. Some were self-thought. Some had college degrees, some are boot camp graduates. And you know what I do right now as a coach and that lits me on fire and, you know, brings a lot of fulfillment to my life is to help my clients find that in their life and in their career.

[00:04:28] Dr. McKayla: Okay. And so, what does it take from a junior to become a senior? And why was there no support for you when you were a senior to get, you know, to the next level? Maybe what was your next level? Was it like a staff engineer that you wanted to become, or is it more in a managerial role that you wanted to develop yourself? So what’s the next, the next step?

[00:04:52] Dagna Bieda: I wanted to become a team lead and team lead is like a mix of both, right? On one hand, like from an HR perspective, maybe you are not on the org chart on top of like a team, but you are leading your team with your technical expertise. So like it’s a mix of the managerial and the engineering responsibilities.

[00:05:09] Dagna Bieda: The big reason why I had the plateaued is because I moved from Poland to the United States. And as an immigrant. I didn’t realize that, you know, the way I was thinking and going about work, while it made perfect sense back in Poland, it didn’t necessarily set me up for success in my American workplace.

[00:05:30] Dagna Bieda: And also like right now, a lot of my clients are immigrants moving from one country to another. And what I help them is to understand how their cultural upbringing affects their performance at their workplace. Because for me that was one of the blockers, right? I had to really kind of like understand my new situation, my new culture, how I was fitting in what was stopping me, and for example, there’s this one situation that I can, that comes to mind is when, when I posted a joke in slack that I thought was super funny and, and being an Eastern European, we have this dark sense of humor.

[00:06:06] Dagna Bieda: And, you know, in this new American company, what happened was I was called to HR and I was told that that was inappropriate. And I was like, what? That was super funny. What are you talking about? So, that was like one of the things that I had to realize, like, okay, This is the type of sense of humor that just doesn’t go with my workplace.

[00:06:27] Dagna Bieda: So I can, you know, keep doing that on my own and private, but this is not going to help me in terms of work advancement, right?

[00:06:34] Dr. McKayla: So can you, can you go a little bit more into this in this cultural aspect, right? Okay. There are the jokes that obviously, there are cultural differences. What’s funny, what’s not, what’s inappropriate, right, and so on. But is there also like for leadership because you were talking about tech lead, right? So it’s, how, how can you show the outside world that you’re ready for it? Is there a difference in your experience?

[00:06:58] Dagna Bieda: Yes. So that’s another like cultural aspect, you know, like, there’s this specific tool that I use for analysis that helped me really map those differences. And it’s called the Hofstede model. And essentially, it has, like, this database that compares different countries on, like, six different dimensions, right? And one of the things for the United States specifically is that individualism is super highly rated, right? And Poland is more rated closer to being like a collective culture, right, where we work together towards success. And I can tell you, for example, there was this initiative that I was leading in my American workplace.

[00:07:45] Dagna Bieda: And what happened was I was talking to different people, different types of stakeholders. They agreed with me. So I thought, okay, if I have a buy-in, something’s going to happen now, right. Because that’s how it would have worked back in Poland, right? In the American workplace, I was expected to, once I picked up the initiative to lead it from end to end. And, you know, I wasn’t aware of that. So, you know, I got all the stakeholders on board. Everybody agreed to my idea and then nothing happened, and I got so frustrated. I’m like, why there’s nothing happening? Like, didn’t we all agree, should we all collaborate together? And because they didn’t realize that my cultural upbringing was different, nobody could give me that kind of feedback, right?

[00:08:29] Dr. McKayla: Yeah.

[00:08:29] Dagna Bieda: They just didn’t know how to support me there.

[00:08:32] Dr. McKayla: I think this topic is so interesting because right now I’m working on the book on code reviews and I’m working a lot about feedback and disagreements, agreements, and how to solve that, right, how to collaborate together.

[00:08:45] Dr. McKayla: And so one book that I’m actually deep diving into that I found really interesting was The Culture Map. I don’t know if you are familiar with, from Erin Meyer, and there she…

[00:08:55] Dagna Bieda: Oh, that’s interesting. Okay.

[00:08:56] Dr. McKayla: Yeah, you can have a look at it and she also looks at a different perspective. And one is, for example, agreements, how are people from different countries agreeing? And for example, Germany or Austria, right? It’s a little bit more collaborative or, you know, collective, right? Collective agreement.

[00:09:11] Dagna Bieda: Exactly.

[00:09:12] Dr. McKayla: It’s really, really important. So it takes a very long time until everybody agrees. And it’s a little bit an upfront process, right? Whereby in America, it’s more, well, one decision is made by the leader, but then this decision can also be questioned along the way, right? And so it’s quicker, quicker to get started, right? And one person brings up and says, okay, this is how we are going to do it.

[00:09:34] Dr. McKayla: And then people are working on this vision. This is how she explains it, right? But yeah. And then over time, you can actually challenge that a little bit, right? You can say, but maybe, you know, we should change course because we have more information now and so on. And in Germany, it’s exactly the other way around, right? So we are investing a lot in this process of collective agreement, on this is the right way to go. But because there’s a lot of, you know, a lot of time and information that goes into this process, it’s really hard to challenge that later on, right? So after three months of discussing that we are going to do that.

[00:10:09] Dr. McKayla: It’s really hard to say a month later, oh, maybe you should change that again, which I think is perfectly fine in America. I don’t know. Can you see that as well? Is that something that…

[00:10:20] Dagna Bieda: Oh, absolutely. Yeah, absolutely. And another interesting thing is like, for example, in terms of the short-term versus long-term orientation, in the United States, the culture as a whole is on the Hofstede model described as a more short-term oriented. So the company would be more like working towards your quarterly goals, right? And when I work, for example, with some of my clients that have Asian upbringing and working in the United States, that their cultures tend to have this long-term orientation.

[00:10:51] Dagna Bieda: What happens is, for example, in an interview, whenever they present themselves, they’re talking about, you know, building a solid foundation for a long term. But what happens is. American companies don’t necessarily value that, right? Because, and they even have this, this saying here to hit the ground running, right? So when I work with my clients, I tell them, look, if you’re starting to work in a new workplace, American workplace, you want to present yourself as someone who’s operating fast and can bring results really quickly because of valuing of that short term results rather than long term.

[00:11:27] Dr. McKayla: Yeah, yeah, yeah. I can totally see that. So you are working as I understood it, you’re working with a very range of experiences, right? So you said people are coming from boot camp, but it’s just coming from boot camp with no experience and want to go into the workplace or is it more, are they already, you said two years, something like this.

[00:11:48] Dagna Bieda: Yeah.

[00:11:49] Dr. McKayla: Is it really an even distribution here or do you see that it’s cooling in one direction, right? More the junior engineers in the first, let’s say, five years or more the senior engineers or midterm, maybe?

[00:12:02] Dagna Bieda: I would say that the majority of my clients are the mid-level professionals and the more senior professionals that are kind of like finding themselves a little stuck, maybe not sure about their next step.

[00:12:13] Dagna Bieda: And they’re looking for, you know, figuring out first of all, how are they stopping themselves? Second of all, how to find fulfillment in their career rather than chasing money or promotions. And, you know, the truth is there’s, to my knowledge, nobody else that offers the type of services that I offer, which is working on the engineering mindset for success, right?

[00:12:36] Dagna Bieda: And you know, what got you to that senior engineer position was very likely your technical foundation. And I do not work on that technical foundation while having been a software engineer myself, I can definitely send my clients some pointers, like what are the gaps that they have in their skill set that they should, like, fill up in terms of you know, career advancement, but what I really am passionate about and what I really love to focus on is that mindset piece, right? Like, what kind of blind spots do you have? What kind of limiting beliefs do you have? I actually like to say that I moved from programming computers to reprogramming human minds. And it really beautifully describes what it is that I do, because once you change your mindset, I put it this way.

[00:13:21] Dagna Bieda: How you think is how you act. And how you act is the results that you’re getting then from, you know, the reality, the real world.

[00:13:31] Dr. McKayla: Yeah. Can you tell me some limiting beliefs? I also regularly reflect on mine and, right now, you know, I’m also in a, this state where I think, because of the pregnancy and the very new birth, I think this is such an inward-facing period in my life again, right, where I’m thinking, like, what are the beliefs that I have, and that are holding me back and so on. I would be really curious, can you give some examples of beliefs that engineers have, maybe that you have seen patterns?

[00:14:00] Dagna Bieda: Absolutely.

[00:14:01] Dr. McKayla: Yeah, that hold them back.

[00:14:02] Dagna Bieda: There are two that are super common and super popular. Number one is believing that your work speaks for itself, which it doesn’t. It does not. Like, okay, if someone else works on the same code base with you and they can look at your code, they could see the value that you bring to the table if they put in the work and effort to actually go into the code, look up what it is that you committed and, you know, have some thoughts on that.

[00:14:28] Dagna Bieda: But, in order to be successful in an engineer’s role, what you really have to do is market yourself. You have to talk about your achievements and accomplishments and not expect everybody in the company to just know what it is that you’re doing, because people just don’t know. They have their own work that they’re prioritizing.

[00:14:44] Dagna Bieda: And it’s very critical to figure out if you have that limiting belief of work speaks for itself because again, it doesn’t. That keeps a lot of talented engineers stuck in their career. That’s number one. The second one, which always cracks me up, but I used to think that way too. There was a moment, and I have to be honest with you, there was a moment I thought the same way. And the second limiting belief is essentially, that you are surrounded, as an engineer, with idiots that just don’t want to listen to your amazing ideas. And here’s the thing, whenever, as an engineer, you have an incredible idea and you want to pitch it. You want to get people on board.

[00:15:25] Dagna Bieda: It’s super important for you to communicate about it in a certain way. You have to be able to negotiate. You have to be able to like really describe it, but describe it in terms of the priorities of your stakeholders, right? So if I’m going to, and I’m guilty of that as well. Like, there was this two projects that I worked on in my most recent engineering job, and I was responsible for taking care of a mobile app.

[00:15:48] Dagna Bieda: And it was a pain in the butt that the build of the app was taking a few minutes, you know, and I just felt it was so inefficient. So I went ahead and I refactored how this particular app was built. And I reduced the build time from few minutes to, like, 30 seconds. And I was so proud of myself, you know, I was so like, yes, this is amazing in reality, what happened is, that what I did that work that I did, impacted my life and one other engineer. Nobody else cared. It didn’t matter. Then I had a second task or project that I worked on in the same company, which was creating a deliverable for a client, super boring, a lot of copy and pasting, a lot of like following steps. I did not enjoy doing that at all, but guess what?

[00:16:36] Dagna Bieda: Whenever it was deployed and the client could spread the mobile app to their own client base, I got praise from the sales representative from our BA, from the project manager. My tech lead was like, wow, Dagna, that was a super fast turnaround. You know, everybody across the organization was like, yay, success.

[00:16:57] Dagna Bieda: And I’m thinking to myself, Wow. I would have never in a hundred million years figured this out on my own. If, if you ask me as an engineer to like put a value on this project versus that project, I would’ve thought that the refactoring was better. So here’s long story, but essentially what I’m trying to say is, it’s very important to understand how what you are doing trickles, like, how what you’re doing fits into the business as a whole, the business that you’re working for and how to communicate about it. That’s the, really the key of what I was trying to say here.

[00:17:35] Dr. McKayla: Yeah, I think that’s really, really important, but I also found myself working at companies where. You are assigned things, right? So you’re not really asked for your opinion. if this is now really helpful or not or, or something like this. And then maybe reassigned as well, right, which I think there are, there are several impacts to that. First of all, what would be your advice for people that are assigned projects where they also know maybe doesn’t look like this has a big impact on the company, right? So it’s also limiting my ability to advance my career here. What should you do? How do you communicate about that? What’s your advice?

[00:18:18] Dagna Bieda: Yeah, we’re kind of going back to, you know, to that communication piece, right? So, first of all, one thing that I want to share the assumption I’m coming here up with is that whoever assigns you that work is not a mind reader, so they would not necessarily have your priorities, your career priorities in mind.

[00:18:37] Dagna Bieda: So it’s important to, whenever you are asking for work to kind of like be proactive and say, Hey, I am really working towards becoming, let’s say a staff engineer, becoming a team lead, becoming an engineering manager, can you help me out and assign the kind of work to me that will help me achieve that goal, right?

[00:18:58] Dagna Bieda: Asking for that help and support because most of us are nice and friendly people, and we want to help. But we don’t always know what’s the best way to provide that help. So being kind of like your own advocate and talking about what it is that you want to do is really critical here. A second thing is, you know, whenever you’re in those one-on-ones with your manager, is to really ask for feedback. How are you doing, how you could be doing better, and creating that safe space for feedback. You know, something that is my strength actually, and really helped me with accelerating in my career early on was that relentlessness in asking for feedback. Like, I had this team lead that worked with me that helped me become a senior engineer because he kind of vouched for me in the meetings that I wasn’t part of.

[00:19:53] Dagna Bieda: And he really said like, Hey, she’s ready. She can handle it. She can be a senior engineer. I think she’s ready. And that’s what got me the promotion. But when him and I worked together, I was telling him, look, I really want to know. Don’t worry. You’re not going to hurt, hurt my feelings. I want to advance, I want to be hitting the ground running, and I want to really work on the things that are holding me back.

[00:20:16] Dagna Bieda: And, you know, one of the critical pieces of feedback that he initially didn’t want to give me, because it felt like maybe he would hurt my feelings or maybe was too much. I don’t know. But after I was pushing and pushing for that feedback, he essentially told me, Dagna, fast is great. But reliable is better.

[00:20:35] Dagna Bieda: And that advice changed how I was thinking about writing code, because I was really prioritizing being fast, delivering as soon as possible, right? But sometimes my fast solutions were not fully thought out. And a senior engineer really has to have that understanding of how the engineering decisions impact business, the team and what it is that, that they’re trying to accomplish as a team.

[00:21:03] Dr. McKayla: Yeah, I’m thinking back of a time, right, where I think it’s totally true that we have to go and advocate for ourselves, but I also wonder how many people are a little bit stuck in that, well, this is what the business needs, right? I understand that you want to advance your career. You want to become, you know, a senior engineer or a tech lead or whatnot.

[00:21:27] Dr. McKayla: You know, saying that the project doesn’t seem to have such big impact, right? And big impact, I think has to do with the stakeholder. Who is it visible to, right? Who is going to see and hear your name and, and so on. I thought, I think there’s a little bit of political background towards that as well. Have you worked with people that are just really stuck in a situation where there is nobody that really advocates for them too much, or they are assigned a project that’s, you know, low visibility and they’re stuck there. Would you say the best is to move companies or?

[00:22:01] Dagna Bieda: The short and sweet answer is yes. And, you know, in the very first meeting that I have with my clients whenever we start our coaching sessions in the program, what we do is we figure out what are their specific life and career goals, and what are their values and, how their current workplace supports those values. And then we measure them in a specific way. And after that, specific exercise, we’re able to confidently say whether it’s worth staying in that place or if it’s time to move on.

[00:22:38] Dr. McKayla: And so, whenever I see, like, in my Twitter bubble, right? I’m also very much in the American, you know, world somehow. And everybody is like, oh my God, the marketplace is, or the market is so hot now. And, you know, jobs are everywhere. I don’t know in Europe, I don’t feel that way.

[00:23:00] Dagna Bieda: Got it.

[00:23:00] Dr. McKayla: Is, is it like this? Do you feel like right now, it’s so hot and everybody can, you know, change their career in a second and get better and you know, why would you even stay there? I feel like even if you have a good place, let’s move because you can make more money and so on, which is a very different mindset.

[00:23:18] Dr. McKayla: I don’t see that here in Europe so much. It doesn’t feel that hard or it also feels like if I’m at the good company and, you know, I make a market okay salary, I don’t feel that people are looking forward, changing every one and a half, two years, more.

[00:23:34] Dagna Bieda: Yeah. So two years is very common for people who are very ambitious.

[00:23:39] Dagna Bieda: I want to try to see how different companies do different things and gain those experiences across a variety of industries or companies of different sizes. So, two years is definitely something that’s seen as fairly normal. And I feel like you touched on an important subject there, it’s very important to realize that the European job market is much more fragmented, right?

[00:24:03] Dagna Bieda: Because we have different countries, different cultures, and it’s not as easy to, you know, have access to all those opportunities. In the United States, it’s way more streamlined because you know, it’s one country and people mobility is also completely different. So like if you live in LA and then next year you get a job in New York, it’s much more likely that you’re just going to pick everything up and move for that job.

[00:24:30] Dagna Bieda: In Europe, we are not like that. so it’s more like choosing a town you want to live in, and then you find a job within that town, say, for example, right? So in that sense, we have just different priorities in Europe, and there are different priorities here in the United States, and that impacts that job market, absolutely. With that being said, with the COVID, the pandemic, and the acceleration of the remote workplaces, there’s more and more opportunities for the Europe software engineers, for example, or anyone else really to access those American jobs. I cannot think of, like, anything in particular, but there’s more and more companies that are supportive of those remote jobs and help pair American companies with offshore workers.

[00:25:18] Dagna Bieda: And it’s kind of like in that saying where Europeans work to live and Americans live to work. There’s definitely something in that, some truth to it. I mean, I remember when I moved to United States and I was, you know, trying to get my very first engineering job and, on the phone interview, someone would tell me, like, we offer three weeks vacation, we’re generous.

[00:25:42] Dr. McKayla: Yeah, it’s different.

[00:25:43] Dagna Bieda: Yeah, right? It’s different. It’s different. There’s so much more vacation time back in Europe, back at home. In the United States, even though they are coming up with, like, this unlimited time off policies it really depends on the company. Some companies are just trying to not pay you out the accrued time off.

[00:25:59] Dagna Bieda: So you have to like really be wary when you are verifying if it’s really unlimited time off. But with that being said, I had a client and she took like 10 weeks off within a year. So you know, there are companies that, yeah, there are companies that really kind of like honor that.

[00:26:15] Dr. McKayla: Okay. Okay. Well, I have a last question for you, actually, and it’s about code reviews because you were touching upon communication and also showing your work and what you are doing. How do you think can people use code reviews to do that, to accomplish that, to, you know, make their work a little bit more visible? Is it something that you thought about? How that fits together?

[00:26:39] Dagna Bieda: So in terms of code reviews, the advice that I really give to my more inexperienced clients who are earlier in their career journey is to not take them personal.

[00:26:51] Dagna Bieda: Just take it in as an information, as a guidance and, you know, earlier in their career, a lot of software engineers tend to take those comments, that feedback very personally, and they have their feelings hurt. But in reality, it’s just feedback. It’s just objective information that you can use to better yourself.

[00:27:11] Dagna Bieda: Now, in terms of my more senior client, their skills are at the level that, you know, I don’t see code reviews being very critical there because they already, you know, have mastered that technical foundation. So what I focus on really is those skills that are missing: the people skills, the communication, how you market yourself and all the things that we talked about today.

[00:27:34] Dr. McKayla: Okay. Okay, cool. So, Dagna, thank you so much. Maybe you can also tell us a little bit how people can follow your work can find you, and maybe something that you want to. You know, give on the way for the engineers on how to find the career or the next step that makes them happy.

[00:27:56] Dagna Bieda: Yeah, absolutely. So the best way to really get in contact with me is through my LinkedIn profile. You just can go to LinkedIn and find me under Dagna Bieda, D A G N A B I E D A. And then you can also go ahead to my website, the mindfuldev.com/podcast, and you’ll find there a case study. And that case study beautifully explains the process that I follow with my clients and how it helped them really level up in their career. For one client, it meant going from an underappreciated senior engineer to a startup CTO in three months. For another client, it meant moving from a senior engineer to a VP of engineering and innovation at his company. For another client, that meant doubling his salary as we work together. So, you know, if that case study is something that you’re interested in, you can then reach out to me and we can see if we’re a good fit to work together and how I can help you accelerate your career.

[00:28:57] Dr. McKayla: Okay. Cool. Thank you so much. Thank you, Dagna, for being on my show.

[00:29:01] Dagna Bieda: Absolutely. It was a blast. Thanks for having me, McKayla.

[00:29:04] Dr. McKayla: Yeah. Thank you. Bye.

[00:29:06] Dr. McKayla: This was another episode of the Software Engineering Unlocked podcast. If you enjoyed the episode, please help me spread the word about the podcast, send the episode to a friend via email, Twitter, LinkedIn, well, whatever messaging system you use. Or give it a positive review on your favorite podcasting platforms such as Spotify or iTunes. This would mean really a lot to me. So thank you for listening. Don’t forget to subscribe and I will talk to you in two weeks. Bye.

 

Using WordPress to run a profitable developer training business

In this episode, my guest Avdi Grimm shares how he found his independence by running a training and consulting business for over ten years. 

We talk about:

  • the importance of time efficiency, task delegation,
  • why you should remove yourself as a bottleneck from your business
  • the work he does on Graceful.Dev and
  • how he is utilizing WordPress for the website.

Avdi is a consulting pair-programmer, the author of several popular Ruby programming books, and has several courses on his website Graceful.Dev (formerly RubyTapas.com).

Avid Grimm Software Consultant

This episode is sponsored by Tonic.ai – where your data is modeled from your production data to help you tell an identical story in your testing environments.

Links:

Subscribe on iTunes, Spotify, Google, Deezer, or via RSS.

Transcript: 

[If you want, you can help make the transcript better, and improve the podcast’s accessibility via Github. I’m happy to lend a hand to help you get started with pull requests, and open source work.]

[00:00:00] Dr. McKayla: Hello, and welcome to the Software Engineering Unlocked podcast. I’m your host, Dr. McKayla and today after pleasure to talk to Avdi Grimm. But before I start, let me introduce you to an amazing startup that’s sponsoring today’s episode, Tonic.ai, the fake data company. So what does Tonic.ai do? I’m sure you know how complex and cumbersome it is to create quality test data.

[00:00:27] Dr. McKayla: It’s a never-ending chore that eats into valuable engineering resources. Random data doesn’t do it and production data is neither safe nor legal for developers to use. What if you could mimic your entire production database to create a realistic dataset with zero sensitive data? That sounds amazing, right? Tonic.ai does exactly that.

[00:00:50] Dr. McKayla: With Tonic.ai, you can generate fake data that looks, acts, and behaves like production data because it’s made from production. Yet, Tonic.ai guarantees privacy so your data sets are safe to share with developers, QA, data scientists, heck, even distributed teams around the world. Visit Tonic.ai to sign up today or click the link in the show notes to get a free two weeks trial sandbox.

[00:01:14] Dr. McKayla: But now back to Avdi. Avdi has been a developer for over 20 years and runs, similar to me, a training and consulting business. The main difference is that he has been doing this already for over 10 years. So I’m super thrilled to pick his brain today around everything business-related. He’s also a consulting pair-programmer and the author of several popular Ruby programming books and has several courses on this subject on his website, Graceful.Dev, formerly RubyTapas.com. So I’m super thrilled that he’s here with me today. Avdi, welcome to my show. I’m very excited.

[00:01:51] ** Avdi Grimm: ** Thank you so much. I’m excited to be here.

[00:01:53] Dr. McKayla: Yeah, I’m super excited. So I’ve been following your journey on Twitter and so on for quite some time. Very inspirational as well. And I have a lot of questions around how you run your business and why you’re running the business and what we can learn from you, right, a seasoned entrepreneur and self-employed person to also maybe get a little bit more independence in our life, right? So this is probably the main goal for myself, for everything that I do is flexibility and independence. So why are you running your own business and how does this come about? Why are you not a software developer in a company somewhere?

[00:02:32] ** Avdi Grimm: ** Right, yeah. I mean, to some degree, I feel like it’s almost an inevitable career arc for somebody in software. You know, I know people who have avoided it, but a lot of the people that I kind of looked up to over the years went through, you know, they went through the full-time employment phase and then they gradually kind of moved out to becoming consultants and having various other side businesses.

[00:02:55] ** Avdi Grimm: ** And, you know, come to think of it, I never really thought about this much before. I had the example of my dad who worked in software and hardware design, and he was an independent consultant I was growing up. So that was kind of normalized to me to, like, have your own thing

[00:03:08] Dr. McKayla: Yeah, for me was quite different. Yeah.

[00:03:11] ** Avdi Grimm: ** I think that I, I saw that on the horizon maybe from earlier than some people do, just because it was, it was normalized for me, you know? And it just seemed like that’s what a lot of my heroes did in the industry was eventually they became consultants.

[00:03:26] Dr. McKayla: Yeah. Yeah, it’s good if you have like role models. For me, it was quite the difference. I always saw it that I will work at the company for a really long time and, you know, climb the career ladder somewhere. Actually, I started a family that I saw, oh, this is not working out as I expected. And as I would like it to work out, right? And so this was a little bit why I changed the thing. So you call it a banana stand. You don’t call it like an enterprise or something. Why do you call it the banana stand? And what’s your philosophy for your business? How do you run it?

[00:04:00] ** Avdi Grimm: ** So, yeah., I’ve started using the term banana stand recently, especially as I’ve been kind of reflecting back on, you know, over a decade of doing this and, like, my style of, of running the business and writing a little bit more about that. So the, the term banana stand, it comes from, the show Arrested Development in which one of the characters says to another, this character is trying to save the family business and his dad who is in prison keeps telling him there’s always money in the banana stand, which he completely misinterprets the message and winds up, burning down a banana stand that’s full of literal money in the walls. I apologize if I’ve spoiled the show for you, but it’s been out for a while. But you know, like, that phrase stuck with me. There’s always money in the banana stand and that’s kind of the way that I look at it.

[00:04:48] ** Avdi Grimm: ** So there’s kind of two sides to this, this independent business for me. There’s the consulting side. And then there’s the product side, product being kind of a broad term for selling books, selling courses, selling workshops. It’s kind of a loose definition of product, but it’s definitely distinct from the consulting side of my business, which is more like, you know, hourly consulting on people’s projects.

[00:05:12] ** Avdi Grimm: ** And I definitely look at the product side as a banana stand as like something that I kind of run casually, even if I’m putting most of my time into it now. I still run it kind of like lazily and you know, and it’s my own banana stand to putter around in. I’m not, like, beholden to any, like, schedules and I’m not on any kind of like track of, I have to, you know, make this much money.

[00:05:35] ** Avdi Grimm: ** I have to, like, make sure that my VCs get a payoff and stuff like that. It’s just kind of like, you know, I get the putter around in the banana stand and work on whatever I feel like. And, you know, that phrase there’s always money in the banana stand is kind of like that has informed the way I think about employment a lot, because, for me, if I’m in between jobs, I used to think of it as in between jobs, I don’t think of it that way anymore, but if I’m in between jobs, quote, unquote, that’s not like a time to panic and, you know, and, like, do all the interviews and freak out about how I’m unemployed. That’s time to just focus on the banana stand.

[00:06:12] ** Avdi Grimm: ** And until something comes along, that makes sense. And I think that’s been helpful to have that. And, yeah, that side of my business, really like, so we talked about consulting, but that side really came from early on, getting into e-book sales, which we can talk about how that story went if you want.

[00:06:28] Dr. McKayla: So if I understand that you would say there’s the consulting, which is, you know, it’s something that you have continuously to invest in and also make some contracts around that.

[00:06:37] Dr. McKayla: I’m also doing some consulting, which means like now I’m dedicating, let’s say 30 hours for this project for three months, right? And so you are more or less sold out for that time?

[00:06:48] ** Avdi Grimm: ** It’s kind of like a real job.

[00:06:49] Dr. McKayla: Yeah. It’s like a real job, only that you have all the risks as well, which is even worse.

[00:06:58] ** Avdi Grimm: ** But there’s a lot more, even there there’s a lot more independence. And honestly, you know, one of the things that I value on the consulting side is that, I mean, yeah, you have the risk, but there’s always the risk. There are no guarantees in this industry. There are no guaranteed retirement plans.

[00:07:13] ** Avdi Grimm: ** And what I don’t have to do is I don’t have to buy into a lot of corporate mission and values BS that I don’t believe in.

[00:07:22] Dr. McKayla: Yeah. So you have your consultancy and then in between those consultancy gigs, right, when there are no consultancy gigs, you’re not freaking out, you’re working on your banana stand and you grow that, right? And the good thing it’s about the products and, you know, this mindset, I think, is that even a little bit of work on them pays off, right? So it’s a little bit like an investment. So you create another free course, maybe, and you have like a, you know, a good lead magnet, have people that are interested in your work.

[00:07:53] Dr. McKayla: Then you create a paid course when you have time and so on. And it stays, right? It’s something that’s there for longer, whereby the consulting, it comes, it brings normally quite good money, from my experience, right? In a very short amount of time, but then it goes away as well. While the banana stand, maybe it’s a little bit, it’s not this boom, now we have like all this money. But it’s also not going away, right? Yeah, exactly. It’s a snowball. It’s a flywheel somehow, right? Yeah.

[00:08:20] ** Avdi Grimm: ** Yeah. I mean, you know, a consulting gig is one big blizzard that, you know, that melts the next week and a banana stand is a snowball that you just kind of gradually roll over the years.

[00:08:32] Dr. McKayla: And so how long did it take for you to have this banana stand where you could say, well, I have some predictable income that, you know, makes me sleep at night? .

[00:08:43] ** Avdi Grimm: ** So actually I think, you know, my trajectory there probably was a little different from a lot of people’s. I kind of, you know, I put along having the book, the e-book business on the side for a few years, and that really just fell out of speaking.

[00:08:58] ** Avdi Grimm: ** It happened because I was giving talks at software conferences. And I was pouring a ton of time and energy into researching these talks. And I was like, you know, I wonder if there’s a way to kind of recoup. You know, I have all this material that I put together. I can’t fit it all into a talk.

[00:09:14] ** Avdi Grimm: ** And I wonder if there’s a way to like recoup the energy that I’ve been putting into this. And that was really the origin of the first book, which was Exceptional Ruby, which is about error handling and failure management and I made a book out of like the, all the extra material that I put together for that.

[00:09:29] ** Avdi Grimm: ** And that was that kind of launched things. And so that was kind of a side business. It was a nice little side business for a couple of years. And then what changed was I decided to get into screencasting. I’ve been doing the books, I’ve been doing some podcasting and this was around, you know, this was like 20, maybe 2010, 2011, 2012.

[00:09:52] ** Avdi Grimm: ** A lot of programming screencasts started taking off. And I decided to get into that business. And I had a vision of like, what if we did that only much shorter and more focused? And, you know, just do like five minutes or less. You know, get one idea across at a time. And so, unlike most banana stand efforts, that was really like a do or die, not do or die.

[00:10:13] ** Avdi Grimm: ** I don’t like that terminology that was a go big or go home. That’s the phrase I’m looking for, go big or go home because I knew how much energy went into video production and it is a lot. And so it was like, okay, this is a project that I’m going to test the waters. If it does well, I’m going to try, you know, the only way this works is if I can make it into my full-time job, otherwise I’ll just stop. And yeah, I got really lucky. I was coming in at a good time. People really liked the format. And so within, I think around a year or two, I was able to say, I don’t actually need other jobs right now with the RubyTapas screencasts.

[00:10:49] Dr. McKayla: Oh, yeah. That’s nice.

[00:10:51] ** Avdi Grimm: ** Yeah. So that was, that was kind of like line goes up. That was less, you know, slowly rolling snowball.

[00:10:56] Dr. McKayla: Yeah. And how much time did you spend in this line goes up phase? You know, because somehow when you’re focusing on something, like doing the screencasts, you’re not having an income, right? And then if you go to consulting, you don’t have the time. So you have to switch between those boats of not having time or not having money. So how did you handle that at that time?

[00:11:17] ** Avdi Grimm: ** I didn’t sleep. I had at least one new baby at the time, too. And, like, I was working consulting gigs. I don’t know. It’s kind of a blur at this point. I don’t think that I could do that kind of thing again, unless it was a great need. ‘Cause I was also, at that point at the beginning, I was producing three episodes a week.

[00:11:41] Dr. McKayla: Wow. Yeah, that’s a lot.

[00:11:43] ** Avdi Grimm: ** Yeah. I was doing a lot at once and it was kind of nuts.

[00:11:46] Dr. McKayla: Yeah. And I actually really liked, with the whole style also, when I look through your blog posts and everything, right, you have your own style. You didn’t call it like Professional Ruby screencast, you call it RubyTapas, right? And the tapas probably transport the message of it’s small pieces of very digestible, tasty things, right?

[00:12:09] ** Avdi Grimm: ** And I feel like some of that probably also fell out of just like the Ruby, like, the community has always been super whimsical and kind of silly. And so, you know, I can’t take full credit for that approach.

[00:12:22] Dr. McKayla: Yeah. But recently, I don’t know exactly when, but you rebranded your whole RubyTapas into Graceful.Dev, why is that? For me, it seems like it’s now broader and there can be more happening, but what’s your strategic vision behind, you know, going from RubyTapas to…

[00:12:40] ** Avdi Grimm: ** I do not do strategic visions. I used to, but, man, I avoid strategy as much as possible now. I mean, that’s okay. That’s not true. I do a little, I do a little. But I try not…

[00:12:54] Dr. McKayla: You definitely have some reasoning behind it, right?

[00:12:56] ** Avdi Grimm: ** I try not to have five-year goals. Let’s put it that way. I don’t do goals. There’s definitely some reasoning there. There’s a direction there. I mean, the direction was one that I’ve honestly had in the back of my mind for a really long time. A lot of people don’t know that, like, the same day in, like, 2011 or whenever it was that I registered RubyTapas.com and associated addresses. I also registered CodeTapas.com.

[00:13:20] Dr. McKayla: Okay.

[00:13:21] ** Avdi Grimm: ** So like, you know, I never wanted to completely limit myself to Ruby, strictly Ruby content. You know, I’ve worked in, God, like a dozen languages over the course of my career. And Ruby was just an area that I wound up focusing on a lot and wound up making a lot of money in. And enjoying, I really, really enjoy the language still and the community as well.

[00:13:42] ** Avdi Grimm: ** But I always had in the back of my mind, you know, that I would expand, but, you know, I didn’t wound up not using as you’ll notice. I wound up not using CodeTapas as the branding ’cause I was really, like, moving in a different direction, broadening not just in, like, in the technologies that I want to cover, but also I just spend a lot more of my time thinking about broader topics like, the sustainability of the development that we do and systems thinking, understanding the systems in which we work and the systems that cause the work that we have to exist. And yeah, so just, for a lot of reasons, it made more sense to me. And in some of my talks, I’ve been really focusing on the concept of grace.

[00:14:21] ** Avdi Grimm: ** So it just made more sense to me to move in that, that branding direction. And then recently I had the opportunity to finally, like, do a lot of the heavy lifting of moving content over. And so I took that.

[00:14:33] Dr. McKayla: Where did this opportunity come from?

[00:14:35] ** Avdi Grimm: ** Well, so I had a point a few years back where I was like, okay, you know what? I’ve been sort of off on my own, doing my own thing for a long time. I would like to get back into, like, the hustle and bustle of being part of a big team that’s making something real in the world. And I spent, I don’t know, a year or so interviewing pretty seriously at a bunch of different places. And that did not go as expected.

[00:15:00] ** Avdi Grimm: ** And I finally decided that I, wasn’t going to focus on that anymore after all. And I was just going to get back to the banana stand ’cause there’s always money in the banana stand. And that has been actually an immensely satisfying experience, kind of coming back to it with a fresh, fresh, like maybe this is my calling perspective.

[00:15:18] Dr. McKayla: Yeah, I actually followed this journey a little bit on your Twitter, you were sharing it with us and also the hassle of the whole, you know, getting naked in front of strangers, you know, and really selling yourself. And I mean, you have been in the industry for so long, you have shared your learning.

[00:15:38] Dr. McKayla: You know, you have some portfolio online. It’s not like somebody comes and has no idea about you, but still, it felt like at least what I got out of the tweets, right. What I read into them was that every interview was a little bit, it wasn’t really like keeping your dignity, right? So you had really to get naked in front of them to do all these silly things.

[00:16:03] ** Avdi Grimm: ** You know, I wouldn’t, I actually, I would argue that it’s not, it wasn’t really about being naked. It wasn’t really being, about being transparent. It was about people wanting you to do a very special dance for them that strokes their ego and me being at a point in my career and life where I’m just like, I’m not going to do that. Why would I do that? Looking back I got some actually really nice offers from some, you know, well, large companies anyway, but in the end I was not comfortable taking any of them. And in part, because of what I saw during the interview process.

[00:16:39] Dr. McKayla: Okay, what did you see?

[00:16:41] ** Avdi Grimm: ** Well, you know, so actually, let me tell you about something I just heard recently from a friend of mine, because I hear the same story over and over again. Like my story, what I’ve realized is my story is not at all unique. So just the other day I heard the story again of like, basically, you know, an extremely senior well-respected brilliant engineer gets asked by a friend that works at a FAANG, you know, works at one of these giant unicorn Silicon valley darlings, gets asked to come interview there. It’s like, we’d love, you know, I’d love to work with you here, which is basically what happened to me, a number of different places. And, you know, so they kind of go into the interview silo and then they go through this process where in, you know, in this particular case, like they got interviewed by someone who was totally unrelated to the group that wanted to hire them because this is the way the process works. You know, we don’t want bias in the system. There’s a lot in these processes that are supposedly about eliminating bias, it’s actually creating it.

[00:17:42] ** Avdi Grimm: ** We can talk about that more in a minute, but, you know, was interviewed by someone totally unrelated to that team. And basically, they were like, you know, show that, you know, by heart, my favorite algorithm,

[00:17:55] ** Avdi Grimm: ** I happen to have a favorite algorithm. You’re going to show me that you can, you can identify that I’m thinking of this algorithm and then you can write it by heart. And like that wasn’t an algorithm that this engineer had used before. And so it wasn’t one they thought of, you know, I’ve got a lot of stuff in my background where it’s like, I know of algorithms that probably most engineers haven’t heard of because they happen to be useful for networking middlewares and I hear this all the time.

[00:18:18] ** Avdi Grimm: ** Anyway, they got flunked out because they couldn’t, you know, reproduce somebody’s favorite algorithm from, by heart. And this is somebody with, like, close to my level of experience. It’s nuts. And I keep hearing this. It’s actually, you know, I’ve heard this from a lot of people, with my, lot of friends of mine, with my level of experience in the industry, that these systems, they’re really tuned to find people that are exactly like the people who designed the system in as many ways as possible.

[00:18:47] Dr. McKayla: Yeah.

[00:18:48] ** Avdi Grimm: ** Like, for me, I don’t care. I am a white guy with plenty of opportunities and a banana stand. You know, I can fall out of a process like that and be fine. But what I’m seeing is that these processes are also, I mean, they’re very gatekeep-y and they’re very clicky. They’re very in-crowd, they’re very, very, like, we are expecting people that sort of show the secret insignia of a very select group of Silicon Valley insiders, basically.

[00:19:18] Dr. McKayla: I think one of the problems is also that they often require a tremendous amount of preparation, right? And if you think you are an experienced engineer, maybe at that point, you have a family, for example, around, right.

[00:19:33] Dr. McKayla: And some other commitments, it gets really hard to study some, you know, lead code examples, just to be as fast as, you know, somebody else, right? And I think this is also something that I criticize a lot when I’m thinking, and then you don’t even need that, you know, you don’t need that knowledge. You could really solve real-world problems.

[00:19:51] Dr. McKayla: You have some experience and background, right, that you have worked on. And it’s probably also super challenging. So looking really at what that person has already achieved in the last, let’s say 15 years would be, you know, and then really let them explain that in-depth, which shows that they probably can learn, you know, whatever problem or solve whatever problem you throw at them. It would be a much better way than, you know, getting back to bubble sort and, you know, and linked list or something, right?

[00:20:19] ** Avdi Grimm: ** And this, this is a big part of where the bias is in the system, and this is why I get sort of morally outraged by it, you know? I don’t do well in these, you know, I might not do well in these because I’m at a point where I just can’t be arsed to do that much homework of like learning somebody’s arbitrary favorite algorithm.

[00:20:36] ** Avdi Grimm: ** But what they’re implicitly biasing towards is the sort of stereotypical young white dude that has all the time in the world and doesn’t have a family to support and doesn’t have any disabilities. And, you know, I could list off a lot of, you know, a whole lot of privileges there that go into that sort of their really looking for that person who has nothing else going on in their life.

[00:20:59] Dr. McKayla: Exactly.

[00:21:00] ** Avdi Grimm: ** You know, so that they can then like induct them into the cult of your passion is your software career. And that bugs the heck out of me, you know, and I see this really like, you know, who is really hurting is people that come from backgrounds that aren’t like mine and have other stuff. They have people that they’re taking care of. They have kids, they have elderly parents, they have families that they’re sending money to, and they can’t afford a, you know, a break in their income while they spend six months, you know, doing nothing but the interview game. You know, there are so many things, and the people that are, you know, so many minorities in this country already have, in the world or, you know, minoritized people, I shouldn’t say have so many other calls on their time because of the way society is already stacked against them. That it makes it impossible to jump through these.

[00:21:48] Dr. McKayla: Yeah, I totally agree. I totally agree. Yeah.

[00:21:51] ** Avdi Grimm: ** Sorry, I get worked up.

[00:21:53] Dr. McKayla: No, I want to come back a little bit to your banana stand again because this is the way out for, for you. And it’s a little bit the way out for me as well, right? So with Graceful.Dev, I don’t know if you had that before. You had RubyTapas and you had like the courses, but Graceful.Dev is now a full-fledged membership site, right? So you have different courses and you build it on top of WordPress. Why did you go this route? I mean, you could have like your courses on some third-party platform, right? From, I don’t know, Teachable or whatnot, you know, many, many different PODR and so on. But you host it yourself and then you have the membership site as well. And you do that. Why does choice, like, I’m also thinking about right now, awesomecodereviews.Com for example, runs on, I switched from WordPress to Gatsby. So it’s a static side and I’m thinking on how to give it a membership capabilities.

[00:22:49] Dr. McKayla: And I looked at SurplusCI and so on, but why did you go for WordPress? And are you happy with it? And what’s the philosophy behind it? What do people get from this membership? What do you want to build? Probably there’s a community behind, right? And some, some visions that you have for that.

[00:23:06] ** Avdi Grimm: ** This is an opinion I’ve kind of come to over years of using many different systems. And there’s continuum here because you know, a lot of people running, particularly running education sites for developers have rolled their own system from scratch. They’ve built their own servers or their own applications.

[00:23:26] ** Avdi Grimm: ** And so, you know, there’s that continuum all the way from roll your own to, you know, use a completely hosted service, like Podia, Thinkific, whatever, you know, and I’ve, I’ve tried a lot of these different things. I started Ruby topis out on somebody else’s platform.

[00:23:39] ** Avdi Grimm: ** And it was super limiting. You know, there would be things that people were asking for for years and they just, that feature wasn’t a priority for the platform because you’re competing, you know, you’re competing with all the other people who use the platform. And for, you know, whose feature is most important.

[00:23:54] ** Avdi Grimm: ** So it was very limiting to use a hosted platform, and I’ve periodically I try them again and they’re always, there’s always like something pretty early on, it’s like, wow, I really need this feature. And I don’t have it. But I’ve also toyed with building my own. I did that for a few years and you know, what I realized was, if I did that, my show was going to become about building an app to support the show, because that’s what I was going to be spending all my time on, because it’s a lot of work to build.

[00:24:23] Dr. McKayla: It’s a lot of work, yeah.

[00:24:25] ** Avdi Grimm: ** People don’t realize, you know, how many features are expected in an application that sells content and serves content and keeps track of people’s progress in the content, et cetera, et cetera, et cetera.

[00:24:38] ** Avdi Grimm: ** And yeah, I just, that was not the show that I wanted to be doing was, you know, I didn’t want to be like here’s videos about how to build a place that hosts these videos. So WordPress has turned out to be a really happy medium kind of between those two extremes. WordPress is just incredibly mature software.

[00:24:56] ** Avdi Grimm: ** There’s a lot of people in, particularly, the developer world that are kind of biased against WordPress and sadly against like the PHP ecosystem entirely, which I think is really undeserved. There’s a lot of really, really good people working in this space. And the ecosystem is just amazing because you can kind of build anything you want and you can get as little or as much support as you want.

[00:25:20] ** Avdi Grimm: ** You know, it’s easy enough to build your own plugins for WordPress to just do a little tweak here, a little tweak there. You know, the architecture of it really supports the idea of exposing everything it does as hooks. And then you can hook your own stuff into those hooks, which is why it has this great plugin ecosystem.

[00:25:36] ** Avdi Grimm: ** But one of the really cool things about the plugin ecosystem around WordPress is A, there is a plugin for everything, like, anything you might want to do. Somebody has got a plugin for it. And B, usually they have, like, a premium version, which comes with support. And I have had the best experience with premium plugins for WordPress.

[00:25:55] ** Avdi Grimm: ** Like, you know, people just like being very responsive to the people that are giving them money and coming back and, you know, with bug fixes or like going into the, you know, going into your site and making, figuring out why it’s not working. And so it’s like, it’s one of the rare places I’ve seen that people are putting out a ton of open-source software, but also getting paid for their work.

[00:26:16] ** Avdi Grimm: ** Because all these plugins, like the base version at least, is always open source. And then basically you’re paying them for maybe some premium features, but mainly for a support contract and, you know, and so people are making their living, creating open-source software. And I think that’s pretty cool. And it’s also, it also has done really well for my business.

[00:26:32] Dr. McKayla: Yeah, and it’s true. And so when I’m thinking about your course software, did you get a plugin for that? Or did you have to write it yourself or do you have like a plugin and then extend that on your own? How does that work? You’re hosting your videos, but then they’re also like, you know, questionnaires, for example, some quizzes, you know, as you said, you see that people, you know, it somehow tracks the progress of the people. It has to know that you’re a member that can access that course, the other course. All of that functionality, does it come out of the box with some plugins for WordPress? Or did you have to implement that yourself or was it a mixture that you’re actually getting a plugin and then you can, you know, enhance that with your own code?

[00:27:15] ** Avdi Grimm: ** Great question. So, there are two to three categories of plugins that go into a site like this. I mean, my website has a lot more plugins than that, but there’s sort of maybe three basic pieces. And one is learning management system LMS, otherwise known as courseware. So that’s a category of plugins I could probably reel off maybe six of them off the top of my head, I’m personally using LearnDash, which is one of the older ones and one of the more, probably the most popular one in WordPress right now. And it’s very mature. It’s a little clunky for me sometimes because it’s really targeting in many ways, it’s targeting like serious learning institutions where they have like accreditation concerns and certificates.

[00:27:59] ** Avdi Grimm: ** And like, you can’t take this course until you take this other course, lot of stuff that I don’t care about. On the flip side, it’s very mature. They handle all the things that I might want to put into it. They just also, also a lot of stuff that I don’t care about. And then, so you’ve got, like, there’s learning management, that’s one. There’s membership, which is like another whole category of plugins, which are generally focused around, given this account, what material does this person have access to? And that includes courses, like what courses does this person have access to.

[00:28:28] Dr. McKayla: So they work nice together, LearnDash and the membership thing.

[00:28:30] ** Avdi Grimm: ** Yeah, so generally what you see, so I’m using LearnDash on the LMS side, I’m currently using MemberPress, which is one of the more popular membership management plugins.

[00:28:39] ** Avdi Grimm: ** Generally these plugins, they work hard to work with each other, you know, different teams usually, but they work hard to work with each other because that’s where a lot of the value comes from. And so they have explicit support for each other. And then the third piece often is like your e-commerce, how you sell the thing.

[00:28:56] ** Avdi Grimm: ** And that is often a separate plugin as well. Like in the WordPress ecosystem, it’s usually WooCommerce. Sometimes it’s EDD, Easy Digital Downloads. Now I’ve reeled these off like they are distinctly separate categories, but actually almost everyone in each of these spaces will happily give you like all of the above kind of in one.

[00:29:18] ** Avdi Grimm: ** Because they all kind of, they’d grow, all gradually expand out to include each other’s features. So like LearnDash, you can do a pretty basic membership management using the groups that are built into LearnDash. You can sell courses directly. Like they have Stripe integration and stuff directly from LearnDash if you want to, it’s kind of basic, but it’s totally there.

[00:29:36] ** Avdi Grimm: ** MemberPress recently introduced their own courseware plugin for MemberPress. You can just like stick with that company if you want, as long as you’re okay with like a more basic courseware offering. They also have the storefront part built in if you want to use it. So there’s a lot of blur between these plugins as well.

[00:29:54] ** Avdi Grimm: ** Yeah.

[00:29:55] Dr. McKayla: Yeah. Okay, cool. And so are you then enhancing that, is that possible, especially if you have like the paid version, could you just write that? And then how do you keep track of your own changes and new updates that are coming from the team? How do you integrate those things?

[00:30:09] ** Avdi Grimm: ** So one of the marks of a good industrial strength WordPress plugin is that they have well-defined hooks. You know, I was talking about like, WordPress is built on the concept of hooks. They have well-defined hooks that are documented. And so, like the ones that I work with do, they have good documentation sites and they have all these hooks that you can like, here’s how you change this, you know, here’s how you hook your own thing into this particular part of the interface or this particular process.

[00:30:36] ** Avdi Grimm: ** And then, so what I have is what they call a site-specific plugin that I keep under version control, and I have a deployment system for that pushes it out to my way. And my site-specific plugin, basically just very selectively has a few, there’s a few hooks where I want to customize something in one of those other plugins.

[00:30:54] ** Avdi Grimm: ** And it just like hooks its own handler into just the, like the very specific hook that is one tiny piece that I care about changing. It’s very small. The site-specific plugin is very small. I try to keep it very small and very focused.

[00:31:07] Dr. McKayla: Okay. But so it has a valid defined API or hooks that you can really enhance. You’re not going in and hacking in their, in their code base, right? So you’re on the outside, whatever they allow you to change.

[00:31:18] Dr. McKayla: Yeah. And if you’re going to really get into this ecosystem, that’s one of the things you want to keep your eye out for is like, does it seem like these people are really supporting that kind of external hooks?

[00:31:28] Dr. McKayla: Yeah, it sounds very interesting. And I know quite a couple of people that are running WordPress websites and have a lot of, you know, like you said, WooCommerce, or like a membership sites and they’re very, very happy with it. Maybe my last question for you is around, you said you are not going to plan for five years and so on, right? But I think everybody has some, some vision you know, some, some reasons why you’d be doing things like transitioning from RubyTapas to Graceful.Dev, right? What do you see yourself, do you want to do, is there a possibility that Graceful.Dev is really your full time thing and that you’re not doing any consulting or do you want to keep doing consulting on the side? Or, you know, where are you heading towards, what’s your ideal case?

[00:32:16] ** Avdi Grimm: ** I wish I had a good answer for you. You know, I want to keep being able to do what feels right at the time, which is kind of what I’m doing right now. You know, Graceful.Dev is supporting me pretty decently along, you know, that alongside of my other, you know, other products and things. You know, I take consulting gigs as they look interesting.

[00:32:35] Dr. McKayla: Yeah, and are you a solopreneur or do you have, like, a team that really helps you?

[00:32:39] ** Avdi Grimm: ** Oh yeah. Good question. I don’t have any full-time employees for years and years. I’ve employed people very part-time here and there, only ever like a handful only ever like maybe three to five at most, at any given time. Actually five is probably more than I have, but like I have somebody that’s I’ve worked with for a long time, that handles kind of first line of support.

[00:32:59] ** Avdi Grimm: ** So support emails first go to them and then they escalate them to me. I have somebody I’m working with now who’s doing a lot of, like, helping me with content, like doing video editing or fixing up blog posts that have become, like their formatting has gone wonky or is out of date or something like that. Yeah. So I have a few people that just like very part-time helpers.

[00:33:21] Dr. McKayla: Yeah. I’m currently right now in this position of getting people and I find it really difficult finding the right people because, you know, if you’re already in this, okay, I need help now. I don’t know how you overcame that stuff, but for me, it’s like, I need help now, and I can’t grow, you know, without this help. But I also can’t really make the time to find the right people and to teach them and do onboarding.

[00:33:44] ** Avdi Grimm: ** And that is, that is the classic catch-22. And there’s no easy way out of it. You know, the point where you absolutely don’t have, like, you don’t have the overhead space to train somebody, but you need to train somebody in order to get the overhead space.

[00:34:00] ** Avdi Grimm: ** Yeah, I wish I had an easy answer for that one, like that parts of slog. And eventually you kind of pull your head above it, but it’s hard because, yeah, like the effort involved in like getting through that catch-22 is exhausting. I will say this about it. And, and this has informed my work for a long time.

[00:34:20] ** Avdi Grimm: ** This is the most important kind of scaling to plan for. I think a lot of people in software are completely focused on either financial scaling or on like user scaling, you know, the, your user base scaling up like our, will our code base support unicorn scale. That is by far like the least common form of scaling that you have to support.

[00:34:42] ** Avdi Grimm: ** The kind of scaling you need to plan for is devolving stuff from yourself. Taking, removing yourself as a bottleneck. That is the most urgent and immediate form of scaling that you’re going to face. And so one of the reasons, I have a lot of reasons, but one of the reasons that I use WordPress is because it is the dominant player.

[00:35:02] ** Avdi Grimm: ** Like, it powers like half the web now, and there is this huge ecosystem. And if I need somebody to do like copy editing, I don’t need to teach them how to use GitHub and like commit things, you know, I don’t need to find a copy editor, but then teach them how to use my special, precious bespoke system.

[00:35:20] ** Avdi Grimm: ** They know how to use WordPress, whoever they are, they know how to use WordPress. And you know, if I need to get somebody, you know, if I want some help with my site because I don’t have time to diagnose one particular bug, it’s really easy to find WordPress consultants, and there’s just so many things there where it’s easy to find people that can do the thing that you need help with.

[00:35:44] ** Avdi Grimm: ** And that’s just as a general kind of policy. That’s one of my biggest considerations when choosing anything is not, you know, not is this going to scale up, but can I scale it away from me? Can, you know, can I remove myself as the bottleneck for this in the future?

[00:36:00] Dr. McKayla: Yeah. Yeah. That’s such a good mindset. And I’m currently learning a lot with it and you know, it takes much more time and much more energy than I thought, but I also see that, you know, if you have already one person, right, so finding this one person, it means that you have to work with six different people. And then you realize, oh, it’s, you know, it’s, it’s making more trouble that what I’m getting out of.

[00:36:23] ** Avdi Grimm: ** Yeah. And I should say here, like, use my bad example for learning. I hit a crash at one point where I really wasn’t like I was, my outgo was bigger than my income. And a big piece of that was that I had, I had tried to devolve too much of myself. You know, I tried to become too big and pay too many people to do too many different things.

[00:36:45] ** Avdi Grimm: ** And the funny thing about what was happening there was that I was still swamped. I still had too little time. And it was because I had basically, you know, installed myself as a manager and I was spending all of my time helping people get unstuck and managing things. And so, yeah, it’s really easy, like once you, once you kind of start going down that delegation road, it’s really easy to go too far.

[00:37:10] Dr. McKayla: Yeah. Yeah. I think, I think one step at a time and keeping the focus like I really would like to create more content, have more of this really quality time doing what I love to do like teaching, thinking about content, writing blog posts, right?

[00:37:25] Dr. McKayla: This is really what gives me energy and less about the administrative stuff. But then, as you say, I have to be real careful not to get people adding to my administrative stuff. So, yeah. But yeah, very, very good.

[00:37:38] ** Avdi Grimm: ** I think it’s important to always know that like you can do the thing. One of my personal policies is like, anything that I’m thinking of delegating or automating, always do it manually first and do it manually for a while first and get a really good idea of what it is that I’m either delegating or automating.

[00:37:55] ** Avdi Grimm: ** And usually what I discover is that I can automate less of it than I was planning. And it’s enough. Or I can delegate less of it than I was planning and it’s enough, but yeah, as it’s always very tempting to be like, man, there’s this one aspect of my business. I just don’t want to think about at all. And so I want to delegate, delegate that part of it.

[00:38:13] ** Avdi Grimm: ** And I think that’s really dangerous though, that leads down that road of like now I’m just jammed up managing everyone and paying too much, you know, not balancing my books.

[00:38:22] Dr. McKayla: Yeah. I think that’s true.

[00:38:25] Dr. McKayla: Do the thing the hard way for a while, figure out the smallest piece of it that you can automate or delegate.

[00:38:31] Dr. McKayla: Yeah, cool. So Avdi, thank you so much for sharing all your insights. Is there something like, if there are developers out there that think, oh, I would like to have some side hustle, you know, get a little bit more independence or maybe even go full in, what do you think what is a, is a good strategy nowadays?

[00:38:50] Dr. McKayla: You know, when there are already so many, screencasts, when they’re already, you know, so many other things, so many blog posts, so many podcasts and so on. What do you think? How should people start doing it? Is a blog still a good first outlet?

[00:39:04] ** Avdi Grimm: ** There’s no going wrong with blogging. Honestly, like, it really doesn’t matter like what your plan is. Get good at writing about things. Like, practice writing. It’s just that I feel like that skill has informed, has improved so many other aspects of my business and of my career. I mean, writing about what you learn is such great practice for even if you just stay a regular developer, you’re going to be a better developer because you are better at explaining and documenting your work to other developers. And so like, yeah, there’s just no downside to getting in the habit of writing all the time about the work that you’re doing.

[00:39:46] Dr. McKayla: Yeah, that sounds good. Yeah, I think so too. I think that’s a such a good advice. There’s I think there’s so many positive things that can come, be that job opportunities or maybe you have to jump on, you know, you get better as, as you said, in your communication skills, better at communicating with your colleagues and so on. So yeah, I think this is a great, this is really a great insight. Thank you so much, Avdi.

[00:40:09] ** Avdi Grimm: ** Oh, I have one other thing on that, on that note that I should include. Start building your, your mailing list now.

[00:40:16] Dr. McKayla: Mailing list, yeah. Good idea. Independent mailing list, I would say.

[00:40:20] ** Avdi Grimm: ** You know, do that blog thing and then slap, you know, go with ConvertKit or something and slap a mailing list, subscribe on that thing, and just start collecting that snowball now, because that, it takes a long time, but oh my gosh, the opportunities that come out of having a good mailing list. There’s nothing else like it.

[00:40:38] Dr. McKayla: Yeah, that’s true. Yeah. I think that’s a great add, great addition to what you said before. So Avdi, thank you so much for taking the time and talking with me and sharing everything with my listeners and yeah, have a good day.

[00:40:53] ** Avdi Grimm: ** Thank you so much for this. I really enjoyed it.

[00:40:55] Dr. McKayla: I enjoyed it too. Thank you so much. Bye bye.

[00:40:58] Dr. McKayla: This was another episode of the Software Engineering Unlocked podcast. If you enjoyed the episode, please help me spread the word about the podcast, send the episode to a friend via email, Twitter, LinkedIn, well, whatever messaging system you use. Or give it a positive review on your favorite podcasting platforms such as Spotify or iTunes. This would mean really a lot to me. So thank you for listening. Don’t forget to subscribe and I will talk to you in two weeks. Bye.

 

what the heck is data-oriented programming?

In this episode, I talk to Yehonathan Sharvit, author of the book Data-oriented programming. Yehonathan is a developer, author, and speaker. He has tons of experience in full-stack development using various languages such as Java, Javascript, and Ruby. But his favorite language is Clojure. He bundled all this experience and knowledge into his book which should be finished this summer.

We talk about:

  • the basics of Data-Oriented Programming,
  • how Data-Oriented Programming compares to object-oriented programming and functional programming,
  • and how we can apply it in our codebases

This episode is sponsored by Tonic.ai – where your data is modeled from your production data to help you tell an identical story in your testing environments.

Links:

Subscribe on iTunes, Spotify, Google, Deezer, or via RSS.

Transcript: What the heck is data-oriented programming?

[If you want, you can help make the transcript better, and improve the podcast’s accessibility via Github. I’m happy to lend a hand to help you get started with pull requests, and open source work.]

 

Dr. McKayla 00:04 Hello and welcome to the Software Engineering Unlocked podcast. I’m your host, Dr. McKayla and today I have the pleasure to talk to Yehonathan Sharvit. But before I start, let me introduce you to an amazing start-up: tonic.ai – the fake data company. So what does tonic.ai do? I’m sure you know how complex and cumbersome it is to create quality tests! It’s a never-ending chore that eats into valuable engineering resources. Random data doesn’t do it — and production data is not safe (or legal) for developers to use. What if you could mimic your entire production database to create a realistic dataset with zero sensitive data? That sounds amazing, right? Tonic.ai does exactly that. With Tonic, you can generate fake data that looks, acts, and behaves like production because it’s made from production. Yet, tonic.ai guarantees privacy so your Datasets are safe to share with developers, QA, data scientists—heck, even distributed teams around the world. Visit Tonic.ai, to sign-up today or click the link in the show notes to get a free, 2-week Sandbox.

But now back to Yehonathan. Yehonathan is a software developer, author, and speaker. He has tons of experience in full-stack development using various languages such as Java, JavaScript, Ruby, but his favorite language is Clojure. And he bundled and packaged all of his experience and knowledge into his new book Data-Oriented Programming. This is also the reason why I invited him today. And I’m super thrilled that I will dive with him into how to design and build software that deals with information. So Yehonathan, thank you so much for being on my show. Welcome here.

Yehonathan Sharvit 01:19 Hello, McKayla, I’m really glad to be here with you.

Dr. McKayla 01:22 Yeah, I’m also really thrilled. And I heard that you are giving away one of your books, digital copy of your book to one of my listeners. So what do you have to do to win this book? Well, retweet today’s episode and like it, and then you’re in the pot to get one copy of Data-Oriented Programming from Yehonathan. So, but, Yehonathan, what is this book actually about?

Yehonathan Sharvit 01:46 Okay, so this book is about a simple way to reduce complexity of information systems. And by information systems, I mean, a program that manipulates data that doesn’t belong to the program., data that comes from the outside world. For example, a front-end application that receives data from a back end, or a back-end application that fetches data from the database or an API. It could be also a web worker that reads data from RabbitMQ or Kafka needs to process it and passes it forward. So all those systems have in common that they manipulate data. But the data does not belong to it, the data or the information existed before the program, and will continue to exist after the program dies. And those kinds of systems, which is basically what we do on our day-to-day basis as full-stack developers need, I think, a different and a simpler approach to how we represent data inside our programs.

Dr. McKayla 02:50 So I realized that when I looked at the first topic, or the first subtitle, Unlearning Objects, it was very, very clear to me that it somehow has something to do with object-oriented programming, and that you want actually a paradigm shift here. And you think now about data-oriented programming, more or less, right? And so, that this can somehow improve our applications, and probably our maintainability. So what is that shift from object-oriented programming to data-oriented programming? And why should we unlearn objects?

Yehonathan Sharvit 03:24 Okay, that’s a great question. And let me tell you how I see it. I practice meditation. I’ve been practicing meditation for around 10 years now. And to me, there is quite a similarity between what meditation guides us to do and objects. So in meditation, the basic assumption of the basic principle is that the main cause of our suffering doesn’t have to do with the reality itself, but it has to do with the way we perceive reality. So our mind projects, something, an object on the reality. Object causes us suffering. But the reality on itself does not cause any suffering. And meditation guides us to remove the glasses that our mind puts on reality and to look at the reality as it is. And if you are able for a moment to look at the flower as an idea, if you are lucky enough to explain that it’s a joyful experience. And even pain, if something is painful, if you’re able just to feel the feeling of the pain with no interpretation of the mind, with no meaning about what does it mean about me but just experiencing the pain as a physical trigger, then the pain is not as painful as it seems to be. So that’s what’ my take on meditation is. And in a sense, object-oriented programming is causing suffering to the developers because instead of looking at reality, at data, at information as it is, we took our mental model, and then we stepped into infinite complexity system. But that’s not that the data on itself or the information on itself is complex, it’s the tool. The object that we use to grasp data is causing the complexity. So in a nutshell, I would say that most of the complexity that we have in our program is accidental complexity. It’s complexity that we have created because of our mental model. It’s not inherent complexity that has to do with the business domain.

Dr. McKayla 05:25 Can you give a concrete example of how object and object-oriented programming increase the complexity of our system?

Yehonathan Sharvit 05:33 Yes, so let’s take… In the book, I take a simple example of building a library management system. And let’s say in the library, you have books, and you can do many kinds of operations with books and authors. And in object-oriented, what you do is that you create an object that represents an author, and you have methods inside the objects to manipulate the author object. But the fact that you bundle together code and data or behavior and data creates complex hierarchy diagram. Suddenly, many classes need to input the author definition, just in order to access a simple field from the author. Or if you want to create a new author or an author with different fields, you have to create all the method of the author. Or if you want to test how the function of something behaves on an author, you have to create this complex object just to check for little things. Sometimes we say that you want the banana but instead of having the banana, you get the banana and the gorilla and the jungle, while you only want the banana, only one, the name of the author.

Dr. McKayla 06:36 And so how would I design that system? Let’s say with this library, and the books, how would I design that in data-oriented programming? How would that look differently?

Yehonathan Sharvit 06:46 So it will be very simple. First of all, you separate data from code. And now you ask yourself, how should I represent data. So you have stateless objects or modules for the behavior. And you have data with no methods, data objects, or data classes, or data maps for the data. And what is data? Most of it is just record. So its maps are HashMaps, with fields and values. And that’s it. So you represent your whole domain as a nested combination of maps and arrays, and integers and strings and kind of JSON, what JSON has brought to the world since it has been adopted, and not only JavaScript, it’s simple tools to represent data. What do we have in JSON? You have strings, you have integers, numbers, Boolean, node, to represent information that belongs to the real world.

Dr. McKayla 07:37 Okay, and so how would I structure the code in terms of files, for example? Where do I put all that data information? And the functional information will have separate files, two files, three files, 10 files? How does it work? One file?

Yehonathan Sharvit 07:52 Yeah, yeah, the thing that I didn’t mention is that in data-oriented programming, we separate between the data representation and data validation. So let me give you an example. When you create a book with the title, and the publication year, and the list of authors, you just create a map, you don’t create a book object. So you don’t need any class to instantiate a new book, it’s just a HashMap. If you’re in a language like JavaScript, Ruby, or Python, you have dataliterate for that, if you are in a language like Java, or C # or statically typed language, you have a HashMap constructor. So that’s it, you don’t need any type definition for the book. And you organize your functions, you would in a regular object-oriented program, but the functions are much simpler, because they are stateless, they always receive as an explicit argument the data that they manipulate, so there is no implicit leads or set or reference to the object because there is no object.

Dr. McKayla 08:47 Okay, and so you were already talking a little bit about verification. And so for me, the first question that now comes to my mind is that actually with the typing, right, and that I can even create custom types, and then, you know, enforce them in the system. This gives me somehow also security that a book actually is how I imagined a book to be, how do we have that in data-oriented programming? How do we verify that it looks like this? And you know, like, because JSON again, right, we have we have some simple types. But you know, you could present me any data. And I’m not sure if this is…

Yehonathan Sharvit 09:22 Yes, exactly. So you could, for example, receive a map that you think is a is a book and a book, you’re expected to have a field name title. And suddenly you get a map. And the field is named D title, for example. So how are you going to deal with that? And that’s a great question. And the thing is that you deal with that, like when you encounter surprises in the real world. So surprises happen in the real world. If you, over the wire, let’s say you access an API and you ask for a book. And for some reason, there is a bug in the API, the server that serves the API, and you receive a book with a room field. You need to deal with that. And the types won’t be helpful there. The types will just fail, try to pass the JSON into a book with a field title, and there is no field title. And you will have either an exception or a nice error message. So this is applicable exactly the same way. In data-oriented programming, you define your schema. In a schema language like JSON schema, you receive your data presented as a hash map. And there are libraries in all languages alone to validate a piece of data against a schema, you validate, if it’s valid, to move forward, if it’s invalid, you deal with that by sending an error message to the user, by whatever, how you deal with that. But the important thing is that you embrace surprises, you don’t assume that everything is going to work as expected. Like in real life, you know, you learn at university, you read books, you consult professionals, if then you expect that life will behave exactly as you have been told, you’re going to be quite upset. So the approach is that you embrace changes and surprises. So you have modeled, you have expectations, but you have little maps or glasses, but you don’t confuse… There is a great quote that I remembered today or yesterday about the map is not the territory. So objects are like map, schemas are like map. Quite often in object-oriented programming, we tend to think that the map is the territory. There are no objects in the real world, the information about the book is not an object. It’s a piece of information, you might decide to represent it as an object in your program. So that’s your map. But that’s not the territory. While in when you represent your program information about the book, string map, just a map with keys and values, this is much, much closer to what it looks like for real, there is less of an impedance mismatch between how the information exists in the world and how you present in your program. So it’s a move of humility in the sense.

Dr. McKayla 09:38 And so I think I get a good understanding of how it’s different from object-oriented programming. But what’s the difference to functional programming now? So where do they overlap? Or where do they differ, those two different ways?

Yehonathan Sharvit 12:10 Yeah, that’s a great question. So first of all, they overlap, functional programming and data-oriented programming, by both approach in that we need to separate between code and data. So that’s exactly the same. But when it comes to how should we represent data, in most functional programming languages, like Haskell, OCaml, etc, you’d use custom types to represent data. While in data-oriented programming, you don’t use custom types, you use generic data structures. So that’s the main difference. And there is another area where they overlap, the data is immutable, in both in functional programming, and in that alternate programming, we never ever mutate, we always create a new version of data to manage changes.

Dr. McKayla 12:54 Okay, so one of the big benefits from data-oriented programming that you see is that we don’t have the custom types. I’m a big custom-type person, right? I’m always happy if I can create the type. And I have, you know, some enforcement around that, you know, you already described it to me, but still, what are some of the really cool things? Or why does it help me not to have the custom type and not such a strong typing system around what I’m doing?

Yehonathan Sharvit 13:23 I’m going to send you back the question, what is it that you liked so much about type?

Dr. McKayla 13:27 Well, so we were thinking about complexity, and I think I’ve never, not at least intentionally wrote a data-oriented program, right? So I can just go from my experience that I have so far. And I would say that strong typing helps me to avoid a lot of complexity around ensuring that, you know, the thing that I’m getting is actually what I’m getting, because it’s already, you know, somehow, even before it runs, right, so it’s definitely, I can statically assure that this works. Now, if I remove that layer, I feel like very insecure, I feel like oh my god, now I have to write all this logic that you describe of like, I’m dealing with this uncertain world. And I have to check this and that. And I totally understand that this is somehow reality. But on the other hand, why do I have to create my reality more complex, in my mind, right? More challenging than it has to be? Because if I have the type system behind it, I can say, well, I know that this is a book and this is how it looks like, and otherwise I will not receive it here.

Yehonathan Sharvit 14:27 Perfect. Great question. Before I answer, let me ask you another question. Do you also enjoy the kind of help that you ID gives you when you have type, autocomplete… that you can never miss type a field?

Dr. McKayla 14:40 Yes, I actually like that. Yeah. And I like that. I have a tooltip that I know Oh, these are the fields that I need. You know, like, I love all of that very much.

Yehonathan Sharvit 14:49 Okay, perfect. What you said totally resonate to me. Now, are there anything that you dislike this type, or for you it’s the best that could be in the world?

Dr. McKayla 14:59 There are probably tons of things that I disliked. But now that I have to think about it, but you probably can tell me…

Yehonathan Sharvit 15:06 Okay, let me challenge you, when you have, let’s say a book record. That is, how easy it is to serialize it to JSON?

Dr. McKayla 15:13 It depends. If I need a higher library, sometimes it’s easy. Sometimes it’s hard.

Yehonathan Sharvit 15:18 For my experience, it’s always had with static typing. There is no native way to take record a custom type and to serialize it to JSON. You need always to hack something to use reflection, or some kind of hack. You agree.

Dr. McKayla 15:35 It’s not straightforward. It could be, it could be more straightforward. Yes, I agree.

Yehonathan Sharvit 15:39 if if you program let’s say you write a game, for playing with the library, then you create the books and the books stay in the program. So you never need to externalize data, that’s fine. I have nothing to say against types, because it’s a closed system. But if the moment you need to externalize your information to other, you need to go out of your types anyway.

Dr. McKayla 16:04 I never saw that as a real problem. Because it’s just another step of things that we have to do, right.

Yehonathan Sharvit 16:11 I’m curious, how do you serialize? Let’s say you have a nested record that describes the whole library with books and authors. How do you make from it? No, I’m ot saying that… Yeah, it definitely takes time, right? It takes time and effort. And you have to write it, right? I probably write the record, but I’m not sure if this is. Or I asked the other person… Yeah, you write to custom logic for any piece? Okay. So one challenge, another challenge. Let’s say you have in the book, you have a field called title and field, publication year and a field author. And let’s say you want to rename one of the fields, you want to call it, author, because that’s how you need to send it over the wire for some reason, what are you going to do? Create a new type, exactly like the first type. So it’s going to be called Book Two, which is exactly a book, but just the field also is called the book author. Usually there is a profusion, a profusion of types. And yeah, each little module that needs to have a different look at the same data or very similar data will create its own type. That’s the kind of complexity I’m referring to. There are types that are intertwined with different things, different glasses to look at the same reality. Another example, let’s say you have two modules that have the same type with the exact same field, but one type belongs to one module, and one type belongs to another module. Now you have one by module, a one by module b with the exact same field. If you compare them, the language will tell you it’s not the same, two different type instance. But the fields are the same. So it’s two glasses, that look like the exact same reality. So instead of comparing reality, you compare your glasses.

Dr. McKayla 17:53 Yeah, I think I probably would need a very concrete example to see the different instances of how or when I encountered those problems. But I see where you are heading towards. So what are the programs that you wrote, or the products that they created, where all of those challenges that you describe have been so predominant, that data oriented-programming really made sense? And how did you switch from, you know, like, probably had like already a codebase? So how do we go from that codebase that we have to a data-oriented code base? What steps do we need here?

Yehonathan Sharvit 18:20 Yeah, if you take a look at the book, you will see that basically, data-oriented programming is made of four core principles. You don’t have to apply all of them, you can apply principle number one of data-oriented programming, and change your code base according only to this principle. So for example, you will take a class that combines code and data and split it into two classes: one for the code, one for the data, and it will be already… It will have beneficial impact, if will lower the complexity of your class diagram. After that, you can say okay, this piece of data, maybe I can represent it as a HashMap. Instead of creating my custom type, and see if it makes sense, maybe something that you need to send over the wire as JSON, instead of creating a custom type and then a custom JSON serializer take a look and say, Okay, this, it will make sense to leave it as a HashMap. And then you get the serialization JSON for free. Then the third principle, you can play with schema languages like JSON schema, and see how it looks like to define the schema of your API, defining the rules inside your classes. And then for example, you have a REST endpoint that expects a payload with a specific shape. You define the payload of the request… JSON schema, and you validate that the requests that you receive correspond to the schema. And finally, the last principle, you can avoid mutation and instead of mutating in place you try to create when it makes sense a new version of data and see if it helps in terms of state management.

Dr. McKayla 20:03 But it also means that it plays nicely together we can have an object-oriented or functional programming environment or system and then add…

Yehonathan Sharvit 20:12 Yes.

Dr. McKayla 20:13 Parts that are benefiting from the data-oriented paradigm and transfer that into that?

Yehonathan Sharvit 20:20 You could have an object-oriented programming style or language, embracing the data-oriented programming paradigm.

Dr. McKayla 20:28 Okay, but it can still live together, right? So I can have like a large part of my codebase has objects and works in an object-oriented way. And as you said, Maybe I’m taking just parts of some of those objects and separate data from logic and so on. But the rest will still be very OO, right? Object-oriented.

Yehonathan Sharvit 20:48 Yes. And that will be the advice I would give to someone, not to adopt the will directly but to try when it makes sense. And if you… it’s a place where you’re really scared, let’s say if you don’t have your types, it’s fine. Don’t start from this place.

Dr. McKayla 21:01 Okay. Another question that I had for you is that I wanted to say data-intensive application. And in our pre-recording session, you said no, no, don’t say data-intensive application, say, information systems. Why? What’s the difference for you here? I think I grasp it now a little bit. But I think probably it has to do that it doesn’t have to be data-intensive. You can just have normal data usage. But why do you prefer information systems and not data-intensive applications?

Yehonathan Sharvit 21:32 Yeah, that’s a great question. When I hear the word information, it’s clear to me that it’s something that exists outside my program. information could be in a database information could be in a program, it could be in a file, it could be in the real world. And when you say data-intensive application, to me, it sounds like something at scale with lots of data, lots of traffic, that has nothing to say about how to manage data at scale, it has to say how to represent data in a simple way.

Dr. McKayla 22:03 Okay. Yeah. I mean, a lot of systems have databases at least, right? Like they are probably applications that don’t have a lot of information. They don’t need a database, but I don’t know many…

Yehonathan Sharvit 22:15 I mean, they need a database. But what I mean, is that the scale doesn’t have to be… the throughput doesn’t have to be big.

Dr. McKayla 22:22 I understand. Yeah. So actually, every application that has or deals with data and information that stores it, somehow retrieves it somehow, transforms it, it would be interested to look at data-oriented programming, in your mind, or are there some specific kinds of applications that you would say benefit more?

Yehonathan Sharvit 22:40 Any application that is in the stack of what we call full-stack development, front-end, back-end worker will be… it will benefit. I think where it doesn’t make any difference with…. it won’t benefit. If you want to write a compiler, or to write a game engine, or something that lives in a closed ecosystem, where you have no surprises. If your data never surprises you. And you don’t need to send it to other, you don’t need data-oriented programming.

Dr. McKayla 23:09 Yeah, I like that. That’s very clear.

Yehonathan Sharvit 23:11 If you communicate with data to different systems that use different programming languages, then it makes sense.

Dr. McKayla 23:18 Okay, so the last question I have for you is about the style of the book, actually. So your book is actually written a little bit differently. It’s a story, right? It’s a story and the whole information, the learning experience is actually guided through personas, characters that are doing something, why did you choose to write the book that way? Which is very different from other technical books?

Yehonathan Sharvit 23:43 Yeah. So there are several reasons. One of them is that I like story. And I need to admit, it’s difficult for me to read technical books. It’s very difficult, I get bored, or I fall asleep. And when I read the story, I’m entertained, I’m energized. So I wanted to invent a story. But it’s tricky to make a story in the context of technical material, but I wanted to. I had this idea in the back of my mind. And then when I wrote the first chapter, as a regular chapter, I struggled with finding the proper tone. I was either too enthusiastic and too selling or too boring. I didn’t know how to deal with the objections that I know the readers will have. So I played a little game between me and myself, part of me that played the data with the programming mentor, and other parts of myself that would play the developer. I made little discussions between them. So the mentor would say, types are problematic. And the developer say, but, why? I like types. It brings me safety. Uh huh. And then he challenges m,e then I need him to answer his question.

Dr. McKayla 24:54 Oh, that’s what you did with me today.

Yehonathan Sharvit 24:56 Yes, yes, exactly. I was already prepared. And sometimes, I felt like kind of schizophrenic. Like I have two personalities. But for me, it was the best way I found to deal with questions. And many readers told me that quite often when they read the book, in their mind, they see the character as the question just the moment the question arises in the mind. So that’s how I decided to make dialogues between the character and others. Okay, now I have the dialogue with, they’re going to talk forever with no context? So sometimes I put them in the coffee shop, and sometimes in the university and sometime in the office at some time in the park, and sometimes in the countryside. And then I made a little story around the character and their journey toward enlightenment.

Dr. McKayla 25:45Yeah. And so Manning, right, this is a Manning book, right? Manning has this pre-access, early access thing. Yeah. And you have people that actually read already your book, and you’re getting feedback. Do they like this kind of new style? Are they surprised?

Yehonathan Sharvit 26:01 I think they’re surprised and they like it, and they comment on it. And they provide very useful feedback on it allows me to improve the book, while I’m writing, I also have a reader from… As you may have guessed, I’m not a native American speaker. I was born in France. And I have a friend in Boston, I think, that liked the book and offered me to review the whole book, and reformulate it in proper English.

Dr. McKayla 26:26 Oh, nice. That’s very good.

Yehonathan Sharvit 26:27 We had two weeks of fun together, we sent him the chapters, and it will send me reviews and comments. And it move dbeyond only correcting the English. He suggested little changes to the story, to the setup, to the characters. That was one of my best experience, my best interaction with readers, that they actually participated in the book, they contributed in the book. Is that open source, it’s like an open-source book, in a sense. A collaborative book.

Dr. McKayla 26:54 Very nice, yeah. And so this actually brings me to the end of our episode, and I want to remind our listeners that they can win a book, you are giving away one copy. They have to retweet and like this episode to have this chance. And then in a week, 10 days later, I will, you know, raffle and pick one lucky person that can read the whole story and find out where the characters are around and how they’re discussing the pros and cons of data-oriented programming. So Yehonathan, thank you so much for being at my show. It was really a pleasure to talk to you. And yeah, thank you so much.

Yehonathan Sharvit 27:32 Thank you, McKayla.

Dr. McKayla 27:33 This was another episode of the Software Engineering Unlocked podcast. If you enjoyed the episode, please help me spread the word about the podcast, send the episode to a friend via email, Twitter, LinkedIn, well, whatever messaging system you use. Or give it a positive review on your favorite podcasting platforms such as Spotify or iTunes. This would mean really a lot to me. So thank you for listening. Don’t forget to subscribe and I will talk to you in two weeks. Bye.

Improving Code Reviews with Github’s Copilot

How does GitHub Copilot and Codespaces help data scientists to write, understand, and review code?

Do not punish learning in software engineering teams

What does it take to foster a workplace culture where employees, specifically coders, have the liberty to learn without feeling punished for it by the system? Innovation is impossible without failure, but most work cultures suffocate creativity without realizing it.

In this episode, I talk to Dr. Cat Hicks, a data scientist, a behavioral scientist, and a creative entrepreneur.

We talk about:

  • how she deviated away from a traditional path of a researcher to start her company, Catharsis Consulting, 
  • how to foster a learning culture within your engineering team
  • what learning debt is and 
  • how learning debt hinders software engineering teams to reach their full potential. 
Dr. Cat Hicks

Today’s episode is sponsored by Codiga, a smart coding assistant and automated code review platform. Try Codiga for FREE!

Subscribe on iTunes, Spotify, Google, Deezer, or via RSS.

Transcript: Foster a learning culture in engineering teams

[If you want, you can help make the transcript better, and improve the podcast’s accessibility via Github. I’m happy to lend a hand to help you get started with pull requests, and open source work.]

Dr. McKayla 00:03 Hello, and welcome to the Software Engineering Unlocked Podcast. I’m your hosT Dr. McKayla, and today I have the pleasure to talk to Dr. Cat Hicks. But before we start, let me tell you about an amazing startup that is sponsoring this episode Codiga. Codiga is a code analysis platform that automates the boring parts of code reviews and lets you merge with confidence on GitHub, GitLab and BitBucket. I’ve worked with Codiga for around one year now, and I love how it guides me in discovering the, well, not so nice parts of my code base. But there is more: Codiga also has a coding assistant that helps you write better code faster. Find and share safe and reusable blocks of code within your favorite IDE on demand while you are coding. Codiga has a great free plan, and so there is nothing that actually stops you from giving it a try. Learn more at Codiga.io. That is Codiga.io.

But now back to Cat. Cat, or Catherine Hicks holds a PhD in experimental psychology and is a principal researcher in Team Lead at catalysis consulting. She has designed researchers at places like Google Khan Academy and co founded a startup that builds tools for software engineers, and she led multi institutional collaborations in online learning. So I’m super, super, super thrilled to have a cat here with me, Cat, welcome to the show.

Dr. Cat Hicks 01:30 Thank you so much. I’m really excited to be here.

Dr. McKayla 01:33 Yeah, me too. I’m following you for a long time now on on Twitter. And I was very impressed because you have a similar not the same, obviously very different. But you have a similar background, like coming from academia and then going independent. And and so yeah, so it was very interesting to see how you built Catharsis Consulting. And you’re the founder of Catharsis Consulting, right?

Dr. Cat Hicks 01:59 That’s correct.

Dr. McKayla 02:00 How did it help people with empirical research and also empirical research? I really a software engineering area, and you are now empirical researcher coming from experimental. How do you help companies?

Dr. Cat Hicks 02:14 That’s right. That’s right. So it’s delightful to connect. I think there are a growing cohort of us out there, you know, in the world who have made this journey, and there’s not really a roadmap for us. So I’m always I love to talk about it.

Dr. Cat Hicks 02:27 I like to call catharsis and evidence-science consultancy. So this means that we help partners use evidence to inform their decision making and tell their stories. And in particular, we’re very focused on meaningful measurement. So I describe it to people as not just data for the sake of data, but creating research methods that give us data that’s fit for purpose. So I try to help partners who are trying to learn something real about the world they’re working in, and how to move forward. And we have a couple

areas of competency and special focus. But we’ve led projects, it’s easier to give examples right, then talk high level. So some recent projects are, I’ve asked things like how can we find evidence that a product design change in a language learning game actually increased the learning that was happening for children using the game. Another recent project is using surveys to help a small nonprofit tell the stories of how community members that they worked with, were helping people in their own families and in their social networks, learn about the COVID vaccine and make the decision to try to get that vaccine. So both of those projects, very different scale for those projects, very different types of data. But both of those projects connected to really immediate impact, whether it was on product design, or on an intervention, and programming that help doctors have better communication with their patients. So at catharsis, you know, we try to bring a few core principles to all of our research projects. One of them is just that people deserve to understand their data, and to really use the data that they already have maybe special access to, and to try to bring the tools of empirical research to everyone, even small organizations that may not have invested in learning those skills before. So one thing that we bring in a lot of our partnerships is an emphasis on teaching those research methods and taking it not just from, you know, findings on one project right now, but actually fitting any work that you do with data into a larger plan of moving forward.

Dr. McKayla 04:39 Yeah, and it sounds really, really exciting. And it reminds me, I’m more on the training side, right. So I’m helping a lot of software engineers actually get better at code reviews, but all of that also based on empirical research that I did around code reviews, but recently this year, actually half of the year I spent on I’m a research project with this startup and help them come up with a framework on, you know, what makes developers developer experience really great. And they created a product out of that. So I can totally relate to that. And it was really a wonderful experience. But the experimental nature of research and startup somehow there was also a lot of tension, I would say, right, there was a lot of, you know, it’s very different than in an academic world, you have like these questions, and here was, every day, I want to squash the question, is this impactful? Is this impactful? Right? I don’t know if you experienced that as well. And how do you handle that in your work?

Dr. Cat Hicks 05:42 I think we all experience right, right, you know, there’s a tension between things that you’re doing for the long term and, and needs that are in the short term, and then, you know, just to be really real about it, I think there’s a lot of people who have agendas about what we’re going to find. And yeah. And I, you know, I try very hard to always work with partners who, who have told me, you know, we are going to make changes based on what we find, even if the changes are uncomfortable to us for even if it it, it helped, we learned something that conflicts what we thought was before, this is very important for social impact work, you know, is very important for equity, when you’re going to do anything that has to do with people’s well being, but it is a core tension. And I think that researchers, we tend to be people who love the truth, right? And we’re just all about finding out the truth. And that can ruffle feathers. I love to do exactly what you described, where you go from working closely with people who are living an experience, and then translate that, you know, to leaders and to organizational structures. And I think it’s a beautiful role to be in, but it requires a lot of invisible work, right of explaining both sides to each other.

Dr. McKayla 07:00 Yeah, and, and working with this tension, right, which I think, is tell for me, it was a very challenging time at a time that I learned a lot. Because I’m, you know, for me, the rigor of the methodology is the most important thing. Right? And, and then comes time for the sort of, it’s more the time and then the rigor I think, right? Like, yeah, obviously, you know, like, at least a little bit, there is the priority or they are more stressed by a timing, then you know, then a researcher probably, yeah, and so on. So you have to deal with these tensions. And I think it was a very, very interesting learning experience for me. But what I really love this, that I could see, this research transformed into a product. And this was, this was actually the reason also why I loved academia because I was missing that. Yeah, getting real, right, I created a lot of prototypes in my in my research career, and actually think some of them maybe would even have had some potential even for open source, right, maybe not making tons of money, but some open source software that people would have used. But it was never the time. Again, we are coming back to time, but in a different way. Right. So the time was up after the paper is published, the time was up to work on that. And so I felt like I couldn’t really translate it into what I would like to see. Right. And that’s why I left for example, academia. How is that for you? Why did you leave this traditional path of a researcher and and start your own company and do your own thing go independent? Right?

Dr. Cat Hicks 08:40 Yeah, for sure. So you know, I think that it’s interesting because I am a researcher who likes to study environments. So whenever you ask someone about their choice as an individual, I think you have to see it also as a choice about what was around them. So I’ll be uh, you know, I’ll be real about that. I mean, academia is very hard to succeed in, not, not because of the quality of your work, but because of the opportunities that are around. And I but I think that there was a really core piece of what I loved. So I started out working in classrooms, I started working, asking about the beginning of how we learn to learn and even in my academic work, I was very interested in being in real schools talking to real children was where I started I did a dissertation with 3 to 11 year olds, so you can imagine Oh, yeah, yeah, asking young children about their how they were thinking about mistakes and how they were thinking about learning. So from the very beginning, so cool, you know, it’s amazing how much it pays off, right? Because we all we all start there and even now I work with adults, you know, and, and yet, all of the same questions come up all the time. So, you know, I think getting I found it beautiful and amazing that people are constantly scanning around them asking whether it’s okay to make mistakes and asking who they can talk to. And I just, you know, I saw a lot of exciting stuff out there in in tech. I think the journey for me too, there’s a personal, you know, that’s kind of the problem space. But being an entrepreneur is also a way for me to carve out this role that I did not see existing. So I always felt a little bit like, I’m a social scientist and a data scientist. I’m a data scientist, who cares, you know, about how we measure things. I like meaningful data more than big data. You know, it felt like with catharsis, it was a way to make the job that I wanted to have, you know, to do these kinds of projects.

Dr. McKayla 10:47 Yeah, that’s exactly what I did as well. I love create the job that I would like to do that, then that I feel like I can strive it.

Dr. Cat Hicks 10:57

And it takes courage. Yeah, no, you have to have to say, I know this is valuable, which I think you do as a researcher, just like you were talking about that startup, sometimes you have to be the person who’s saying, I know that this will pay off if you will do it, you know, you haven’t measured it. So you can’t see it yet. But I know it will. Because I’ve been there working with people and I see their pain and frustration or whatever else. And then they build it into a product. Right. And it does pay off.

Dr. McKayla 11:23 Yeah, exactly. Right. Yeah. So I looked at your newest report, which was super interesting for me, because it is around the software engineering teams. And there you shed light on the learning debt that we have, and how that can affect engineering teams. Can you tell us a little bit more about what this report is about what this software? Or what is research actually investigated? Or looked at? And what is what is learning data? And why do we have it as software engineers?

Dr. Cat Hicks 11:56 Yeah, great question. So as a part of Catharsis’ work, I can occasionally invest in this sort of work basically, for the field. So this is a report I did, because I found it really interesting, and shared publicly, and it’s called coding in the dark. I interviewed 25 software engineers or developers, and I asked them to share about their active problem solving as they were ramping up on an unfamiliar codebase. So this was people talking about their real jobs right now. They shared about code review, they shared about how they asked for help, how they collaborated. And I’ve shared a lot about, you know, what we talked about. And essentially, you know, what I found was even at these really big tech companies, most of the people I was talking to, we’re all at big tech companies. Even at these places, people’s experiences were really quite frustrating. So I called this report coding in the dark, because that was a quote from one of the people I interviewed, describing how they felt every day, like they were showing up, and the lights were all off, you know, and that they were having to fumble their way through learning without any help from anybody. And there was this core tension that they experienced between feeling like it was so important to learn to build their understanding, to experiment, iterate, but then when they showed up, you know, to code review, and to other moments where they were being evaluated, that learning was not being valued. So I described this cycle, you know, of needing to do this work, and then finding it devalued. And going back to your kind of heads down at your desk, you know, I describe that as learning debt. And learning is essentially the dynamic that happens when people know they need to put a lot of effort into learning. And they know that the kind of work they need to do requires these mistakes. And it requires this long term understanding. And there’s kind of all of this stuff that you’re doing that’s sort of invisible, because it’s not showing up in your productivity. And they also know that the environment around them is only measuring that short term productivity. So in this kind of environment, where there’s a lot of learning, debt, accumulating, essentially, you know, learning you have to be do that you’re not getting rewarded for there’s also a lot of performance, pressure, and what’s worse, you know, things like documentation, writing code, comments, trying to help other people, you can actually feel actively punished for doing that. Another quote in the one of the interviews I led was that learning would be seen as a waste of time. And I think one of the engineers called documentation and code comments, a red flag about your abilities as an engineer. So you can imagine how that feels. You’re in an environment that’s telling you to do all this complex work, but also telling you that it’s a waste of time if you help anybody else. Learn from what you’ve learned. So, you know, a big conclusion that I have in this report is this debt cycle this learning debt cycle can accumulate

damage for a long time because teams might look very productive on the surface, but you’re building what’s really an inefficient experience for learning. So I’ll stop there and kind of Yes, more.

Dr. McKayla 15:09 So yeah. Tons of question for now, the first one is really what kind of persona did you interview? You were saying people that are new to a code base, but it is, are you? Did you ask them when they were onboarding? And is that the onboarding experience for people? Or is that somebody that’s already on a team, but within you problem, it sounds more like an onboarding, experience. And, and, and heavy onboarding experience. But

Dr. Cat Hicks 15:37 yeah, it was a mix, it was a mix. So I think that one thing that’s interesting is that you might think, Oh, this is somebody who’s just new to a whole company, you know, they’re experiencing the, but actually, I found this was a repeating cycle. So some people were fairly junior, you’ll see there’s a, there’s a cross section of seniority. So we really wanted it is a qualitative project. So it’s, it’s not intended to be a representative sample, I think, you know, follow up surveys on this kind of thing would be really, really fun to work on. But in this cross section, we did have a good number of junior folks, but also senior folks, even a couple people who are leading the engineering teams at their organization, I did ask them to bring in an exam, think about before the interviews, when they were a recent problem they had of basically trying to understand someone else’s code. So if this for some people, this was a really brand new codebase, right, like the whole thing as they were joining a company, but for some people, it was just a piece that they hadn’t really touched before. So yeah, it was happening really all over the place. Right? Yeah. So the

Dr. McKayla 16:48 other question that I had, when I tried to envision this is, what kind of learning because there are many things that are you know, that we can learn as software engineers, and I feel that everything that has to do with technology is rewarded, and is seen as something, you know, that that you get some credit for at least, and that it’s also very internally, a lot of engineers like to learn new technology. But then if you’re coming to code basis, the main knowledge, right, all the work that you have to do to understand this piece of code for code review, and so on, right? I can maybe relate more than this is the kind of learning where would see this, you’re, you’re supposed to already know it. Right? So let’s skip that step. You know it, and then you do your productive work? And why do you you know, this is somehow the invisible thing? Is that is that, you know, is my just guess, here? Is it going in the right direction? Or what kind of learning? Did you? Did you investigate here?

Dr. Cat Hicks 17:48 Absolutely. And I love that you have called out the complexity of learning. And you know, it’s learning is a big word for a lot of different things. Right. And, of course, you’ve had some really phenomenal thinkers who have broke out on this podcast that I’ve really enjoyed, who’ve talked about, you know, productivity is not one thing, satisfactions not one thing, the same could be said for learning. So, you know, I, I thought a useful contribution in this report would be to talk very broadly about the beliefs we have about learning. But the actual specific examples are a lot of different things. And I think it does map on right to, to exactly what you said. So developers feel like, Oh, if I’m learning a new language, or

a new piece of, you know, a new tool, something that’s very explicit, right, that’s easier to defend. And it’s easier to justify. But the focus is always on the technology, right? And the production and not so much on, oh, now I really understand how this other team has a mental model of, you know, this connection piece, or I really understand this dependency that happens. And I understand these trade offs.

Dr. Cat Hicks 18:55 So you know, there’s actually a tremendous amount of content I got in these interviews, that’s not even in the report, because it was so much. I think it could be another report on the kind of active learning that they were doing. And a lot of it felt, you know, almost secretive, like people were saying, oh, you know, I’m sure no one else has to do this. Like, I do have to go back and remind themselves, you know, because I don’t want to talk about it, because I’m afraid I won’t look like an engineer. But the reality was, to me a lot of that stuff, like thinking about the trade offs of different decisions you made thinking about whether a design decision, you know, that we put on paper really was that way in the code and even questions that are kind of like, is it worth the investment to fix this inefficient piece when I could instead be working on this other piece? You know, these are very abstract things for people to be thinking and learning about but they’re really, really critical. And I was reminded to, there’s a lot of myths around learning, right? And as a social scientist, I recognize some of these myths. So people will tend to think, once I learned something, it’s just learned forever, right? It just goes into like, my brain is a bucket, and I just dumped something in there. And it’s always gonna be there. But actually learning is really a behavior over time. So the mourn environment cannot see it as shameful, but see it as beautiful and productive and great that sometimes we’re asking each other for help. We’re reminding ourselves how things work, you know, and you see that when developers talk about googling for answers, right, and asked on Stack Overflow, and all of these other kinds of things that people do. But it was interesting to me how much they hid that stuff from their environment. Yeah,

Dr. McKayla 20:44 yeah. Because the real engineer knows all the keyboard shortcuts.And I think it’s so it’s so true, what you say, right? So learning what is learning? And if we are making a decision around trade offs, I think very often it’s not framed as learning. And then it’s also how, you know if I can write it down. And you know, if it’s not in a book, if it’s a very specific instance of something, another general thing that I can learn. What does this even mean? Right? So we learn, for example, about object orientation, and you know, how to how to have objects, but then to really think about this piece here. And the instance of should I create an object here? And how should the object look like and that I have to think about that is a little bit shameful, because, obviously, I learned object oriented programming. And so it should be easily coming to me, you know, what methods I should put in here, or naming, right? naming a method? Yeah, it’s also learning somehow, or we have to put the time into, and then it’s hard. And even though we make jokes about it, if somebody sits next to you, and you have to think about a good name, and only stupid names come to your mind. It’s horrible.

Dr. Cat Hicks 22:07 Yeah, and I think you’re, you’re, you’re pointing out something that’s actually really, really important here, which is, you know, there are good jokes and bad jokes, right. And we’ve, we’ve been around, we’ve all probably been around someone who has made a joke, you know, that has made us feel really

bad about how we learned or a mistake that we made. And this is something that came up in the report to that, you know, I think one of the quotes was, I’m always watching, like, I’m from a junior code writer, or someone said, I’m always watching the senior members of my team, because I want to know, what an engineer is supposed to sound like. And that can be really beneficial. If the people around you are saying things like, we all make mistakes, we all forget something, you know, we all help each other. That’s a good learning culture. But a negative learning culture, right? A bad culture is a place where people are, are saying, oh, you know, don’t waste your time, like doing this documentation. Like in order to get ahead, what you actually need to make sure you’re doing is putting on this performance. You know, things are very multifaceted, as you know, all of these things are always happening at once. But I do think that there’s in engineering culture, there’s a lot of myths around what brilliance looks like. And this is where I’ve pulled from some research from people like Andre Symbian, who’s done some work on, you know, when a field thinks that you don’t make mistakes, you have to just be born brilliant, then that is a story. That is not how it works, right. But we’re all kind of upholding that myth.

Dr. McKayla 23:41 Because we all want to be the 10x Engineer, right? And then we had to have 10x engineer. Oh, my God. Yeah. No, but something.

Dr. Cat Hicks 23:51 Yeah, something that, you know, just just hurts my heart, honestly, to is is like, the people who people do this work, right. People do mentor other people, they do support learning. And that actually is what creates 10x results. It I mean, investing in learning is one of the most evidence backed ways that we have to you need to do work together. And I had, if we could see it as something that we are sharing, and that we’re all working on outside of ourselves, you know, it’s it’s never about, you write bad code, I write bad code. All right, fine. Like we work to make the code better. It’s outside of us. And it does not tell me who you are as an engineer. In fact, a good engineer is someone who’s written a lot. Yeah, I mean, we need to, you know, we need to improve things and give feedback, right. But I think we need to value the messages that that feedback sends.

Dr. McKayla 24:47 Yeah, I think that I want to come back to this different kinds of things that we learn and, you know, writing good code, whatever that means. And it’s also I think, changing over time. What is good code, right, whatever, what is a good way to write code but a good applications, how to structure them that also evolves? But again, I would say this is this textbook knowledge, right? And then I think what’s, and this comes back to code reviews and to the data day to day work that we have to do and to productivity a lot as well, is this constant learning? Right? I cannot stop learning. I cannot, you know, it’s not like, Oh, now I work. You know, obviously, you get better at this code base, and more familiar with the terminology and with your, how your team works, and so on. Yes, right. But still, even if I’m at this team for three years, and have worked with this code base for X years, right? If I have a new change that somebody else wrote, then I have to look at this code. Yeah, starts right there. And you know, and I cannot come in and have this full bucket of knowledge of how that works. And then, you know, supposed to already point out what was going wrong here. And maybe it has to do with how we measure time, and then a lot of people I think, have really problems with time, I have a lot of problems with time, like, when when should I leave the house to be on time, right? And I think very similar, we

estimate, for example, how long will it take to make to look at this code and give comments. And very often people reduce that to the time to make the comments, but this learning part that is never stopping continues and will have been added nobody wants to talk about and you know, nobody actually wants to have and nobody has time for it. That’s that somehow gets forgotten or is forgotten. Right? Yeah. Oh, I

Dr. Cat Hicks 26:42 agree. I agree. And I time came up a lot in these interviews. And it doesn’t surprise me because, you know, we all have felt this time pressure. And what I kept asking was, you know, if you’re experiencing this time, pressure, like, what is the the first thing that gets cut? is, honestly, to me some of the most valuable stuff, and that is really hard for people. So, you know, there is a sense in which I think I totally agree that doing this work, the learning will never stop. And you’ll you know, it can feel a little overwhelming. But I think that that’s a reason to say, you know, what success is not you getting to the end of your learning. Like that’s not what success is success is having enough space to make a good decision instead of a bad decision about how we move forward. And I, I did see people go through that. And actually, you know, I agree that it’s very difficult sometimes with this work to predict how much time it’s going to take. And I experienced that with my own work. People ask you to do a research project. And you say, okay, like, it sounds, it all sounds good. But I need to get in there and see what the truth is. And we might learn, it’s way more complicated. So I think about things like, you know, can we have measurements of productivity, that is dynamic, that we’re able to come back to and change it, and I think people will get get very, very frustrated, you know, when they are assigned a project, they dive into it, they do all this learning, actually mapping out how complicated it is, is a very valuable piece of learning that they’ve done, and they turn around and they want to share that with somebody, and there’s no way to share that, you know, there’s no way to kind of get credit for it. So that’s, you know, that’s one thing I think about is if we can make some of that more visible, right, like, like, allow you to use the learning and share it with collaborators, I think that people really enjoy that they feel the productivity of it, even if your goals of the project change. Another thing is, you know, can we talk about where time pressure makes sense? And where it doesn’t make sense, right? So can we prioritize and and see the cost of putting everyone under a time crunch all the time? And where that is just creating these learning cycles? Yeah. So

Dr. McKayla 29:06 what I want to understand a little bit more is, there were definitely some outcomes from this report, tell us how prove right? How can we reduce these learning that how can we have this growth mindset? How can we, you know, how can we in our at least in our engineering team, a celebrate learning and make it a bigger priority? What are some of those outcomes? What can you suggest engineering teams that want to improve their learning experience? And, and the valuing of that?

Dr. Cat Hicks 29:40 I think there’s a piece of this puzzle for every different role, right? So, you know, from leaders, from engineering leaders, these people could have a really outsized impact on the culture and I think that you know, a lot of places will put a poster on the wall that says everyone could learn or or maybe there’s a bullet point in a slideshow about like we’re alerting culture. But if you go to work and you see someone actually get rewarded for a complicated learning situation like, hey, you know, we gave, we

told you to go try to do this thing in the codebase, it turned out the thing we, you know, the thing that we proposed was not possible to do. But you did all this learning, you figured out a better way forward, we’re gonna celebrate that instead of, you know, coming down on somebody for it being not what we expected, those kinds of moments. And I think leaders have the ability, you know, to, to notice that to try to push themselves to amplify that that can have an impact. Another thing I would suggest, you know, that I suggest in the report is, we honestly need to separate some of our development feedback from some of our performance feedback. So okay, I don’t know how many conversations you’ve had with engineering friends, about perf cycles. But perf cycles are a huge source of stress. And even though we have invested, this is a whole area of research this ton of people, you know, who look at this, but even though we have invested huge structures into it in tech companies, a thing that I keep seeing as a learning scientist, is that we are rarely letting people have psychological safety to talk about them learning. So I think that a very simple step that leaders could take, is to make space to separate when you’re talking about how you want to learn and grow and develop and maybe explore areas of growth for you. And separate that from promotion, performance, reputation management times that you are trying to defend yourself, which is very difficult, you know, you can’t really do those two things. At the same time. I have a number of other recommendations in the report, you know, I think that there are some simple steps like, have we put any time in our calendar for documentation? Or are we just acting like that’s gonna happen magically by itself? You know, so there are small and big steps to try to make yourself a learning culture. Does that all make sense?

Dr. McKayla 32:05 Yeah, totally. And I think documentation again, is, maybe it’s the last thing that I want to talk a little bit about. Because I think there again, we have these two different kind of learnings of information of sharing. So you have this external documentation of how things work, right? And, and people agreed, and you know, in API needs documentation, but then the nitty gritty part becomes a little bit translucent, right? It’s like, oh, this method, actually, you should be able to understand it just by looking at the code. Otherwise, the code is not good. And don’t put a comment there. That’s really bad. Right? And I, I, sometimes I, I really can’t understand the problem here. Because while it’s great, if you know, and there are different learning types, and you know, in different people that maybe somebody is easier, you know, it’s easier for them to look at the code and really get it then skip the skip the comment, right? And some people like the comment, and it gives them context. And you can really know in, in, you know, native in your native language or in in, you know, in written language instead of code. But again, here, there comes this the myth a little bit as well, right? We say, well, code shouldn’t actually be documented. And you shouldn’t need documentation to read this. And there is also some research around that. And they showed that if there are comments in the code, people are slower with reading the code. But why? Because they are reading the comments. Right? And would they read the comments if the comments are useless? No, they are reading the comments, because they’re actually helpful. Right? And

Dr. Cat Hicks 33:45 that’s such a good example. Yeah, that’s such a good example of a measure that like is taken to be a negative measure. But why it might actually be a positive measure? Yeah. Yeah, I think it’s, you know, you bring so much rich lived experience on this, and I love hearing it because it’s, the reality is that these are going to be contextual decisions, like a code that was as you said, code that was good,

quote, code, quote, unquote, in one time, my deal if the context has changed, and then that then, you know, you need to make a different decision. And I think that there’s, there’s there were these interesting quotes, you know, when I interviewed people about who, who is this for? Is the documentation actually, for me? Or is it for, you know, like, some idealized scenario where we’re describing the technology and point of view that I have in my consulting, you know, is that I like to focus on people as the heart, you know, and that code writers as learners, like if we, if we take this approach, where we center they’re learning, we can be a lot less afraid of things like sometimes the trade off is that you have more comments and that that doesn’t work for all situations, but you have preferred did some really deep losses in efficiency and invisible losses that are happening? So if someone’s able to ramp up a lot more quickly, that’s a huge game. And I think something difficult about it is that sometimes that gain is really invisible. But you know, it’s, it’s not really possible to have a single way of describing code that’s going to work for everyone who’s ever learning. Yeah. And similar to measuring developer productivity, I think it’s, it’s a question of what is the best thing for us right now. And what’s going to pay off the most, even if it slows us down a little bit in this way, then I think it will really pay off. If you know, later, this person who we gave all the support to is able to become this champion contributor. And I just think, you know, I use the learning debt cycle, like the learning debt metaphor to, to evoke tech debt, because we understand tech debt right in this field. And we understand that technologies with all these dependencies can start to break apart, even if it made sense when we built it. And I think the same is true for collaboration. Yeah,

Dr. McKayla 36:11 Yeah. Yeah, there’s so much goodness in that. And I really want to dig into the productivity. So maybe what I want to do is I’m going to invite your again, a whole episode just on productivity if you’re up for it. Yeah. And then we can really dissect that, because I would love to hear your, your opinion also on, you know, you mentioned or hinted a little bit towards that. Can we measure learning as part of our productivity? Right. And I had a podcast where was just me talking about productivity. And there, I was asking the question, I was saying that all these productivity measure that we have focused around activity, right, coming from an area of the industrial age, right, where, well, it was the activity that better Yeah, exactly. And it was that the activity that we did, right, you had only to do very mechanical tasks, and the small task, and so you could count them, and so on. And all those measurements actually stem from there. And now we put them on knowledge workers, were probably the most productive thing is that I’m sitting here doing nothing, but I make a really good trade off this session. Right? That’s right,

Dr. Cat Hicks 37:21 that’s right, or you help someone else and they do something, I would love to have that conversation. And I do think there are ways we can measure learning. And you know, if anyone is going to be listening to this, like, go to your team right now and ask, what are the things that we do that really make a difference, that are not being captured anywhere that are not being rewarded? Like what is the stuff that you know, is important to do to keep this all of this running? And they will tell you?

Dr. McKayla 37:53 Yeah, yeah. And coming back to what you say, with the sharing, I think what I have seen work really well is small things like brown bags, right? Where we come together, and somebody just explains what they have learned this week. Or if you go back to code reviews, right, that you that every Friday, for

example, that’s happening on GitHub every Friday, they are sharing, and sometimes they are sharing, what did I learn this code review? That was really excellent. Right? You know, it’s a comment that, uh, no person really took the time and gave me great comment. Or I’m showing some code that I have seen that I haven’t seen before, or, you know, some some Yeah, paradigm or something that I’ve seen. So and we are sharing, we’re making some of those very implicit things that are internal that are not, we are making them explicit and sharing them. And I think this is a celebration, as you said, I think those are themes can maybe do to celebrate what’s also often referred to as blue work, right? Oh, this, this colleague helped me or that person, you know, they didn’t work on their ticket, which had them for their promotion, but they actually went out of their way and did this and that, right. And so, we open openly sharing this and making it explicit. And I think, especially in our remote world now is more important, right, that we have shared that somehow. Yeah, no, I

Dr. Cat Hicks 39:16 think that that’s a beautiful point. And really, really important. And, and something that I also thought, you know, something again, that people people said in the interviews, which was, I want to see specific examples. I want to sit next to somebody and see them, see them code, you know, and, and that just I think people don’t know how much that doesn’t happen. I think they assume it’s happening or they say, oh, go get coffee, you know, with this person who wrote the code, you’ll, you know, go talk to them. But people often struggle, especially if you’re remote, you know, if you’re new person, there’s all kinds of ways in which people you know, reasons that people might not ask for help. And as I told you, I started out my career looking at Three and five year olds and in classrooms and when they ask for help, and even when we are four and five years old, we’re looking at the people around us. And we’re asking, Can I Can I ask for help? Can I talk to you about my real learning? So that continues? And the more you see those small messages, and those small social moments can just have a huge impact.

Dr. McKayla 40:23 Yeah, yeah. And I think team culture and psychological safety, and all of that is so important. And it’s, it’s, it’s not something that you can just fix by doing three things today, right? It’s something that you can start. But it’s a continuous process. And I think this is one of those very rewarding things and you know, things that pay off, but are a little bit invisible, that you have to constantly work on that right, and that you have to raise the bar and say, we are actually allowed to have questions be wrong, you know, growth mindset, and I think it’s really, it’s a continuous work in a team, but the teams that managed to do it, they are so much better off than That’s right.

Dr. Cat Hicks 41:07 And it just is a beautiful part of it, you know, I try to make these problems easier for myself, and for other people by saying, who’s already doing this, right? Like, how do we give them a stage to do it? Like, you’re who’s the person that someone always everybody goes to this person to ask for help? You know, how do we make sure that they are instead of being like, burdened by this invisible work, they’re actually rewarded for all this support that they’re doing? Yeah.

Dr. McKayla 41:34 Yeah, that’s so true. Well, it kinda, it actually brings us to the end of this show. I said, I’m going to bring you back. If you have time. I will continue. We can continue this discussion a little bit more. But is there

anything that you want to tell my listeners, maybe that you think, you know, wraps up some of the learnings that would be powerful for them for the software engineering teams? How can they, you know, be in a better place? What are what is the one advice, you know, that you would give them?

Dr. Cat Hicks 42:08 Yeah, great question. How, what a lovely question to be asked, you know, I think I end the report that I recently released, saying, learning matters. And I would I would like to leave with that, which is that, you know, learning matters and measurement matters. Like whenever we measure something, I think, Who is this measurement for? And is it bringing us closer to this culture that we want to have, you know, where we feel free and happy and, and like, we’re all learning together, which is what we need in order to tackle these huge, complicated problems in the world, you know, we need to get past some of these myths about where brilliance comes from, and the myths that we all need to hide, you know, are learning from each other. But that people will only be able to do that if we make the environment around them safe. You know, so it kind of comes from both sides from from us building the environment as individuals in it, but also from people who are able to kind of say, well, I’m gonna, I’m going to do something to make this environment safer. So that’s what I would say, you know, learning matters, it pays off. Let’s let’s work for it.

Dr. McKayla 43:18 Yeah, that’s beautiful. That’s really great. So thank you so much cat for being on my show. And I will definitely ping you again and ask you for more of your input. Thank you so much. Okay. Bye bye.

Dr. McKayla 43:35 This was another episode of the Software Engineering Unlocked podcast. If you enjoyed the episode, please help me spread the word about the podcast, send episode to a friend via email, Twitter, LinkedIn, Bell, whatever messaging system you use, or give it a positive review on your favorite podcasting platforms such as Spotify or iTunes. This would mean really a lot to me. So thank you for listening. Don’t forget to subscribe and I will talk to you in two weeks. Bye.

 

Running a developer community

In this episode, I talk to Bekah Weigel, who runs the virtual coffee community about community building. 

Bekah graduated from a Bootcamp in 2019 and quickly created a striving and very special developer community in just under two years. 

We talk about:

  • how she kick-started the developer community virtual coffee
  • what it takes to run the community
  • how sponsorships make it possible to be sustainable, and
  • how community members take over a large part of running the community. 
Bekah Weigel

Today’s episode is sponsored by Codiga, a smart coding assistant and automated code review platform. Try Codiga for FREE!

Subscribe on iTunes, Spotify, Google, Deezer, or via RSS.

Transcript: Kickstarting and running a developer community

[If you want, you can help make the transcript better, and improve the podcast’s accessibility via Github. I’m happy to lend a hand to help you get started with pull requests, and open source work.]

[00:00:00] Michaela: Hello, and welcome to the software engineering unlocked podcast. I’m your host, Dr. Michaela. And today I have the pleasure to talk to Bekah Hawrot Weigel, a web developer and creator of the virtual coffee developer community.

But before I start, let me tell you about an amazing startup that is sponsoring today’s episode: Codiga.

Codiga is a code analysis platform that automates the boring part of code reviews and lets you merge with confidence on GitHub, GitLab and Bitbucket. I’ve worked with Codiga for around one year now and I really love how it guides me in discovering and improving, well, the not so nice parts of my codebase.

But there is more. Codiga has a coding assistant that helps you write better code faster. Find and share safe and reusable blocks of code within your favorite IDE on demand while you’re coding. Codiga has a great free plan, so there’s nothing that stops you from giving it a try today. Learn more at Codiga.io. That is Codiga.io.

But now back to Bekah. Bekah graduated from the bootcamp Flatiron school in May, 2019. And since then she started a consultancy specializing in front end development and created the developer community virtual coffee. She also recently started her new job as a technical community builder at deep gram.

She’s also a mom of four, so I’m totally impressed. And yesterday I went to pick her brain on how she could develop this awesome. Develop a community so fast in just a little bit under two years.

So that come to my show background, I’m really, really excited that

[00:01:41] Bekah: you are here. Thanks so much for having me. I’m very excited to be here. Yeah.

[00:01:45] Michaela: So can you tell me a little bit about virtual coffee, what it is? And for me it seems a little bit different than other communities. It seems a little bit, a little bit more niche, grit, like closer.

W how would you describe

[00:01:57] Bekah: it? Yeah, I think that’s a great way to [00:02:00] describe it. We always like to say that we like the intimacy of virtual coffee because we’re a small community of developers where all stages of the journey. So if you’re just learning, if you’ve been doing it your whole career we’ve got everybody and we’re tech agnostic, so it doesn’t matter what, what tech tools you’re using.

If you want to meet up with other developers and share and support each other. We’re here for it. So we meet up twice a week when we meet up on Tuesdays at 9:00 AM, Eastern and Wednesdays at 12:00 PM Eastern for some chats. So we go into breakout rooms. So we have small group conversation. We like to maintain that intimacy.

And then for members, so people who have attended at least one virtual coffee, they’re welcome into our slack and our members only. So we have lunch and learns on most Fridays, we’re running our third round of lightening talks soon. We’ve got monthly challenges and some other small groups that meet that are building within the slack community, which is just so great to see everybody supporting each other and working to meet the needs of the community.

[00:03:04] Michaela: Yeah. So there’s a bunch of things that you just mentioned. Right? So a virtual coffee. When I came to know it, it was mainly there’s. The weekly, or I don’t know if it was even PVT at the start, but it was like this virtual coffees where you. We’re seeing each other and chatting to each other and now it grew into something really big.

Right. And so you say you it’s, it’s a small community, but, but how large is it? Like how many people are participating here and, you know, , what else do you do to keep this , intimacy, Ronaldo and Messi. Yeah, exactly. Yeah. How do you, how.

[00:03:43] Bekah: , Well, you know, we’ve got our slack has almost 600 people in it, but I would like to just note that I think that, you know, there’s a lot of people who used to be active that aren’t active anymore.

And one of the things about the community is we’re really close, but it is transient in nature [00:04:00] because sometimes people are looking for their first job and they get it and they can’t come around much anymore. Sometimes people change jobs and their availability changes.

So, you know, one of the things that we really like is being able to celebrate wins with other people.

It’s bittersweet a lot of times because you know that they won’t be around much anymore, but you know, like occasionally I’ll get messages from people who came at the very beginning and it’s just so great to, you know, still have that connection and know that, you know, we support each other, whether we’re in slack or not.

So I would say maybe we have about 200, 200 or 300 active members, which I think is still pretty good. 30 to 50% of our slack is fairly active. And I think, you know, We maintain that intimacy by doing, by focusing on small group conversation and a lot of ways. So the small group conversation that happens when we meet up on zoom twice a week we try and keep our breakout rooms between eight and 14 people, but we have.

Start in the big zoom room together. And we go over some announcements, like our code of conduct and what the mission of virtual coffee is a little bit of our history just to allow people to get a glimpse of this is how long we’ve been doing things. And this is how, how things have grown. And so. By having that interaction with other people by seeing faces or hearing voices or interacting and a synchronous way, it provides some kind of connection and friendship that doesn’t happen as easily in async only environments.

And then it’s great to see what the community members are doing. We have let’s see here, we’ve got all of these small groups meeting within the community and. Tech interview study group. These are all led by members that happened on Monday. We have an indie hackers meetup on Wednesday, a react meetup on Wednesday and [00:06:00] a monthly challenge check-in on Friday.

So, you know, the members are really there to support each other and to see what the needs are. And so not, everybody’s going to come to indie hackers. I like to go to that one. It’s one of my favorites. You know, maybe there’s like. To eight people there, but it’s great because you can really dive into those deeper conversations and get to know people in the, those small moments in ways that you can’t when you’re in a large group of people.

So I think that’s one of the things that, that we’ve done well is have people who care about each other and, and see them supporting each other in their new.

[00:06:39] Michaela: Yeah, that sounds really good. And there are a couple of things that I want to touch base on that you mentioned, first of all. So I can imagine that there are like a hundred people joining your soup, and then you have this announcement.

Remember you’re members of what is all about, which I think is really good for the mission also, and for new members to, you know, Just introduce them to your culture code of conduct and them so on, but then how do you announce the different breakout rooms? Do you know, do people speak up and say, oh, I want to do a breakout room.

Is it like, I don’t know if this is an a term in English by the bar camp where you, and non-conference where it just self-organize itself or do you have to announce it beforehand? Did you know already, these are the topics of, you know, today’s

[00:07:24] Bekah: Yeah. So that’s a really great question. So we also, I should have mentioned this before, because I think one of the ways that we also have been able to support everybody is we have documented most of our processes thoroughly.

And that allows us to bring new volunteers on and to support new people. We think of pretty much every interaction as a opportunity for onboarding new members and to constantly remind people of the things that matter to us, which is, you know, being kind and recognizing that the impact of our words matters.

And so we have all of that created and we [00:08:00] have let’s see maybe about 30 room leaders in note takers. And so we have a process on Mondays where we see who’s up for volunteering to be a room leader or note taker. And we pick a introduction question, just a random question. It can be something silly.

Like what kind of dinosaur would you be? And so everybody in the breakout rooms answers a couple of questions, including that. And we have a Backpocket topic, but we always say that we like to prioritize what folks who are in the room want to talk about. So if they have a question or if they have a topic they want to talk about, we start with that.

And then if not, we’ve got that back pocket topic. We had virtual coffee today and our back pocket topic. I’ll read it to you. Just so you have a sample of some of the things, actually, all of them I think are listed on our discussions in our repository. Our topic today was what are some transferable skills you bring to tech either from a previous career or from other parts of your life.

And so actually my breakout room did talk about that. And so everyone there’s okay. So we have the. MC he’ll gives all of the announcements. And then we have a host who controls zoom and the host puts everybody into breakout rooms. So we already know who our room leaders and note takers are. Those have already been set up the day before.

And so we make sure that they all get in room and we try and have backup ones. So, you know, if we need a fifth room, then we’re going to have this person as a backup room leader. Which today I think we did end up using our backup And then the host goes through and fills all of those rooms and we do our best.

It gets chaotic when people come in late or at the end or drop off and come back in. But we do our best to make sure that we get a pretty well-rounded room. So new folks, people who have been there for a while, you know that some people maybe are leading for the first time. And so you want to put some.

[00:10:00] Dependable talkers and their room. And so you try and make sure that you do that, but that’s kind of the process for what we do and how we do it. Wow,

[00:10:07] Michaela: that sounds like you’re having a conference and the organizational, like I say, not a burden, but burden ID. It doesn’t seem like it’s a burden to you to organizational fun.

Every week, twice sounds like a lot of work.

[00:10:22] Bekah: Now that we have the process down, it makes it a lot easier. And we’ve got some, you know, Slackbots reminding us about some of the things that we have to do and where to look for things. And it, it is a lot of fun. There is definitely work behind the scenes that happens to make sure that we have a, a safe and welcoming environment for everyone.

But, you know, it’s worth it. If people feel like this is a safe space that they can grow. Yeah, definitely.

[00:10:46] Michaela: And I can really see like with this organization, I mean probably if, if, you know, like if you started there like five people come in, you know, showing up, you don’t need a lot of organization. Right.

But then if 10 people, and then it’s 20, then you know, you started developing those processes and you probably see also what works and what does not work. And what are some of the things that you tried that didn’t work out. So.

[00:11:08] Bekah: Well, I will say that when I first started virtual coffee, I didn’t even know that zoom had breakout rooms.

So that was a totally new concept to me. And I feel like I’ve got some expertise in it. Initially. I so virtual coffee started. I had been working as a developer for about eight months when the pandemic hit. And then I lost my job because of the pandemic. My kids were sent home from school. That same day.

They never went back to school that year. I think. And so I was really interviewing for the first time for jobs and I just didn’t have a great sense of the developer community out there, what the expectations were, how to make it through the interview process. And so I asked, you know, Hey, does anybody want to meet up for virtual coffee on Twitter?

And, and that’s why we’re so called virtual coffee. And so I’ve learned so much. And [00:12:00] initially I was kind of resistant to having a slack because, oh, I don’t know if we need it. You know, this is just going to be something we do for a couple of months. So I, I would say that maybe some of the things that didn’t work were, you know, pushing some of those things off for a while or being resistant to.

Adding we, we lean on project boards and get hub issues a lot in our organization. We want to make sure that we use tools where our members lived. And so I initially I was resistant. I was like, I can not look at one more repository no more. And now I’m like, yes. Yeah, we need a repository for that.

So. I think that my, my, the thing that didn’t work was my frame of mind around it, because for a long time, I thought this was going to be a temporary thing. And when we did our first heck Tober Fest event two years ago, that’s when I finally thought, oh, this is, we’re not going anywhere. We’re w this is not just a pandemic thing.

Like we’re filling a need for a lot of people, even outside of the pandemic. And so that’s kind of where. Things started shifting in my mind, like, what is the, what are the long-term processes and how can we make this sustainable?

[00:13:12] Michaela: Yeah. And it’s really nice. Yeah. I’m also like, I, I’m often thinking of creating a community around se unlocked, for example, the podcast.

Right. But I’m not sure about how it will, you know, what are the right tools? What is the right kind of community. I’m also more a person of like, I’m not really good at. Participant in the slack channels and this core channel, I get very easily overwhelmed. And then, you know, like maybe a week I’m trying really hard, but

If it already starts with that, you know, I don’t, you know, I don’t think that I can run a community like this, but having, you know, chats or, you know, soon conversations. I was also thinking about Twitter spaces. Is that something that came to your mind that you could maybe do as well?

[00:13:57] Bekah: Yeah. So I [00:14:00] went through, I ran a lot of Twitter spaces myself.

I went through a string of them. I was doing them weekly, and then I started live streaming, I think instead just trying to get a feel for everything that’s out there. But I think with my job at deep gram, we’re going to start doing some Twitter spaces that I’m really excited about because of the support of the team.

And we can do some really great stuff. Start build community and fill some of the needs that we see out there in the tech community right now.

[00:14:31] Michaela: Yeah. Yeah. And do you think that there’s a difference between a zoom? It assumed seems a little bit more intimate for me because you know, it’s, it’s a community that’s not completely public it’s public, right.

Because people can just respond and be part of it, but to the spaces for me, just because it’s there on Twitter and then you see at least some of the bubbles and then it’s broadcasted through other, you know, sort of followers of the people that are in there. And so on. People can drop in and go out.

Do you think it’s different and, and has a different need or fills a different need, a different purpose for the condition?

[00:15:07] Bekah: I think, you know, there are expectations when you meet with other people in a small group setting, face-to-face, you know, you, and we say like, if you want to leave your camera off, if you want to stay muted, that’s totally fine.

If you want to throw things in the chat, that’s a great way to communicate as well. But still you see other people there, whereas Twitter spaces, you can kind of come in and out. You, there’s not the sense of, oh, I have a roll hill here that I have. Bill because you’re not a speaker. You can be a listener.

And so in. Twitter spaces I think is closer to watching a live stream because you can interact through the chat, but it’s a little bit more personal because if someone’s live streaming at Twitch on Twitch, you don’t see everybody who is there, but in Twitter spaces, you can see those other people and they do connect you.

Other like, you know, if we follow [00:16:00] each other, I can see whose space you’re in. I’m like, oh, okay, well, she’s there and she’s cool. So I’m going to go check out, you know, what she’s listening to. And so there’s a, I think a little bit, maybe more community happening in Twitter spaces, but there’s less like barrier to entry or friction if you’re shy or an introvert or, you know, just kind of want to check something out one time.

so

[00:16:24] Michaela: another thing that I wanted to talk with you, and I think they are a little bit connected. One is that, so I looked on your website, virtual coffee.io, and there are a couple of people publicly listed. Right. And apparently they are not all of them. Not everybody wants to be listed there or it doesn’t, it doesn’t.

Hasn’t edited themselves. But a couple of people are really listed there. And then I also saw that there are different roles, right? You were also talking about the different roles for the meetings, but there were two particular ones that were like labeled there. And one was the, the. Maintainer and the other was the community maintainer.

So what are those two roles? Is that all the roles that you have and how do you select people or how are people selecting themselves to be in those

[00:17:07] Bekah: roles? Yeah, that’s a really great question and it’s kind of evolved over time. We’ve had so many people step up and offer support and offer help. And Sarah, McCombs, they were really great support at the beginning of.

Virtual coffee and, and making sure that we got this stuff done and helping build out these processes. And when we launched our first hack Tober Fest, we had a whole team that was focused on that. And a number of the people who were on that team ended up coming on as maintainers and. I’m both a, a core maintainer and a community maintainer and, or a, an org maintainer rather.

And what that means is we kind of look at the overall organization, the health, the strategy where should we go from here? What decisions need to be made in terms of the entire organization? I would say the community maintainers are [00:18:00] looking more at the day-to-day, the community management project planning that, that kind of more day-to-day focus, I guess, in, in making sure that the team is supported there.

So we all work together as a core team and we make decisions together and there’s always going to be overlap in all of those things. But it’s funny that you ask about these roles because I was just working on this. Actually we have some team leads and they should be going up on the site there.

They’re already listed there, but. You know, we have leads for our monthly challenges as Areli, Varo, and Andrew Bush for our audio visual stuff. So getting things put up on YouTube, helping with live streams, that’s bogged in. For documentation, we just onboarded a new team lead named . Who’s absolutely great.

I met with her this morning to kind of like walk through the process of, you know, how do we prioritize, what needs documented, where do we put these things? And she’s so great about, you know, asking questions and getting issues up on the site before I even think about them. So I hope I didn’t miss anybody.

I know that, that we work with. A number of other people as well to support the organization. But I think that, that those will go up on the site soon. We want to also have like a community health team lead and we’re talking to someone about doing that. Job search is a big thing at virtual coffee.

It doesn’t matter what stage you are. Somebody is always looking for a job. And so we have some great folks who do a lot of work on that. And so, you know, that might be up on there soon too. So, you know, we’re, we’re, I think we’re in the phase where we’re trying to figure out how do we best support our members and help provide those leadership opportunities that we want.

[00:19:56] Michaela: Yeah. Yeah. So when you describe all [00:20:00] of that, it seems to me this is a full-time full-time job already, but so how much, how much time does really go into that? I mean, there’s the meetings themselves, right? That you’re a participating and I’m even, I’m not part of virtual coffee because I don’t have the time to do it as.

Just as a participant. So I can imagine you have to be at the meetings, you have to plan the meetings and there’s the chat and you’re making all this. You have all these thoughts and meetings also with other members of the community, how to grow the community, how to, you know, keep it alive and make it healthy.

So how much time off your week goes into data? I can imagine

[00:20:39] Bekah: a lot. I don’t know. That’s a good question. At some point, I think. Stopped keeping track of how much time was going into it because it was a lot and it’s not a job, right. It’s a volunteer position. But I think, you know, now we have so many supportive members and with the core team that I’m able to do, where like we’re all able to do a lot more and to lean on each other.

And to grow in that way. And a lot of the stuff is almost like muscle memory. Now, you know, I’ve been doing it for so long that it doesn’t feel like it’s one more thing to do. There are always things that, you know, I have a whole board of things I would love to do for virtual coffee and I have to try and pace myself because sometimes I go for it anyway, and then I.

Well into something and I’m like, oh, I, I might, I might die after that. So I try to avoid that feeling now.

[00:21:38] Michaela: Yeah, I can imagine. So I have seen on the GitHub page, there are some, there’s some sponsoring going on, right? Is there, are there other ways that you’re monetizing this community or that the community monetize it itself, that it has some budget around that you can also do cool stuff.

[00:21:55] Bekah: So right now, sponsorships, we launched [00:22:00] sponsorships maybe in September. And so up to that point, we were just paying out of pocket for everything. But sponsorships is the primary way that we cover our costs. We had a monthly challenge sponsorship, which was nice. We have the podcast there’s opportunities for sponsorship there.

Oh, oh, we just launched a store, so, oh yeah. Cool. That’s really exciting. It’s just really exciting to see people like wearing the virtual coffee and sharing their stickers. So those are some ways that we’re, we’re working on covering, covering the cost of what we want to do, and then, you know, hopefully providing new services and.

Yeah. Yeah.

[00:22:38] Michaela: I think at one point you have to think about it because even like this lag is probably not free, right. You have to pay per month membered and.

[00:22:46] Bekah: Nope. So we’re on the free version of slack because it costs, I think $6 per member per month. Yeah. I saw there’s no way that we could cover that.

That’s so

[00:22:59] Michaela: crazy. Yeah. Yeah. Okay. So there’s a free version of that as well, because I looked into that, I thought like maybe, you know, slack channel and it’s not like $6. Why am I God, not.

[00:23:11] Bekah: Right, right. Discord, discord, we’ve gone back and forth about it. It has a lot of great tools. We’re just not in love with the user experience of discord.

But you know, we have class. So one of the things that we have Put a lot of money into zoom because we have accounts for our core team, but also we have a coworking room that stays open all the time. So folks can join in slack and the coworking room is always open. So that’s its own account. We, you know, producing a podcast can be costly you know, producing.

Transcripts and providing the services for that. We’ve got like Zapier and air table. So, you know, like we’re, we’re using all of these tools that we can to you know, make things a little bit easier for us, but do cost money. And so what we, we try and keep our costs minimal, [00:24:00] but you know, there, there are some, but I think that.

Covered right now for our CA our monthly costs by our sponsorships, which is really, really great. Yeah. That’s

[00:24:10] Michaela: really good. Yeah, that’s really cool. So what would you say to the listeners today that would like to, you know, start their own community, have a community? What would be the MVP, a MVP version of a community that you, you know, from your experience would.

Suggest to them, should they start with fitness spaces or should they have like a meeting or a slack or a discord channel, you know, what are the options and what are the pros and cons for each

[00:24:38] Bekah: one of those? That’s really a great question. I think that, first of all, I feel strongly that. You, there are a lot of really great communities already out there, and a lot of them really need support.

So if you are not all on board and starting your own community, explore some of those and see how you can help because, you know, you might be able to be on a core team or something that allows you the experience that you want from that. So I’m not convinced that every, every person needs to start their own community.

But I would say that I think trying to fill a need within the community is a really great way to start one, because if you see that there’s a gap or that people are asking for things, or, you know, like one of the things we’ve been doing virtual coffee for almost two years now, and we get the same questions in our Our zoom sessions.

All the time. And so I can tell that there’s a real need for more work, to be done around interviewing about supporting junior developers about creating positive workspaces. So for sure there are. For groups that focus on those things. And then I would say for me, if you start a slack or a discord, that’s probably the most time-consuming [00:26:00] thing that you can do because you want to keep people engaged.

You want to keep them talking, you need to answer questions. So if you don’t have a core group of people, Then it’s going to be really, it’s going to be a lot of work to try and keep up with that. I also think that we’re in the pandemic now and people have been collecting slacks and discords, and when things in the pandemic start to ease up, we’ll see that a lot of those communities, I think, start to fade off just because, you know, people are going to prioritize the couple that they’ll keep and stay active with.

And, and then they’re going to be, you know, doing. In really stuff.

[00:26:42] Michaela: Yeah. Yeah. Which is good. I’m I’m waiting for that.

[00:26:47] Bekah: Yeah. Yeah. So I mean, thinking about like, okay, maybe you want to then create some kind of hybrid model or, you know, do an online meetup that translates into an in-person thing. Or if you, if in-person is not your thing, then, you know, figure out how you can build your online environment around that.

I think it’s tricky because it’s not one size fits all, but you know, in-person or async, if you’re a really async person, then, then slack or discord is a great way to go. So yeah, there’s, there’s a lot, there’s a lot there. Yeah.

[00:27:21] Michaela: I think it probably really about personality as well. I think a lot of people really enjoy.

Writing and, you know, participating in this estrone coroners conversation, even though they are often very synchronous right in discord. That’s why I always feel like I missed that conversation. Oh, I missed that conversation as well. And then I just leave without writing anything like anyway, so the last question that I have for you is you just started as a technical community, like.

What, what are you doing dead? Are you doing actually the same thing that you just learned yourself? And you’re not like your master now and the expert here for, for deep gram or what’s your role there?

[00:27:58] Bekah: Yeah, it’s kind of, I [00:28:00] feel like it’s such, it’s been such a good fit for me. My background, I spent 10 years teaching college English.

And so deep gram is a speech to text. AI company. And so there, there are so many different experts in different fields there. So, you know, whether it’s data science or linguistics or engineering and, you know, the devil team I get to talk to everybody and. Understand where they’re coming from, but I sit on the dev REL team as a technical community builder, so I can do dev rally things.

I can write if I want to I can contribute code, but my focus is on creating those systems and processes for community and the external community at deep gram. I always say that your community starts with the internal community. You want to make sure that you have a strong internal community before trying to start an external community, because you have to have that support network to help you and that trust to be in guidance.

So I’m doing. You know, some educating I am doing well, hopefully some speaking in the near future and hopefully some writing and building out that community strategy and trying to figure out, you know, where, how can we. Fill a need in the tech community or how can we support existing communities out there?

So it is, it’s pretty much a mixture of everything I’ve ever done in my life to this point. And it’s been really fun in the first three weeks now having a team to work with them. Yeah,

[00:29:31] Michaela: it sounds super exciting. Yeah. I can’t imagine everything coming together for you. And you can really strive now with the competencies that you, I think not only developed you probably had already from the beginning, right?

Because it’s not something that you. You make the first virtual coffee? I think a lot of people did that and then it grows into something that’s, you know, so probably not in the deaf community as well, so well rounded. So yeah, so [00:30:00] congratulations to that. And thank you so much for sharing so much about the process and about virtual copy, how it worked.

Yeah, I really enjoyed it. Is there something that you want to tell our listeners? Maybe how can they sign up for virtual coffee? He said, you know, do you, do you have to have some commitment there or accountability?

[00:30:21] Bekah: That’s a great question. So we make everybody come to at least one virtual coffee for before getting an invitation and to our slack and that’s to, you know, help them experience, you know, our community and to see what it’s like, because, you know, we feel that we demonstrate that pretty well in those meetings.

And so it’s really. Figuring out if it’s in the community for you, because it’s not the community for everyone, we all have different needs and, and things that we like. And don’t like, and so if it’s for you, then it’s great. Then join our slack, fill out our new member form. You can find those events@virtualcoffee.io slash events.

So come and check out a virtual coffee and then.

[00:31:05] Michaela: Yeah, cool. I will link everything in the show notes. And thank you so much for talking to me being here today with me. I enjoyed it.

[00:31:14] Bekah: Great. Thanks so much. I’m going to, can I mention one more thing? Yeah, sure. I just want to say to ’em if you follow deep gram devs on Twitter, I think we’ll be running some very cool Twitter spaces through there soon.

So if you want to check out some Twitter spaces, you can do that as well. And thank you so much for having me. This has been great. Yeah, I really

[00:31:35] Michaela: loved it. Okay. Thank you for caring. Thank you. Bye

[00:31:38] Bekah: bye.

Predictable profit through small bets

Daniel Vassallo left his cushy job at Amazon, where he made over half a million per year, to start his own business.

We talk about:

  • anxiety when start-up attempts do not work out as planned
  • how he overcame failure
  • his strategy of small bets to reduce uncertainty
  • and all the little products that provide him with an average of 23K USD of profit per month.
Picture of Daniel Vassallo

Today’s episode is sponsored by Codiga, a smart coding assistant and automated code review platform. Try Codiga for FREE!

Links:

Subscribe on iTunes, Spotify, Google, Deezer, or via RSS.

Transcript: Entrepreneurship as a developer

[If you want, you can help make the transcript better, and improve the podcast’s accessibility via Github. I’m happy to lend a hand to help you get started with pull requests, and open source work.]

[00:00:00] Michaela: Hello and welcome to the software engineering unlocked podcast. I’m your host, Dr. McKayla. And today I have the pleasure to talk to Daniel Vassallo, a former Amazon engineer, and now an entrepreneur and freespirit. But before I start, let me tell you about an amazing startup that is sponsoring the podcast Codiga.

Codiga, is a code analysis platform that automates the boring part of code reviews and let’s you merge with confidence on GitHub, GitLab, and Bitbucket. I’ve worked with Codiga for around one year now, and I love how it guides me in discovering and improving, well, the “not so nice parts” of my codebase. But there is more: Codiga also has a coding assistant that helps you write better code faster. Find and share safe and reusable blocks of code within your favorite IDE on demand while you are coding. Codiga has a great free plan. So there’s actually nothing that stops you from giving it a try! Learn more at Codiga.io. That is Codiga.io.

But now back to Daniel. Daniel got internet famous by sharing that he left his Kashi job at MSU. Yeah, half a million per year. Can you imagine? And his main motivation for leaving was that he wanted to be more independent, but also challenged again. After that you shared his attempts to build a successful business on Twitter.

And since then he managed to get a really large Twitter following. And even though his first SaaS business did not work out as planned, he ever reaches around $23,000 in profit each month. So I actually also asked Daniel if he would give away one of his products, to my listener and he agreed. So that’s really awesome. And so today you have the chance to win a couple of things, right? You can either win. Everybody can build a Twitter audience, which is a video course from Daniel, where he really goes into depth on how he, how he built this to the audience.

And how can you do the same? Or you can. When a digital [00:02:00] copy of the good parts of AWS. So it’s a book, a very technical book and tell us your, everything that you ever wanted to know about AWS, where he’s really an expert in. So how do you want to do that? Right. You ask them, you have to like, and retweet today’s episode’s link.

I will put that in the show notes and for an additional chance to win, you can also leave a car. On what are you doing to get a little bit more independent, some side income, or maybe a hobby that you have that just gives you more energy, which I think is equally important.

Yeah, but without further ado, let’s dig into Daniel’s interesting success story. Daniel. I’m really thrilled that you’re on the show. Thank you for being.

[00:02:41] Daniel: Of course. Thank you, McKayla, then. Nice to meet you. Happy to be here. Yeah,

[00:02:45] Michaela: I’m super, super excited.

So when I go to your website, I have a list of products that are linked there. Right. And they are very, very diverse, which is super exciting for me. I’m just two of them I already mentioned. Right. Which was a video course on how to build a Twitter audience.. Then you have the good parts of AWS.

Then you have cutting boards. They’re like wood, wood cutting boards. I was like, wow, how does that fit into that? Then you have like profit and loss, which is some status updates on your business finances. And then finally you have this SAS business user base which I’m also super interested in.

How does that come about, right. That you have like a cutting board in between. All of those is a little bit more technical parts or products that you have. Yeah,

[00:03:34] Daniel: yeah, yeah. So I think I sort of, I started this journey, I think in a traditional way, like many other software engineers, I thought I was going to be doing the boots.

I was going to sort of focus on one idea and build it inside to make it successful at all costs, putting all my effort into it. And I think what’s happened. And that’s what I started with. That’s what, that’s what user base. What is the light? When I, when I started [00:04:00] a few months in, I started to have a little bit of I was public call it like a small crisis of anxiety.

I was thinking I was getting very sort of uncomfortable by the uncertainty that I was imagining. In front of me, you know what, when we’re like, when will, I know if this will succeed? What if it won’t succeed? Like what sickness should I be watching for? What if it succeeds, but slowly that should I be shifting attention to other things and sort of, I had all these questions that I didn’t really have an answer for.

And I was noticing that I probably was underestimating. How much uncertainty that is in doing something like this, that it’s very hard to know. And th this was a bit more confounding because actually I was getting very strong sickness about user base back then, very song. You know, I just liked the term validation because I think sort of it implies something that it isn’t there, but the typical size that people look for.

For validation. Like I was sort of had a mailing list of about 4,000 people waiting for the launch. I had endorsements by highly influential people, sort of the CEOs of like Netlify and various publicly. And those, the products that I sort of and were very welcoming and sort of wanted, wanted to collaborate with their teams.

So many other tanks, even, even on launch. I sort of, it was front page on hacker news, number one on product hands, even, even the initial day 11, you were strong was actually about 40 customers, about $1,500 in sales. But yet I was still noticing that, you know, it was uncertain and I tend to find that that’s what happened.

It was much harder to keep the momentum of all the sickness that, that had been. So, so th that’s crisis a little bit opened my eyes. And I basically, I started thinking if I want to make this as an arrangement, the self-employment engagement, successful public, and it’s a different strategy. I can’t just be going all in into one thing, because I was worried that I was just going to run out of time savings and I have to go back to full-time employment, which isn’t the end of the world.

Like, it’s not like it would be the end [00:06:00] of the world. I was enjoying being self-employed. I enjoy the flexibility, the, the, the sort of freedom, the ability to work on what I wanted and all those good. So I don’t really know what has happened, but sort of I had the smaller epiphany and I wondered what if instead of having plan a plan B plan C and plan the about, you know, if this fails, I go to the next thing and so and so forth.

What if I decide to do a bunch of things at the same time, small things? Of course I was there. The stick. You know, I had limited finite time, like for the one. And that’s sort of changed my attitude to things instead of sort of focusing on one thing. I started looking around with me and I started asking myself, what can I do?

Low-hanging fruit. That’s what I kind of do. That is a small thing. Doesn’t necessarily need to have large upsides accounting because I’ve been new or, and this is, they be sustainable for a long time. It was mostly looking at small wins. That’s what, what can I do? Something that can be, can make me some money into the month’s time, which are these, the higher odds it’s still unpredictable.

You never really know whether something’s going to work or not. Even today. That was when I launched new things. I have no clue sometimes whether things are going to work or not. But it’s changed my perspective because before. Looking at things, does this have upside? Is this going to scale? Is this sustainable?

And I think that side of that comes with dads. Those things that do have those properties tend to have low odds of succeeding and they just to be hard, you know unpredictable sort of affected by them, them things, good timing and other things that are very opaque. And this has worked out well for me.

So now sort of the, to get back to your question, so to these and why now it looks like I have a very diverse portfolio of products is, is because I, I I’ve been the products are a manifestation of inspiration that I had over the last two and a half years or so. And I ask myself, is this something that’s going to be a small bag?

This is something that I can give it a shot. And maybe if it’s works, I keep it. If it doesn’t or if it becomes, you know, too, too, too, too hard [00:08:00] to do or something that I’m disliking, I can just drop it. So don’t, it’s been sort of a stream of experiments. Some things work, some things worked more than others, some things beyond my expectations, some things work, it worked a little bit, but didn’t meet my expectations.

So as you can imagine in a poetry. It’s like an investment. I mean, I did, I don’t think the idea is that we tend to do the same thing with, with how to, how we invest our money. For example, that we almost considered food. To deploy or your life savings, like in a single stock or a single assets that we tend to want to diversify, to tame uncertainty.

And I think more or less, it’s the same episode to my own ideas and my own small ventures, essentially. So I know it’s a general answer. I hope happy to dive deep or deeper into all the individual tanks, but sort of the general idea at the Titanic.

[00:08:52] Michaela: I think when I look at your projects and your products I think what’s also distinctive here is that they have started that end.

So a lot of people have a lot of ideas but there continues, right. So they are, I’m starting with it and that can actually not stop them. But it’s more something that I’m doing and. I keep on getting busier and busier because I’m adding things to my portfolio, right?

Let’s say I’m a SAS business user basis. Probably the exception here, right? It’s not something that you start and then it already ended. It has some maintenance cycle, as we all know, it’s software. Right. And if it gets more successful, you will have more, have to be more involved in. But like a cutting board has a start and end.

Right. You have the idea, you design it and then it’s finished and then maybe you have to sell it. Yeah. Okay. But there is not really a lot of involvement in it. The same for the video course. . You recorded it and now you’re selling it the same for the book. Right. You start it, you finish it.

so do you think that this is you, you deliberately think about that when you’re looking at your small bats? I mean, there’s [00:10:00] like as, as we have time, Infinitive ideas on board we can do. . And, and I think long enough people have struggled with that. I’m struggling with that. What should we, you know, what should we take on?

And there’s always a pros and cons list, or however people make the judgment is this affinitive thing of I’m starting this and, you know, in. Three weeks or in three months I have it finished and then I’m done with it. And so on. Is that something that crosses your mind that you’re thinking about it?

Okay. Yeah.

[00:10:30] Daniel: Yeah, yeah, definitely. It’s sort of, I think I’ve developed a selection criteria. I like to call it. It’s it’s sort of it’s I think, I think back when I started, I almost fell into the trap of. London can do the first opportunity to tie fell that I could do. And I would just jump into it. So I don’t, because it seems like, okay, I can do it.

Let’s do it nowadays. I’ve become much more vigorous. I would say that’s what my selection criteria and I feeling completely okay at peace ignoring things that I feel like I can do. I can give a shot, but if it, if they don’t set up. My strict selection. Cause I too, yeah. I just leave them for someone else or whatever that they’re just not mine.

And what you mentioned is a, is an important part of it’s that this is like, Is is this something that’s I like to call it? Is this something where time is going to be my friend, not my enemy. I think what you, what you’re doing is you, you need to have the payoff happened before a certain period of time. Otherwise you’re going to run out of.

Money or out of time out of frustration or get the motivated. And I disliked that situation. I disliked that property. So I try to avoid those as much as possible.

I think with user base, I also made the mistake of what the kind of SAS was. It’s the kind of SAS that’s acquired. Unfortunately in our 24 7 support, I have a PagerDuty app. I sort of, sometimes I get paged until 2:00 AM in the morning. Like nowadays I would almost certainly avoid something like that. So I thought I would go for something simpler almost certainly.

Other parts of my selection [00:12:00] criteria. I also is this something that I can build in blink to markets by myself? Not because I think I had no after the thing go, I can do everything, but I think it’s a good test to keep things simple. Right. It’s sort of a proxy for is the simple enough that I can bring good to markets by my.

Like if I change my mind I, or I decide it’s not worth pursuing, getting a more, I don’t have to make sure that everyone is on board or I’m not sort of haircutting anyone else.

Concerns go away. If I keep things simple that I can sort of do do, do on my own. . I just, with user base, I type invested so much that then I started falling into the trap of sunk costs.

Now I should invest even more. And I ended up spending, you know, a ton of time, money, and more than what my, this capital to the other was light. And definitely a lesson learned. And, and what you mentioned, I do like projects and ideas that sort of ideally have a start and an end where time is my friend.

[00:12:55] Michaela: So what are some of the products that you started or the ideas that you started that haven’t yet? That haven’t succeeded yet, or maybe that you haven’t even shared with the artists, some that you haven’t shared even with, with, you

[00:13:07] Daniel: know, with the people.

Yeah, yeah, yeah, absolutely. So there’s various defense of failure degrees afraid as well. Certainly I think we’ve already mentioned the user base, probably the biggest failure that I had. And this one I did it before. I was thinking about sort of the strategy that, so I think it’s a failure that led me to see things differently, but I almost feel embarrassed to say this, but I’ve spent almost $150,000 of my own.

Building user base. It’s crazy. It’s talking about what does, and this is only making about $5,000 in annual revenue, not monthly. That’s almost certainly I will never recoup my money may be I might sell it in the future, but even though I’m not expecting a sort of large amounts, and I don’t know if even that is an option, but as I mentioned before, I think my mistake was in the.

Underestimating uncertainty. I invested too much. I went to all, then the more I went all into my life as I can need to invest. And it was sort of this [00:14:00] cycle of, of bad decisions, but think that has side. However, I do a few other small things that I would spend, not necessarily they weren’t big failures, but there were things that didn’t see the work as I expected.

In fact, the very first digital product, the tight side, not many people know about. Was I’d say to sell a spreadsheet there’s a bit of a technical project that I started to sell a spreadsheet about benchmarking different, easy to servers during network speeds. So, so back then, back in 2019, AWS didn’t really advertise accurately.

What network speed you are getting and what network bathymetry are you getting when you’re buying or using a particular instance type? I thought I’m going to run a benchmark test and measure exactly what type of performance you’re going to get.

I was building in public and talking about, as people got interested and tights, basically long story short, I spent a week cause I was. Open source the tool had benchmarked. Everything spent about $500 I did prepare a very sophisticated spreadsheet with pivot tables. Very fancy spreadsheet. I was very proud of it. I posted it on Twitter. Post is on hacker news and a few other places. There was lots of fences into this and that tension that’s actually surprised me.

I think the sort of lending page got about 30,000 views, which was even nowadays that’s compared to my other products, but this sold nothing. Cause I mean, nobody paid and I was, I was charging $10, like not like a crazy amount of money, nobody bought it. So I tend to, in fact, a few days later I released it for free.

I, and I think. Lesson that I learned that is back then. I remember thinking, wait a minute, this is what back then it was 2019. I, I said 2019, you know, information wants to be free. Nobody wants to pay for information, especially developers, but I think actually I’m happy that I didn’t sort of take that lesson too seriously because it was, I jumped to the wrong conclusion.

And my now in hindsight, it’s not really to do in fact. Money now selling information, different kinds of information that’s and sometimes even to developers, that’s sort of that belief or that [00:16:00] conclusion, the developers don’t pay for things. So in fact, I think a lesson that I learned with sort of these experiments is that sometimes we tend to jump to conclusions. The tire not warranted.

So that’s that’s that’s why did this fail? Why did, why were people not willing to pay for it? Maybe I can take some educated guesses,

but nowadays I’d say to be careful not to be too much from these things, because I know that things that are affected by that. bye. Good timing and other unpredictable things that sometimes whether something succeeds or not is just things that we can’t even see that it’s just opaque. Yeah. So that was another example.

You know, we mentioned the cutting boards, so the cutting boards started as purely as a, as an experiment. I started with working just this time, last year as a hobby, . And at some point I was wondering, could I try to sell some of the things that I’m making? And.

Oh, eventually I bumped into the idea of within cutting boards I launched the sort of the offering, I think in October of last year. So maybe four months ago, I sold about $5,000, not a big tank, sort of probably if I, if I consider all the tools and the tank, I might have just broken even .

So it’s sort of it’s that failure in terms of expectation. Nevertheless, I still think that I gained something from the novel. Because I did ship F you know, I bought a dozen around the world and learned a lot. But I think what’s more important is that now, nowadays I feel much more, I feel less daunted by a physical product offering.

So you know, the, the, you mentioned, for example, I have the profit and loss membership.

That’s another thing that was purely an experimental. If I was so a bit of, a bit of a background story, I always also have sort of this quarter time freelancing arrangement with. Are you familiar with gumbo such as this platform for, for, for digital? And back then when I, when I joined the team we were launching a feature memberships that the ability to, to, to do the CareLink sort of payments.

And I wanted the next cues to try to use the feature. Essentially, this was, this is how it started. I [00:18:00] was wondering what could I sell for the carrying fee? And I had already been very, very open with my finances for a long time on Twitter and other places with my business finance, at least like with how things are doing.

And I talked, what if I talked to. Sell an even more detailed financial view. Like we built and done by products, broken down with all the expenses and where the costs basically the full profit and loss per product. And I started at then when I started it, I was hoping that I could build like a community at ons.

And then with these ideas of making money online and figuring out small bats and building a portfolio. I could use the circle group. I was posting updates. So not only I was posting my financial desires, but some comments as well, long story short, even though this financially know did okay. I did about $40,000 in total in about a year or so.

I’m quite happy compared to the input I’ve put, but sort of the, the, the, my goal of building a community, it didn’t tell the happen, like. Originally, there was some momentum. I was getting lots of questions, but it never really changed some of my talking about my own topic and eventually things sort of Sort of stops the energy disappeared and barely any activity continued to happen.

Nevertheless, almost by surprise. These simply my mostly synthetic jackets actually is a cohort based cars where we’re meeting 25 members at a time that I launched this about two months ago or so where we were having sort of this synchronicity. Basically cars that we meet together, a small group. And we talk about these ideas in much more detail that we’re discussing here, sorts of finding inspiration, finding opportunities, juggling multiple things at the same time.

And funny enough, even though it wasn’t my intention, I set up a discord server just for housekeeping purposes to share the zoom links and the slides and whatever, and the community that I was hoping to build back then sort of happens there now by accident that this wasn’t something I was. The time to do it, which is fascinating.

It sort of became the [00:20:00] community almost became the main selling point of this course that people are word of mouth is spreading. You know, there’s about 200 people now, like, and people are encouraging others, you know, come here, we’re talking and getting good feedback and brainstorming ideas and things like that, which is again, it’s quite fascinating to me.

Most of the things that have been successful and even the failed things, but particularly the successful things are things that I have wouldn’t have even imagined I’ll be doing. Just a year ago or so that’s what sort of ready for the interesting sort of the, I had the idea before I used to believe, you know, business success is going to be a, a self directed top-down you come up with the idea and you execute it.

And now it’s almost, I tell myself that, send them things, see what works. So I wait to that. Yeah.

[00:20:48] Michaela: Yeah. And it’s also interesting to see that while you have this idea of having a community and then you have an intention and the deliberate effort to do it and it doesn’t work out. And then it’s. By chance somehow creates itself.

Right? I think this is really an interesting perspective. I want to dig a little bit into your motivation and, do you think that you will be bored by what you’re doing right now

and what is really your motivation behind that? For me, for example, I’m definitely an entrepreneur because. I want to have the freedom to be with my kids. And I didn’t see how I can do that in a job that fulfills me being employed just wasn’t possible. There was nobody that would offer me the flexibility that I need, right.

Working in the middle of the night or on the weekends, or, you know, having like crazy two weeks of work and then three weeks doing nothing because the kids are sick or, you know, and I feel like this is more important now for. And that’s definitely my motivation for being, I think self-employed, what’s your motivation.

Why do you, why do you do that?

[00:21:52] Daniel: I think the motivation to become self-employed I think is similar to yours and similar situation, I would say. So also two small kids[00:22:00] I was feeling like I’m leaving the house before they wake up.

I live home, very tired. They’re about to go to sleep. And in the weekends, I also thinking about work. So maybe it may be a bit different for me as a dad, but still sort of the same concept that I’ve felt like, you know, my kids are going up and they spend time with them. So I was looking at people around me at Amazon and there was noticing, you know, things are probably going to get worse, not better.

I wasn’t envying the lifestyle and being, getting a good sense of other people, no matter how much more they’re getting paid or how much higher up they were. So I’d be fooling myself. If I were to believe it’s going to be different for me is if I just get the next promotion or the next bonus, suddenly things are going to be better.

So it’s I jumped into to the self employment. And then once I did.

Get all this flexibility I take immediately. I realized that I didn’t see the one, this to be taken away from me. So suddenly I w I joke sometimes I joke tweet about this as well as my own. The business plan is not to go back to a full-time job. I’m not thinking about goals that I want be. A successful SAS or this particular product or some idea or whatever, it’s literally to make this lifestyle sustainable.

So that’s, I would say is it’s, it’s a different, I think it’s a different attitude. And I think it’s helps me with my decision making process as well, because when I do bump into these opportunities, so I get inspired to do something. I ask myself, is this going to increase the odds or is this likely to increase the odds of making this lifestyle sustainable or not?

[00:23:28] Michaela: It’s true. Yeah. We started sort of at the same time with the entrepreneurship.

And I’m a big believer in that you have to enjoy the process, which I think is a little bit the different way of saying the same thing that you just said.

Right. So I only take on things where I feel it’s not the end product that I will enjoy, but I enjoyed the way. The only problem. And I tried to combat that, but I think it’s very deeply internally in my, in my, in my genes or something. DNA is That I have a hard [00:24:00] time having the money focused all the time.

Right? So that’s for example, say I did a PhD, right? And from a money perspective, this is such a stupid thing, right? It’s the worst thing. The worst decision that you can, that you can make is you’re not making, you know, money for a long time. You’re putting a lot of effort, a lot of work into something. But I think I wasn’t, you know, I wasn’t interested in the money.

It was okay for me doing it just for the process. And I survived in a small apartment, you know, like we were thinking of, you know, it should be by this this vegetable or not, it was definitely this kind of grinding. But then in hindsight, I really try to do things different than now because the sustainability part, you know, is also a very, very important part for motivation, right?

You can be extremely motivated and it can be such a fun to do something, but in the end of the day, and maybe this has to do with growing up and having a family and, you know, it’s not only you and you know, your crappy apartment, but you have to provide for your family. And, you know, and this comes with, with, with this aspect of also sustainability.

I try to have that mindset much more of thinking of is that actually something I can keep up doing. And unfortunately, you know, money is it’s a big part there, right? Is it, is it coming very naturally to you that you, that you think about those?

[00:25:22] Daniel: I, I actually, I think actually I there’s an, it sort of idealized that I am almost incapable of thinking properly about money, unless I feel I need that.

So that’s, and I think. I don’t know if it’s a different situation. Maybe that’s like now my wife is staying at home with the kids, sort of like now I’m I’m diploma income person. I tend to sort of, I think that stressor of needing to make ends meet soon because otherwise I would have had to go back to work.

I think that was probably the most critical thing for me to open my eyes and find [00:26:00] opportunities, ignore and not ignore. I would say that instead of being. Prudent and not being too idealistic and making the making better decisions essentially. And even now I noticed that, cause now, now with the types of work that I do, I have lots of ups sends hours.

My income is very volatile. If I launch something new, there’s like big spikes and then sort of zaps sort of very spike. So if I’m noticing there’s something very fascinating that I never noticed before. That’s when I’m riding the momentum of a, of a high period. My mind almost shuts down. Like I can’t work.

I can’t think I’m not creative. And I think this is similar to what creators talk about when they mentioned your constraints, bleed creativity. Now, for example, early 20, 21 last year, the first. I would say seven months was a good period for me.

I was riding the momentum of a couple of other projects that I, that I was doing. And I realized I don’t need to think about money. I’m just going to experiment with hobbies. We took a two month vacation that we were on back to you with it. I’m from originally. And we spent a whole summer there, like.

Just almost didn’t do any work until September, basically. Right. But then sort of by September things have dropped down to a point where it wasn’t critical, so there’s a buffer of savings or whatever. But I started to notice that if I’m not going to do something, things are going to start becoming negative soon.

So that was enough. But then suddenly I can almost see it. I can almost feel. I started thinking of new promotion ideas, new products, new opportunities, and very quickly I went to do September. Then I went to a very high focus mode. I started with working thing. I started the cohort based course as well for as much a month after I did a few new promotion campaigns for my existing product sense.

You know, again, I could change the subject to the, again, sort of, again, not everything worked, same, same thing. Cause somethings work [00:28:00] better than. But it’s sort of very fascinating, you know sort of it it’s it’s as if the assessors are what I need to make me make design decisions. I will feel almost incapable to work if it doesn’t.

And we talked before we started recording that, we talked to this a bit about the, the plot act of building a house custom built house. But I think it’s helping me as well because it’s giving me some, some meaning to my income, I think if I didn’t have debt, I felt that we were working much less a public, those Newlands would just sleep in my head and just, I would be less creative, less productive.

And I would be seeing the words differently and probably opportunities that. I would consider now I would ignore, I call it luck blindness. Like sometimes when you’re in the state you might bump into opportunities, but if you’re, if you don’t have that small successor, you almost don’t even see them.

The lights is just because we’re shut down. So I don’t know if it’s, I think I, I understand what you’re saying. Maybe the circumstances are a bit different. No.

[00:28:59] Michaela: Yeah, I can totally relate to what you’re saying, especially with the house now, because the house shifted my whole thinking around money tremendously.

I’m a very frugal person, extremely frugal. I have always been my whole life and you know, it’s just didn’t mean anything to me money, but you can’t be frugal with that. I was actually thinking like, now that we get our. We have a very, very small car. And there are no, there, there’s no way that you can fit three child seats into the last row. Right. There are just two and a half seats. So now we have to buy it.

Bigger car. And so I was brainstorming with my husband and it was like, okay. So, and, and it really helps me to think about products and my wig. It gives so much meaning to me to thinking about, okay, this quarter of the car can come from that. And, you know, I could do this to get the other. And so [00:30:00] having, having a very realistic way of how to spend the money definitely is extremely different.

Or life-changing for me, for my mindset, because, you know, having the managers on the bank account, or it has no meaning for me, but now it’s, you know, part of a car and can a kid sit there or not. Right. And so on. Yeah. And I think that I wanted to ask you and maybe it’s probably the final question that I have for you.

And that I think is super interesting for my listeners is how do we deal with scope creep? But also how do we, how can we let go? Because for example, one of the things, when, you know, when I looked at you and especially at the beginning, You were only on Twitter, right?

So you tried a little bit to be on medium, but very quickly realized, you know, you have a couple of very dedicated and deliberate clock posts. But you never started really like your blog or now, or you’re building like your audience on the blog. You were building your audience on Twitter. And this, I found that really inspirational because I was also like, I didn’t have enough time to be on Twitter and on Instagram and on, you know, like what not.

And then you’re doing a shitty job on all of them and you just but now when I looked at your website, I saw. Oh, you can find me on Twitter. Gumroad Instagram and clubhouse. And I thought like, is that a little bit of a scope creep? Is that are your you’re you’re now on many things, do you feel like you’re, you know, are, do you still have like a very deliberate way of choosing where you are and how to also say, okay, I tried clubhouse and maybe now it’s not working in a.

[00:31:37] Daniel: Yeah. Yeah. I wish I had the precise on. So I think it’s mostly goes by Gutfield to be honest, I think in fairness, this as a full disclosure in the beginning guide side, many, many different things, as you noticed, I was on medium, but not just that I was, I think, little bit of background story. I think what I realized the very first week when I started working for myself, I realized I [00:32:00] had no reputation.

Oh, outside of the couple of companies that I had worked from, nobody knew who I was and there was still, I wasn’t, I wasn’t thinking, building an audience back then. I was thinking, can I build some reputation? Can I make some people know about me? And I was thinking, how can I go out there and help?

I was doing some open source on that data was very active for a few months. StackOverflow LinkedIn Quora, Twitter on medium on hacker news, LinkedIn, almost everything that had given that side. I dedicated probably a couple of months just experimenting different things. Some things I gave up quickly.

Some things, it took me a few more months, long story short, mostly Twitter was the only one that stuck around. And if you were to ask me what were the exit signals that made me choose that? I constantly say exactly. It just felt there was something that was working better. The return on investment seems to be better.

And again, almost like procrastination or something similar, a cousin of procrastination, something was making me feel like what’s the point of going off of spending more time on stack overflow. If this is not conducive to more people knowing about me and that sort of thing. It’s not, it’s not that I wasn’t helping people there, but it wasn’t a translating to me building a reputation, which I know sounds a bit selfish.

But in that period, that was my goal that I wanted to get myself no, a little bit. And over time I still experiment. So I sort of cocktail party downside. But again, for some of these and I, I lost motivation, right. I, I stopped. I stopped going. But so I still keep my eyes open for various reasons, because again, the opportunities diversification as well, sort of who knows I’m nowadays with Twitter, I feel like I have something to lose.

This is a common problem.

Since I have, you know, a hundred thousand followers or so. Concerned, you know, to some degree that’s what if that were to disappear? What if the algorithm changes? What if I get kicked out for some of these who knows or [00:34:00] get hacked or whatever? So again, there’s the back of my mind, ways of diversify flying that I haven’t really found anything concrete yet, so I, you know, it’s not scope creep. I was called it, I think is just still part of my experimentation phase.

Yeah.

[00:34:17] Michaela: I think that’s perfectly fine. I think it’s really important that we experimented with try out thing. And what I like what I also do is that if I feel it’s not like, for example, Twitter, right? That could be that I’m not posting something for a couple of months just because I don’t feel like it.

And, and I really liked this freedom and maybe, you know, like there is no comparison between, you know, your Twitter account and micros with your account. It’s really a small account by. I don’t want to be like the slave of Twitter, right. Or whatever I want to have, you know, like, and sometimes like in the summer or something, and there was a lot of stressful time or even a beautiful time.

Right. Sometimes I just didn’t feel like I have something to contribute and, and then I’m not, I’m not doing it.

[00:35:07] Daniel: Yeah.

Yeah. And, and, and, you know, I’m, I, I’m really not a fan of sort of the, the, these ideas that you need to be prolific and tweeting all the time, all the days. Sure. That might be the best strategy to put the audience faster, but what’s, what’s the point as you were saying. I think what I wanted to my, my, my ideal situation is that this becomes something that I enjoy doing because.

If not chances are it won’t last. I told like I, in summer, I think between June and August, I almost didn’t tweet at all because I was spending time with my family. You know, I might have tweeted it a couple of times. Yes. You know, my follow workouts stopped and maybe even lost some, but like, who cares? So I did sort of.

This idea that everything needs to be done in the most optimal way, sort of the fastest coat subject to the, whatever. It’s just very, as you mentioned, it’s sort of it’s you become a slave of, of, of the process, but in [00:36:00] general, in general ideas, like these are all extrinsic, things like that. I think they feel very naturally.

That’s sort of, you need to come to keep the streak uninterrupted streak of posting daily or blogging after a week or whatever. It’s things that I feel. Those things that I feel liberated once I break them, that’s a sign that I should probably not be doing them.

[00:36:20] Michaela: Yeah, exactly. Yeah. You know, this is why I’m, you know, an entrepreneur to have this flexibility and freedom to choose. So, but I don’t want to take too much of your time anymore. Then you thank you so much for being on my show.

I really enjoy talking to you. We could, you know, continue for another hour, but let’s be very deliberate with our time as well. Just want to remind my listeners of of the chance to win, you know, one of your products, either the good parts of AWS, the book, or the how to build a Twitter audience video.

So retweet, like the episode, maybe tell us what you are doing, that you enjoy, that you know, is one of your small bets to have an additional chance. And yeah. And that’s it. Thank you so much, Danielle, for, for being one of my show was

[00:37:07] Daniel: really a pleasure. This was very fun ticket. Thanks a lot.

[00:37:10] Michaela: Yeah, it was great.

Thank you.

 

Make money with open source software

Alvaro Trigo is a web developer who could quit his full-time job due to his popular open source software FullPage.js.

We talk about:

  • how to use open source to make a living
  • how long it took him to build software people want to buy
  • what he does against fraud
  • and his advice for developers that also want to go independent with open source software. 
Picture of podcast guest Alvaro Trigo

Today’s episode is sponsored by Codiga, a smart coding assistant and automated code review platform. Try Codiga for FREE!

Subscribe on iTunes, Spotify, Google, Deezer, or via RSS.

Transcript: How to make money with open source

[If you want, you can help make the transcript better, and improve the podcast’s accessibility via Github. I’m happy to lend a hand to help you get started with pull requests, and open source work.]

[00:00:00] Michaela: Hello, and welcome to the software engineering unlocked podcast. I’m your host, Dr. McKayla. And today I have the pleasure to talk to Alvaro Trigo, a web developer, who enjoys learning every day. But before I start, let me tell you about an amazing startup that is sponsoring today’s podcast. Codiga. Codiga is a code analysis platform that automates the boring parts of code reviews and lets you merge with confidence on GitHub, GitLab and Bitbucket.

I’ve worked at Codiga for around one year now and I love how it guides me in discovering and improving, aell, the not so nice parts of my codebase. But there is more. Codiga also has a coding assistant that helps you write better code faster. Find and share safe and reusable blocks of code within your favorite IDE on demand while you’re coding.

Codiga has a great free plan. So there’s nothing that stops you from giving it a try. Learn more at Codiga.io. That is Contiga.io.

But now really back to Alvaro. Alvaro created his first website at the age of 16 and did not stop learning and perfecting his craft. One day, he started to make JavaScript plugins and well again, to learn and as an experiment.

And three years later, he earned enough from his experiment so that he could quit his job. When I last looked his library. 21,000, I think downloads per week on NPM. And today I’m super, super excited to talk with him and learn how he actually makes money with open source, how he could, you know, write something on the side so that he can.

Quit his day job and become free and independent. So hello, Alvarado to the show. Welcome. And I’m really excited that you’re

[00:01:46] Alvaro: here. Hello, Mikayla. I’m happy to be here.

[00:01:49] Michaela: Yeah. So the last time I looked and this was 2020, right? The feed from 2020, it said like 21,000 downloads on NP. M what is it [00:02:00] now? Like? It must be even higher.

[00:02:02] Alvaro: Well, to be honest, I’m not sure I haven’t taken awhile, so I don’t know exactly, but, uh, so the similar, I guess I’m not very sure if the MBM stats are very representative anyways, but I think it’s just a way to, to show that, you know, you can have quite weight broadcasts. If you do something, you know, by yourself in your own house, nowadays is quite easy to reach so many.

And to, you know, to influence people in some way, right. Or companies or whatever. So I think it shows the power of open source in time.

[00:02:30] Michaela: Yeah. Yeah. So this is exactly what I want to deep dive a little bit into the power of open source. Right? I think the power of remote work. Yeah. It’s something that I’m very fascinated with and with the pandemic, I think a lot of people now really understood what’s going on here, but what about open source?

How did you even come up with the idea and maybe we should also explain, well, listen as a little bit what you were building, it’s called food page GS. Right? And as I understood it, it’s like a webpage that goes over our website that goes over the full page and it’s easy to set up. And,

[00:03:03] Alvaro: um, it’s a component that allows developers to create these kinds of websites, where you have like a full screen kind of slide.

That snaps to each of the sections. So when I created that, the fake wasn’t very popular yet it became very popular because I realized that almost at the same time that apple released the page four, iPhone five C the iPhone five C website was using these kinds of effects. So I think then people started searching for these kinds of effects and, and they were able to find my.

So, how did they come up with the idea? Well, I, I didn’t actually think too much about it. I wanted to create a component just to learn by myself. I wanted to keep on practicing jQuery at the time because the first version was a jQuery plugin. It wasn’t vanilla JavaScript. And well, I just came up with this idea that I thought it was cool because I was making a website in my.

At the time my boss told me, I, won’t kind of like a very simple website, kind of like a PowerPoint presentation. [00:04:00] And then I, I restart it to me. Then I came up with this idea that, uh, I took from different websites. And then after grading the website, I thought, well, this was quite difficult for me. I was trying to find for a component to do these kinds of websites and it doesn’t exist.

So it might be a good idea for me to create the components and see if other people find it also. He goes, he was out of that, saved them lots of time. And that’s what I did. And then decided to get some traction on GitHub. I remember one day. And seeing that you had like 500 more stars on GitHub and I didn’t even push it too much.

So I was quite surprised and then, uh, just kept moving. Cool.

[00:04:35] Michaela: And so did you, ’cause I, I looked on, on your GitHub profile in the size now, GDPs and GPL, right. Was that the initial license also that you looked up and you thought this is the right thing. Did you already think that you want to commercialize it a little bit?

Did you want to make money by. Having people that use it commercially?

[00:04:57] Alvaro: No, not at all. My whole purpose was just to, to keep on learning and at the same time to get the motivation for myself to, to, to keep on learning, to do something useful for others and that, you know, well, it makes you very excited about that and it needs to lead.

It was under the MIT. Because that’s what most open source kind of use writing in JavaScript the spectrum. And they they’re all, when I decided to start commercializing it is when I made the change to GPL person three, because I thought it was going to be more suitable.

[00:05:26] Michaela: Yeah. It’s also my license, like know it’s the Apache like years before it was the unpatched.

And now it’s always the MIT that I, that I use for open source. A lot of freedom to the user. Right. And so does it mean that if you already licensed it before under MIT that’s the previous versions are still licensed under that and only then the new things are under, you know, GDPR or how does that work?

I’m not really

[00:05:51] Alvaro: familiar with it. I don’t see this thing is quite complicated, so we understand I’m not really. Uh, an expert on the topic, but yeah, I guess what happens is [00:06:00] so full page version one and verse two, and they’re the MIT license you’re going to still find them under their releases sites and you’d have, and then after that I changed to GPL.

I don’t know how that legally works or I don’t know exactly how it does, but.

[00:06:16] Michaela: Yeah. Yeah. I probably, it will work like this, at least. That’s what I thought, but I’m also not, I’m not alone. I have no

[00:06:22] Alvaro: idea about it, but,

[00:06:25] Michaela: and so, so how long, because there’s also another tweet of yours and you were saying, well, I started to play around with that experiment with JavaScript, plugins and so on.

And now three years later, I actually quit my full-time job. How long did that really go? And where the times where you thought. This could be something or, you know, a lot of a long time where you just did it for fun, but never imagined that it’s, you know, going to be your bread winning. Um,

[00:06:56] Alvaro: yeah. Well, at first I couldn’t even imagine that I was like, somebody would be able to leave out from, from these kinds of things.

So I guess it’s kind of not right to me. I was working on it for free for three years under the MIT license. You know, at some point you start getting a bit, you have to take the seasons like, so that I keep on improving this or. And go for a barbecue with my friends. Right. Or, uh, so that has been extra hours doing this after work or so that just chill with my housemates or my friends or whatever.

So, you know, at the beginning of it’s very exciting. You, you get people using it and that excites you a lot. And then, um, you know, provides you some, um, help to keep on improving it. At some point you start having to work on it when you don’t actually feel like working on it. Right. Because people keep.

Requesting new features or they have bags, very specific bags that almost look like you are doing free consultants services for them. Right. And that’s when I thought, well, you know, maybe I can try to get something out of it. I got motivated by another developer it’s called. I don’t know how to pronounce it either.

I think it’s the Sandra, he created clickety Mansuri and [00:08:00] another popular JavaScript components. He was providing them the licenses for them paid like. I went into those, I read the bit how he was doing, and then I thought that I could do it as well. And that’s when I started charging for not for the product itself, but for paid extensions to the plugin.

So they were non opensource life extensions that I was selling on top of the open source project. So that’s how it just started. And then I saw people start buying them and that’s what motivated me to keep going. And then I noticed that I was more, I was feeling better about it all. Like if somebody reported the bag or wants it, this new feature or whatever, then I wouldn’t be so bothered about it because now I knew I was getting something in return.

So I think this way it works a bit better. Like when you can take the time to do something and you get compensated for that. And then you don’t feel as bad because you can, you’re not just wasting your free time. You’re actually doing something in your work time, I guess. And that’s a win-win for both sides, for the developer and for the users who get better support, better features, you know, better response times.

So I started sending the licenses, sorry that, um, extensions. And then after six months of doing that, I was able to quit. And then after a year or so is when I decided to also change the whole project and our license and try, uh, charting for the, for the license itself for commercial use, for non open source projects.

Yeah.

[00:09:33] Michaela: I think that it’s really, really important that, you know, projects, you know, that they are sustainable, especially if you have some success with it, right. Because. There is more and more time that you’re spending on it. And I think that, you know, nobody, like if it’s a hobby and you’re spending one or two hours per week or something, this, this idea doesn’t come up.

Right. But if it gets, as you said, if you have more users, you’re getting more requests, you’re getting more ideas maybe for features. So you’re [00:10:00] spending more and more time. And obviously, I mean, we all have to live somehow. Right. Um, obviously you have to think a little bit about how can I actually. You know, make that maybe my, my job.

And I think, especially if you like something, that would be like a win-win. So yeah, I can totally understand that. Another question that I had for you when you were, when you were turning the drought, I saw you have really big names. You have big names on your website for companies that are using full-page.

Yes, right. There was like a Google eBay, Coca Cola, Sony, and so on. Right. Did they all purchase a commercial license? Um, you know, did you reach out to them when you changed your licensing model and your, you know, your monitorization idea around that? Did you reach out to them and say, you know, I’m actually by now licensed for that?

[00:10:48] Alvaro: Or so some of them are using my license. That’s how I managed to discover, uh, website. Cause when you use the license for, when you buy an extension, you have to register it for a specific. Extensions of a different price, depending on how many domains you wanted, he wants to use extensive for those. That’s how I use for some of them all there’s I think I just discovered them by chance and they might not be using the license.

So it depends, but no, I, I didn’t read when somebody buys an extension or a license for the product. Now I get there. Um, I get to notify them about dates or changes. So yeah, when I released a new version and notified all of my previous customers and told them about that, that if they were not previous customers, they didn’t get a notification.

If they were using the previous restaurant, they can keep on using that forever and nothing’s going to change in their sites.

[00:11:37] Michaela: And so what’s preventing people from using. The new version and not buying for a license?

[00:11:45] Alvaro: Well, I guess some people, some people might not know that there’s a more recent version and others, I guess they they’re happy with their website and they don’t want to touch it at all.

So they don’t even want to bother to update to the latest version. All there is, they might not want [00:12:00] to pay. It’s not very expensive, it’s quite cheap, but you know, there’s all kinds of users, not only companies, but also freelancers or people who just make websites for. So that might be one reason because there’s no other good reason to not update because it’s totally compatible.

You don’t have to almost change anything in your code. I think it’s just one line. If, so

[00:12:19] Michaela: the question was more, um, are there people that are updating. Not paying if they use it commercially or is that not possible? Do you have some prevention mechanisms around that? What I mean is that, can I, you know, can I be a little bit cheat, cheat your sister?

[00:12:36] Alvaro: Yeah, you totally can. And there’s not much that we can do about that. I mean, yeah. For example, I discovered there was a McDonald’s website in Russia making use of day of the new version of the blogging with a new license and they were not paying for it. And there was a warning if you opened the JavaScript.

You were able to see a red warning say, Hey, is this somebody is not licensed. You can get the license here. There’s there’s not much that I can do about that. Uh, sometimes you can try to send, I think they’re called DMC a notices to Google or to some marketplaces to take down some of the staff at, you know,

Yeah.

[00:13:13] Michaela: Yeah. So you are more focused on, um, directing your energy to creating more value for your users and, you know, doing what you like and not so much buttered with, with the thefts and, uh, you know, trickeries and things like.

[00:13:27] Alvaro: I I’m only a little bit, but I try not to bother too much. It is true that with extensions, with, uh, extensions to that, to the main components in those, you have to register each of them for four different domains.

So you actually have more like, um, yeah, there’s kind of like a more sophisticated license key that you cannot trick so easy that that’s only on next sentence. I don’t want to enforce that on the product because then it will be too much of burden for many people. Yeah.

[00:13:57] Michaela: Yeah. And I mean, I think I would [00:14:00] probably draw a line a little bit between, as you said, smaller, you know, maybe individuals that even though I’m in $10, come on, but you know, like if then they’re like larger organizations like Google or E-bay.

In addition to this small fee, really small fee for you, are they providing some support? Do you get some sponsorship like there’s GitHub sponsors or something, or do you have other ways to, to support your work?

[00:14:26] Alvaro: Well, what I do is I also know I don’t, I don’t do sponsors and they don’t usually get support unless they go for a higher, higher license.

They do get support with. All kinds of tires get support for those, but not for the main license. And also what I do to get money from different places is also, uh, I sell, uh, against. I know you also do some affiliate things. And I also have another flagging that I also commercialized. So I have a few things that also drive money and not only the Fulbright silences also like sentinels, which are not opensource.

Yeah. And, uh, well, uh, I just remember that another way that, um, many people don’t even bother to get a license is because they don’t know very well how the GPL license works or, uh, you know, they are not very after with license. Terms and stuff. So they don’t even know that they have to purchase the license or they didn’t even know what is considered opensource or how to add a license to their own private.

So, this is a big issue that I see, especially on smaller developers, freelancers.

[00:15:31] Michaela: Um, so you were talking about plugins. Is it like a package or is it like a plugging? Was it the difference here?

[00:15:37] Alvaro: So well, back in the day is every time you made a component for jQuery, it was called a plugin plugin for jQuery.

And nowadays I tend to call it the library and JavaScript library, but yeah, also, um, the, I talk about plugins for work. Because a WordPress, you know, they have these kind of flagging stuff and then it’s flagging that it incorporates the library and allows you to [00:16:00] do certain things and you have a little interface.

So it’s not just for something on top of the company. That allows you to do things through an interface. Yeah. So

[00:16:12] Michaela: w when you were right at the beginning, you said, well, I tried to do that for my, you know, for my boss and try to implement that. And I was surprised how difficult it actually is. Right. I’m, I’m really in the same situation because I ported two websites from.

To get SPI now. Right. And I was like, oh, I studied excited, uh, you know, generator and gets me super supported and so on. And I completely underestimated how long, right. Even though there are so many plugins or, you know, uh, you know, components that you can use. But just even researching which plane to use, then writing the query really adopting it to your thing.

I mean, it’s like, it really blew out of hand. And even though their websites are, you know, now almost done, it’s like always like, oh, this little bit, you know, still like that, you even have to think about. I’m like, yeah, for work, like with word press, I was not so happy because it’s slow and I didn’t want to be bothered with, you know, going around PHP and, you know, changing something in the back end to improve my speed.

And then the loading time off each page really was annoying. So I thought like, okay, I’m going to do a guest beside, and then I will have everything with markdown fires and, you know, directly gets them from the fire system and it took. Actually no time almost right. To have that set up because there are already like start-up packages and then, you know, like, but then the small things like that, the canonical link is,

[00:17:40] Alvaro: you know,

[00:17:42] Michaela: it’s horrible.

Yeah. That I have a site map and then I have the keywords and I completely underestimated that. So, yeah, I totally understand. So if I want to use full page now in my guests beside, is that, is that something. Is that a thing? Can I do that?

[00:17:59] Alvaro: Would that [00:18:00] make sense? Yeah, I guess, I mean, well, I don’t know what your site looks like.

Is it more like a

[00:18:05] Michaela: blog? Um, it’s mainly a block, but it’s not only a blog. It also has like a run pages, right? Where landing pages and so on. I think for the landing page, probably something that if

[00:18:17] Alvaro: you go, yeah, I mean, you, you could, you could totally use it. Yeah. It’s just basically a JavaScript library, so you can initialize it, whatever you want.

[00:18:24] Michaela: And then it’s made mainly about the look and feel. Yeah.

[00:18:28] Alvaro: So yeah, what it makes is that allows you to create this snap scrolling experience, uh, full screen. So, um, well of course it is much more complex than that. It has many more options that you can configure. You have hash URLs, you have history back and forth.

You have the lazy load, you have, uh, play, um, pause of media elements. You have many more. Right.

[00:18:49] Michaela: And I think this is it, right? So first you think, oh, what is it? Right. And it’s really small. And now I’m like, I have this blog and I’m thinking like, if I’m in my blog and I mark anything, then I would like to pop up that says, share it on Twitter and so on.

And then realized.

[00:19:04] Alvaro: Yeah, exactly. So the very basic functionality seems very easy, always to implement by yourself. And then 20% of the extra features that you want. Those are what takes the most time. It takes a lot

[00:19:17] Michaela: of time. Yeah, exactly. Like, and then you want to have like previous, a previous RT connects article, and then this is not good enough because you wanted by category.

Right. And so, yeah. So another thing that I was thinking a lot about and reminds me also of your success stories, and there are, I mean, there are similar success stories. I think now more and more popping up right around the internet is that 10 years ago, If you ask somebody to pay one Euro or dollar or whatnot, or 10 for something, they would like crazy.

I mean, everything was free and it was like software should not cost any money. And I think, especially in the last two years, three years, it completely changed. I [00:20:00] mean, if there are like Google. You know, sunsetting, most of them products that are for free, right. And then the ecosystem completely changed into this SAS businesses.

But also that you have more and more smaller, I would say, yeah, smaller, independent developers also really making money for their, for their software. Right. And suddenly I feel like, okay, we have to pay for everything. It’s getting really expensive. Like for my website, if I don’t want to use Google analytics.

Right. Which is. And this is like the, you know, 10 years ago, mindset, like let’s use Google, Google analytics, and now the mindset is, oh, we don’t want to use Google analytics. So what else do we have here? And then I find like 10 different analytics platforms, but they’re all. $20. And I’m like, okay, this is for my private block.

It, you know, it’s already, it’s already a lot, right? Because it’s not only the analytics that you need, you need a lot of things, but I see that people are starting to value software more. What’s your experience?

[00:20:58] Alvaro: At the beginning, it wasn’t common at all to transfer these things. And now it’s getting a bit more common, right?

But still on the JavaScript environments, especially in the front end side of the offense is not yet to come on to transfer these kinds of things. You see libraries, components of all kinds, but usually they tend to be free because I think one of the main reasons is it’s not easy to. Protects in some way, like the code is it’s free.

Everybody can see the code when it’s front-end. So it’s very difficult to protect something like that. And when you can not protect it, I guess if that’s the make or some people think it doesn’t make much sense to charge for it. But yeah, I know a few libraries that are starting to charge for demonstrable libraries, but are still not very common.

I think it’s more comfortable for other kinds of products for backend staff for kind of like subscription services. But I think it’s sending to implement. In that regard, because I think it’s been a, so like sometimes when you don’t see this, when you don’t see that the owner of the, the great of the component is [00:22:00] getting some benefit out of it, then it’s easier to see projects in GitHub that.

Get unmaintained or too, you know, that they will eventually die or get obsoleted or whatever, because you know, somebody can not keep a mundane enterprise for some people think that you can create an open source project, tablets it, and forget about it. But the publishing part is just the very beginning.

Then you have to keep on maintaining it and that’s for years, like my component is more than seven years. And you have to keep on improving it and adding features and reporting and dealing with reports. And you know, so many people don’t bother doing this. And then you see the, uh, the, you know, the last release was four years ago.

So it’s not really a component that sometimes you can trust or you have to look for an alternative or you open a, you’ll never have the answers.

[00:22:46] Michaela: So your experience with, you know, there’s this rumor I’d say, or the anecdotes around customers and especially. You know, the free riders, they they’re really like heavy maintainers customers that are asking a lot of things.

And then the people that are actually paying are, are much more moderate. And I mean, my experience is definitely like this. Whenever I provided things for free people come with this attitude that, you know, it’s there, it’s there. Right? Yeah. I mean, sometimes I get emails. Like I have a newsletter and you get an ebook, right.

That I wrote, if you, if you, for my subscribers. And sometimes they can’t find their email in the spam, right. It goes in promotion or spam or whatnot. Right. It’s not really my father’s and thing I can do. And I’m always, if somebody is, you know, writes me an email back and asks, you know, I didn’t get it. I’m always going, doing the wig to write them a personal email, send them the book.

Right. But there are.

[00:23:44] Alvaro: Yeah.

[00:23:49] Michaela: And for other things as well, what’s your

[00:23:51] Alvaro: experience here? Yeah. You always get some people that is a bit aggressive a bit, uh, you know, they want everything for free when you to work for them [00:24:00] for free doing consultancy, you fix their bags that sometimes they are not even related with your own product.

Right. So, well, what I used to me do is just reply to them. Very politely, politely explain them the situation. Um, you know, always telling them, have you found a bag or you are not happy with this because you didn’t pay for it. You know, then you can just go and check the code because it’s open, you can check it yourself and does it go same?

Like everybody can check it and things back if they find them. So I think, uh, how many, this, an open source is also a way to, you know, move people in certain that I send and tell them, Hey, this is open source, you know? You know, you’re taking advantage of it, but it’s also good because you can fix your own easiest, right?

If you have them. So that’s what I do sometimes. And all the times you just tell them, well, if you need my help, you can always upgrade to a, you know, the business license, and then I’ll provide you whatever support or whatever. So I give them the options and that’s. Yeah. You only did some, some angry people, the money so much, if they’re angry and they paid for it and they are not happy because there’s a bag that I cannot fix.

For example, then I’m happy to refund them. You know, if I can not find, uh, fix their bags, you know, that, that makes sense to me. But otherwise, if they’re not paying anything, then, you know, I help them to, to some extent, but not, you know, there, there are some limits.

[00:25:13] Michaela: Yeah. So how much of your work day now is really?

Are you still. Program or is still a developer in your mind or are you now, uh, you know, like you are a salesperson already or, you know, like an admin person. Yeah. You know, how do you feel like in your, in your entrepreneurial journey right

[00:25:33] Alvaro: now? I don’t know. I think I like to consider myself more. Person than a developer.

It is true that another developer and, uh, you know, the background is, and I keep on developing the product. Uh, actually I’m about to release a new major residence. That’s it is also true that I don’t spend. My whole time developing anymore. Like, uh, I just have to do marketing. I have to do content marketing and I have to do, [00:26:00] you know, taxes.

Uh, you have to do all kinds of things like images. Uh, you have to think about potential new opportunities. You have to think about the license system. You have to think about. I don’t know, uh, so many kinds of things. So yeah, I guess I, I like to consider myself more as a, as a business person. I would like to maybe eventually in the future delegate parts of the developing side to somebody else that is even better than me.

And so also there are people. Benefit from that, you always try to look for the best outcome and sometimes it’s also gets into readable yourself for certain tasks.

[00:26:34] Michaela: Yeah. Yeah. True. Yeah. So I don’t know. Um, I couldn’t find anything about, um, how much you’re making per month or per year. I’m also not sure if you’re sharing something publicly.

Some people do some people don’t, you know, I’m totally going with whatever you decide. Do you share it? Do you say how much you’re making with it or can you give us

[00:26:56] Alvaro: in my case? I prefer not to be very open about it just because, you know, it’s open source, so anybody can just see my code and create another project.

And I started doing the same, so, and that’s one of the reasons if I had the SAS, you know, a vacuum product or whatever, I wouldn’t mind, but right now I prefer to be more primates on these aspects. So, uh, you know, we can say that I get an app to, to leave. And that have different sources of income. That’s an, all, everything comes from from the main component and it also comes from the plugins for, for WordPress, from AFI.

The links that I have for selling other WordPress themes from support is. From consultant services from, and now I’m starting a blog as well, which I’m also expecting to monetize in some way. So yeah,

[00:27:41] Michaela: it’s good. Yeah. Yeah. And I think it’s really good to have multiple income streams. I also try to have more than one, at least for me, it gives me a little bit, um, Ease of mind that, you know, if something dries up or doesn’t work out so well, maybe SEO doesn’t work or, you know, something else comes a copycat, as you said, right.

You have [00:28:00] other opportunities as well. So yeah, I can totally understand that. Cool. So I think I probably, there are a couple of listeners that. Are also like one baby more freedom, or at least, you know, a side project that gives some side income. What’s your advice for them? What would you do like now you’re in that game for a long time or is it seven years?

What do you think? Is there what’s the right time right now to start

[00:28:25] Alvaro: something you’re saying, oh, the right time, the right time is always there because some people are still waiting to finish that course to finish that book to become better. And, uh, you know, to master a certain technology, I don’t think.

The way you have to take this the way you have to do. You know, do your best, be wherever, you know, and you will probably end up helping somebody. When I created my project, I wasn’t an expert developer in jQuery. I created it because I wanted to keep on learning and creating something useful was what was a good motivation for me.

And I think that’s what the people have to do. Well, yeah, I haven’t the same when I created my first website, I do it. I created it using Microsoft. I didn’t know how to code. I didn’t know anything about websites, but I had a teacher that taught me how to make websites used to Microsoft word. And then I started seeing people using the website and that’s what motivated me to keep on learning.

Right. So the right time, I think it’s always now just do whatever. Keep on improving it, keep on iterating. It gets feedback from people and they will tell you sometimes how to improve things, what features they will need to add, what bags they found. So I think that’s what really. To improve my components at first.

Um, what I would say is don’t quit your job, do something on the side, see how it goes, get feedback. And then when you get some traction, you can decide to quit. In my case, I only decided to quit. When I saw that I was going to be able to keep on living from. Took me six months can take more, can take less.

It depends on people, but I was working in on the side for three years. That’s what I would recommend people to do it on the side, if they [00:30:00] can not get too crazy because you know, a great idea might not result in people buying your product. So, yeah, that’s one of the things. And another thing that I think helped me a lot at the beginning was making it well, I was open source or let’s say.

Because when you have something for free, at least at the beginning, or you have a freemium kind of product or something, you get much more exposure. Like people will blog about that. People will share it on Twitter, on Facebook, or so you create this kind of like snowball where, you know, the content keeps on spreading faster because it’s.

Unless you have a very good product and you can already charge for it or whatever, having it free at the beginning might be good because you not only get much more free marketing because you know, people don’t mind certain staff when they know that it’s free and nobody’s going to really benefit from it.

And you also get the feedback from the. The more people, they use it, the more feedback you get and the more you can improve it on different iterations. And then, you know, in the future, you always can start charging for it, release new virus zones or, you know, or even people to another area or whatever, but having that free feedback and that’s free marketing, I think it’s very powerful.

[00:31:12] Michaela: Yeah. Yeah, I totally agree. Yeah. Thank you so much for taking the time, talking with me about your journey and, um, about how we could, uh, leverage open source to actually start our own little business and, uh, you know, get

[00:31:25] Alvaro: independent. Thank you for you for having me here.

[00:31:29] Michaela: Yeah, it was really great talking to you and, uh, thank you so much.

[00:31:34] Alvaro: Okay. Bye. Bye.

[00:31:37] Michaela: This was another episode of the self engineering podcast. If you enjoyed the episode, please help me spread the word about the podcast. Send the episode to a friend Wyatt, email, Twitter, LinkedIn. Well, whatever messaging system you use or give it a positive review on your favorite podcasting platform, such as Spotify or iTunes.[00:32:00]

This would mean really a lot to me. So thank you for listening. Don’t forget to subscribe and I will talk to you in two weeks. Bye.