Tech

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 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.

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.

Using Entrepreneurship 101 to Build a New Profitable Business

In this episode, I talk to Karls Hughes. Karl is a software engineer who turned into an entrepreneur in the midst of the pandemic last year. His start-up draft.dev creates content that reaches software engineers – which means he combined his two passions, development and content creation.

We talk about:

  • his transition from developer to CTO, and then to the business owner,
  • value-based pricing and how to focus on the customer segment that gets the most value out of your product,
  • how to scale as a bootstrapped business,
  •  why blogging is such a career changer for developers.

Book your awesomecodereview.com workshop!

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

Transcript: How to build a profitable content business as a developer

[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 Karl Hughes. Karl is a software engineer who turned into an entrepreneur in the midst of the pandemic last year, his startup draft up that creates content that reaches software engineers, which means that he combined his two passions development and content creation.

Today, I will ask him all about his new business and what he ambitions and what he wants to reach. So like,

[00:00:31] Karl: Thanks for having me Mikayla.

[00:00:33] Michaela: So maybe I introduced you a lot with this new startup, but actually what I want to start off with is the startup or the side project that I know you from, and that is CFP land call for paper land.

Right? How do you pronounce it thing? You see a few?

[00:00:48] Karl: Yeah, we, I, I say, I say CFP land for short, but CFP stands for call for papers or call for proposals depending on who you ask.

[00:00:56] Michaela: Exactly. So it’s, it’s a sideways. I find all the relevant tech conferences. Right. And then know where to submit it, how to submit.

And so I think from that, I know actually your activities a little bit. And so, so how is that going? Like it had had to been really hard for the pandemic and everything. No, no, no conference.

[00:01:17] Karl: Yeah, it’s been a weird year and a half for CFP land. So I started the kind of backstory on that. I started speaking at conferences a few years ago and just for fun and to kind of get out there and meet more people and learn things.

And so it was great. I had a lot of fun, met a lot of people, but one of the challenges, a lot of the speakers. And we would always talk about it. It’s like, where do we find all the CFPs that are available when they close? Like where do we apply? What kind of speakers they looking for? Things like that. And so I started off CFE land.

It’s just a simple newsletter, just running it. You know, it was very much a side project and eventually I got. It grew. And it’s now a website with a newsletter it’s well, over 2000 people subscribed to it. So it’s a pretty popular, I mean, this is a small world [00:02:00] of tech conference speakers, but it’s pretty popular within that small world.

So a lot of people do hear my name from it, but it’s always been just a thing to do on the side. I actually, the year, the beginning of last year, when right before the pandemic happened, I was thinking about, as I was thinking about starting with. Maybe I would make CFE land or something like it, a full-time thing, which was fortunately, I didn’t go all in on that site because it was really, I mean, it went from, you know, we were getting consistently growing traffic to all of a sudden, just almost to zero overnight and yeah, I mean, I’m glad it was just a hobby project.

It’s starting to come back. Now. Things are starting to, you know, conferences are starting to like look at coming in person. And also just the virtual events are starting to get more predictable. People are figuring out how to work them. So all of it I think, is going to come back and it’s going to be, you know, I’ll put more effort into it this year, but yeah, it’s been a tough year for, for the project and for anybody who’s into event marketing and.

Yeah, I can

[00:02:56] Michaela: imagine. I mean, I started off with on-site trainings and it wasn’t like good starting March, like grew up. So. And how, why do you change from like you were employed before, right? You were a software engineer, you were a manager. So how did you change from that to become your own boss? So why, why during the pandemic, was that something that you did deliberately or something that, you know, just the events happened and this is how it go.

[00:03:30] Karl: Yeah, that’s a good question. So, you know, I’ve been with the startup. Uh, I I’ve always worked in startups, tech startups, like small companies, less than a hundred people. And so I started off just as a software engineer and was then most recently like leading a team of engineers. And I really enjoyed it. I actually liked my company a lot, but unfortunately the business was pretty strongly affected negatively by the pandemic.

And so myself and the rest engineers went down to half-time to kind of conserve money and make sure the company. Get through it and figure out what we’re going to do next. [00:04:00] And so in that half-time I started to explore, well, what do I want to do? Maybe, you know, maybe I’ll do something different next.

Maybe I’ll try a career shift. So I started writing for fun on the side, just, just kind of called up some people I knew and started writing technical blog posts for them. And then I found some lists of places you could write technical blog posts. And I realized there’s a lot of people who want engineers who were willing to write some blog posts on this.

I figured it was a good mix of my skills and it also was not negatively affected by the pandemic, like speaking was and things like that. So I started doing it and I realized quickly that there was a lot of companies that wanted this kind of content and that I could work with other engineers to sort of increase my output.

Knit draft out dev was kind of born out of just seeing so many people ask me, Hey, could you write for us? And I just realized I only had so many hours, so I better start bringing some other people in on this. So yeah, that it was really. I needed something to do on the side. And then eventually it became a full-time thing within three or four months.

I think I had transitioned out of my old job and was doing draft out dev full-time with a very small team at first. Yeah.

[00:05:01] Michaela: And so right now, are you still writing content? Are you mainly managing people that write for you?

[00:05:07] Karl: Yeah, mostly managing now. So it grew pretty quickly this year. I think it’s about quadrupled in size from what it was in January, which is, feels surreal.

So I’m almost exclusively managing hiring and kind of helping other people get unstuck. I still do a lot of sales calls as well, but the, yeah, the bulk of our work is done by software engineers. Blog posts around the world. And so for them, it’s a nice little nice and weekends thing they can do. They make some extra money and they get to learn new technology and write about it.

Show what they know for our clients. They’re getting experts who are interested in their tools and their tech tech that they write.

[00:05:45] Michaela: Yeah. Cool. That’s really cool. So how do you make the match between the people that you know, right. And the people that want things written?

[00:05:55] Karl: Yeah. We’ve got kind of a word it’s still an evolving process for sure.

[00:06:00] We do some recruits. Of writers that are in specific skillsets when need be. And then we put all of our writers into a list, and if you’re on our writer list, you get an email every couple of weeks. That’s kind of like, here’s all the open opportunities for writing. And we have people sort of like give us, just basically apply to, to write for each of them.

And we ended up trying to match up the best writers with the topics because, you know, we tell a client might. An article done in PHP and JavaScript and Ruby and you know, something else instead of like, we’ve got to find like a mix of writers to cover all those, which is, can be really tricky. But our, our pool of writers now is I think 50 or 60 active writers.

And so it makes it easier once you’ve got a pretty good volume of writers. Pick up the assignments.

[00:06:45] Michaela: Okay. And do you vet them somehow? Do you look at the can right or that, I mean, there’s also like a reason out there. Right? So people just call from the side.

[00:06:57] Karl: It’s a huge, that’s a huge undertaking. I mean, this is why this is why clients like working with us because it is a lot of work to try to find and vet good engineers who are also good writers.

So we do have a process. We start with a rubric, a skills rubric, but one thing that I learned as an engineering manager was it’s really helpful to hire people based on objective criteria, as much as possible. That’s not, you know, there’s always a little bit of fuzziness when you’re working with humans, but like we try to have like a pretty objective rubric that allows us to.

Great or rate each applicant based on specific criteria around like, how good did they do at writing? How good are they do explaining deep technical topics? How good were they at? Uh, things like communication and answering emails promptly, just, you know, being in touch. Uh, and then we evaluate each candidate and we’ll accept or accept or ask for more samples from each one.

So we do ask for existing published samples or sort of written sample of their work. You know, most of the engineers who were. Pretty experienced as far as writers and engineers, because we are a lot of the topics that we cover are kind of [00:08:00] hard to cover, uh, sort of things that most junior developers would have a hard time maybe picking up on the first try.

[00:08:06] Michaela: Yeah. Yeah. So maybe one thing that comes to my mind. I’m also like a intrepreneur and I’m doing mostly workshops and cultural workshops. I’m also doing consultancy right now. I’m doing quite a bit of research again. And so that’s, that’s exciting, but on the other hand, but I’m always feeling like I always have this urge I have to program again.

Right. So I’m not constantly programming because while that’s not my job right now, but if I like, if I’m in one source, Six big of a dollar 3d programming, something. I feel like, oh my God, I’m losing cash. And I really want to go back into it and I’m coding something on the side and I’m always like, I’m, I’m still struggling with how to, you know, make that a habit that it’s always constantly there because I feel it’s so, so important.

I mean, especially for me, but I think also if you are, you know, if you’re a Def shop for writers, I think it’s important. Stay at death somehow. I don’t know. How, how is that for you? I think it’s also the same for managing, right? If you’re in a managerial role and you’re managing people, how far can like a CTO or a engineering manager?

How far can they be away from actually doing the stuff? Right. I think it’s so. Um, I spent a lot of time, the last couple of weeks, really getting, knowing everything about the latest code review tools that are out there and, you know, all the studying and Ella analyzes again. And you have to do that, I think periodically because otherwise you really lose touch.

How do you think about that and how do you, you know, how do you combine that with what you do right.

[00:09:41] Karl: Yeah, I agree. I think that there’s a lot of value in staying in touch with the technical skills. Even if you like, I’ve always admitted to my employees and myself, I’m not the best engineer who’s ever written code.

Right. Like that’s okay with me. It’s okay. Really love working with people who are good because they are way better because [00:10:00] then you get to see sort of like, oh man, humbling experiences. Right. And reminds you. But I do think it’s important for engineering managers, CTOs, who are at least at smaller companies, CTOs to stay at least somewhat connected to what’s going on on the ground.

So the way I do that, A couple of things. First I do occasionally for fun, write my own technical articles. So I do it for say like guest posting on, uh, on different blogs or maybe on my own personal site or other sites around that people ask me to write for. So I do that some just to keep up with what’s going on.

I think I did pick up like a client article a couple of weeks ago because I thought it was an interesting topic and I wanted to get my feet wet in it. And then the other thing. Is I, well, what I find is that it is easier to pick up new tech when you’ve already picked up several things along your career.

So unlike when you’re first learning to code, you know, a lot of junior engineers always ask like, well, how do you, how do you just pick up a new language so quickly? I’m like, well, when you’ve learned four or five, the sixth is not that much harder because a lot of the same paradigms, the same concepts apply.

The same is true. If they. When you’ve used six different web hosts in your career, likely the seventh one is not that much different so that you probably don’t have to learn everything from scratch. Same like any CIS CD tools, testing tools, whatever, like, yes, there is some difference and yes, there’s subtle things that are important to know the differences between, but like, you don’t have to always be the, you know, you don’t have to know everything from the root level.

You just kind of have to get a good high-level sense of how is this different from the other things I’ve done in the past that are similar.

[00:11:31] Michaela: Yeah, that’s true. I mean, as I said, I was looking at study analysis tools recently and obviously it’s different. Right. It’s different because it’s more integrated in.

In dev ops, for example, in CII CD. Right. It’s a little bit more automated, but in the end it was the same, like the same as 10 years ago. Right. So, yeah. Yeah, I totally, and, and the same, like for languages, [00:12:00] I feel that picking up, and this is something that I really, I mean, I love to talk about it because I feel like you can pick it up.

Fast, but then really getting really good at it. It’s even, I think sometimes a little bit harder if you have a lot of baggage, right? So like coming from the object oriented Java and C-sharp world. And I recently it’s not recent anymore, but like two and a half years ago, I started with. And I mean, obviously I could program and I could, could really productively do stuff within really short amount of time.

I mean, it was days that I, you know, and, but then I feel like stuck and I feel like, oh, it really took me quite some time to understand, you know, and feel comfortable really that I know how to architecture and I’ve heightened. I could architecture, but it was like it was a job or a C sharp application heightened.

Which didn’t feel like it’s not by tonic and it’s not like how you would do it in that language and learning that and changing the mental models that you already have. I found that quite, quite interesting and tricky. How, how, how has that.

[00:13:06] Karl: I agree. I, that is tricky. I think one thing that I’ve thought about in this transition from being like engineering leader, who’s expected to still really know the tech to more of a business owner is that I, I don’t necessarily have to be the best at those lower level, that lower level of knowledge, right?

The specific implementation details. I may not always be the best, but at a high level, I shouldn’t have. How does Python work versus Java? Like I should know that it’s almost like knowing what you don’t know is good. So knowing that I’m not going to write Python at code, like you call it is maybe helpful more than just knowing like exactly the best way to write Python, because you can always, when you’re, again, kind of going back, putting my business owner hat, My goal is to make the company run well.

So that might mean hiring somebody who knows these things better than me. It might mean hiring technical reviewers in the future. As I get less connected to the day to day, it might mean hiring well, we already do this. We hire a lot of [00:14:00] writers who are experienced in languages and frameworks that I really haven’t used much if at all.

So yeah, it’s definitely important to like, know where your limits are and then be like, ask yourself the question of, you know, is this the best thing for me to learn myself? Or can I hire someone? To who knows it already and get even more, more bandwidth out of this.

[00:14:20] Michaela: Yeah, I like that mindset. I mean, in general, maybe that’s what I want to deep dive a little bit with you.

Is that mindset of, you know, the manager, a CTO or also a business owner? I think I’m, I’m, I’m still struggling with that. I like two years ago with this one. I totally didn’t feel like it. And so even though I started already my business, I would never say to myself, like, I’m the founder or, you know, business owners thing.

I always say like, I’m a software engineer. Right? Like, and, and it really took me one and a half years to say, okay, I feel a little bit comfortable. You know, I’m doing now my tags and all of that, but I still, I still struggle with, for example, sales. Right. It’s just something that. I dunno, like, and, but you were talking about Sage, like I’m doing sales calls and all of that.

So how do you get into that mindset of actually doing the stuff that a business owner does versus, you know, doing the stuff that an engineer does?

[00:15:17] Karl: Yeah. I mean, there’s nothing, so I’ll just like play the other side and say there’s nothing wrong with becoming a, a business owner consultant who stays. Very much a software engineer.

Let’s say, you know, I have several friends who are consultants or freelancers that essentially like they, they have a very flexible, interesting work where they can do, you know, work for several different clients, but they don’t really have a bunch of employees there. It’s kind of just them being a freelancer.

And that’s a great, that’s fine. There’s nothing wrong with that. But if you sort of. If your goal is to build a company that runs either without you, or it runs with you being able to take a vacation, things like that, then you kind of have to step out and figure out what it means to be [00:16:00] a business owner and a team leader rather than a.

Team like a doer, you know, the person who’s touching every piece of content or whatever. So it just depends your goals, right? Like there’s nothing wrong with either path. My goal went in starting draft was, I mean, it was initially just like figure out if this was like something I wanted to do. And then I realized, yeah, it’s something I want to do.

There’s a lot of people who want it. So I kind of, my long-term dream has always kind of been to start my own company and run it. And so this has just been like a really good opportunity at the right time and place, but it is hard. And one other thing that’s really hard about it. Letting things go to other people when, you know, you could do it better yourself.

And I still struggle with that. I mean, like there’s some articles that come through and I, I read what the writer wrote and I’m like, yeah, it’s not bad, but you know, I know I would do this better this differently or whatever it is. It’s so hard to let that stuff go. And I, I don’t know what the answer is.

If you get yourself booked so solid that you can’t possibly do it all yourself, that will force you to get good at delegating or you’ll just fail. So that’s one way you can do it too.

[00:17:06] Michaela: Yeah. True. True. Yeah. I think I’m like right now, I’m also in a place in my business that I’m thinking. What are my next steps, right.

So I grew to a capacity level where I just can’t, like, I’m saying no to a lot of things, but I’m not set up in a way that I can take that on and delegate. Right. And, and I, and I know maybe it’s also mindset again, it’s not only mindset. It’s also like, if you’re already at capacity, how do you get a person?

And how do you know, you know, like how do you get them to the point that they could actually take off and do stuff. Right. So even for the podcast, I actually have like, And little advertisement out there that, you know, I want somebody that helps me with the podcast. I haven’t found anybody yet, so yeah, I’m really admiring that you say, well, you have like a couple of full-time engineers, right.

That are writing for you. And then like these large network of people that [00:18:00] are working with you a little bit more in a loosely coupled way and was just in a couple of months. Right. So how did you get the first.

[00:18:08] Karl: Yeah. So this is my process for this. I I’m a huge nerd for process. So like it it’s, it’s excessive at times, but I’ll just like, be bare it all out here.

What I do is I track my time. So I’m pretty diligent about that. And that tells me like, am I spending say eight hours or 20 hours a week writing articles. So at some point I reached a critical mass where I was writing. 20 or 30 hours a week. And I realized, okay, if I want to spend 10 to 20 hours a week on sales and marketing, I cannot keep writing.

I have to stop and pull this out. So I started to look for other writers. And so that was my first step. What I first did to, to hire the very first one was looked into my network and people I trusted already. So I was like to think of the first hire for any position is kind of your trailblazer is how I call what I call them.

And that means. You’re going to give them very imperfect information, but you need them to be smart enough or have worked with you enough to have a high level of trust with you. Like, you know, this kind of goes back to your point about the podcast person. You do want to be picky in that very first hire because they’re going to help you set forth a process, then you’ll be able to imprint onto other people in the future.

So that very first, right? Yeah. Was a friend of mine who I knew could write, well, he had a similar background in writing engineering and he was, we were in the same city. So we could talk if we need to did a great job, he helped me figure out what things are clear and not clear when I pass work over to a writer from a client.

So that was my first step. And then the next thing is to build like a template for what this work looks like in the future. And me and him just kind of like trial and error basically figured out what, what worked and what, didn’t, what I needed to give him, to make him. All the information you needed to write articles.

And then we start, I started to test it out with other people. So I found people outside of my network, who slightly, I didn’t know, quite as well or didn’t trust quite as much, or didn’t have as much experience. I just started to try them out and see what happened. And then [00:20:00] that helped me refine the process even further.

And so by December of last year, I was starting to ramp down on my writing and ramp up with these other writers. I found a new bottleneck and that new bottleneck was, I was spending a lot of time editing and editing was also very tedious detail oriented work that I tend not to be the best at or the, like, it doesn’t, it doesn’t get me excited.

It just drains me. And so I started looking for an editor and I kind of did the same thing. I started with someone, I knew someone I trusted and. Pay them really well. And I was like, look, I don’t know how to edit, but you’ve done it professionally for years. Could you edit this article? And like, help me come up with a process and style guide.

And she’s now our managing editor and she’s full-time and she has a couple other editors she works with now or under her. So I kind of followed this exact same process every time I want to make a hire, just do that account manager. I’d done like a marketing person. And it is hard. It is definitely something that you’re going to like, you have to be okay with that person, screwing some things up.

You can’t expect them to pull everything out of your head, but if they free you up to say, spend more time on the growth side of the business, the sales, marketing, the stuff that generates new business and keeps clients really happy. And coming back then it’s worth those slight hiccups that are going to happen because that’s the only way you kind of get a bigger company.

[00:21:14] Michaela: Yeah, that’s true. Yeah. But you know, the funny thing is that, you know what I did, I started to automate.

[00:21:22] Karl: Well, that’s a bad, yeah. I think that’s a really viable option if you, I mean, this honestly, like hiring people should be like your second resort. Like the first resort should be automating everything as much as possible.

Yeah.

[00:21:34] Michaela: That’s what I tried to do. I honestly, when I looked into that, I thought that couple of things you can really automate very well and they’re nice tools around and a couple of things were still really imperfect, right? So like the editing for the podcast. For example, even though I upgraded my tools and my process.

I actually have is a step-by-step guide, how to do that. Right. But the automation is not completely, like, you cannot really [00:22:00] automate that too much. There’s so much manual, still manual thing. But for example, the whole booking guests and things like this, there is a lot of potential for automation that you can actually do before hiring somebody.

Maybe another topic that I want to pick your brain on is, well, when you hire, right. Do you have also to think about how much of the money that you get from. Business. Right. Are you investing in the higher again? Right? Which for me is also a little bit tricky to do. I mean, especially podcasts, it’s not really making money.

Right. So it’s also harder than to say, well, you know, like you’re hiring people, but how has that for you? Like. Would you say that at that point it’s okay. If the company’s had a loss or does it have to be, you know, positive or neutral or, you know, what is your thinking about how much do you spend for hiring and growth and how much does the business have to, you know, sustain itself as a, as a bootstrap business?

Right. So funded business. Yeah,

[00:22:57] Karl: it definitely, this definitely depends on the kind of company you have and the way that cashflow works and the way that if you’ve raised money, it’s a different thing than if you’re bootstrapping or self-funding. And so I’ve seen it done both ways. Like when I’ve worked at funded startups, the way they did it is, you know, we raise a big chunk of money and that sits in the bank essentially.

And then we start to hire a head of where. It’s like basically you hire for what you want to be at in a year. So we bring on five or 10 people all really quickly. And then we try to like get to the point where we can actually support them. So that’s risky obviously. And if you’re you’re bootstrapping, that’s not really an option.

I didn’t have hundreds of thousands of dollars sitting in the bank to just work from. Right. So, so the way that I did it was sort of when I started draft, I started to think about. Okay. I don’t have a lot of money. How could I build a business? Basically, clients helped me pay for these things. So what we do is we, we get, we get clients pay upfront and that helps us know we’ve got the cash in hand to pay the writers, editors, and anyone else supporting staff that we need.

The. Three or six months of execution. So it’s like, we kind of [00:24:00] make the plan with the client up front and then they pay us and then we actually get into production and then we start paying people, but the client’s already paid us a large portion upfront, or they’ve been on a payment plan or whatever. So that helps a ton with being able to know that what we’re doing is profitable.

The other thing that I do is a forecasting. So basically looking. How much, it costs us to produce an article, how much we can have to charge for that. And then where’s the like margin, you know, the profit essentially, but in how much that margin goes to other things like support staff, other support staff that isn’t really counted there, or services or tools to your point about automation.

I’m big on that too. I spend a lot on. SAS tools that automate a lot of these little things behind the scenes. Yeah. So Zapier and even Calendly and having all that stuff, just kind of automatically do this little administrative work is really, really helpful. And I think it does allow you to run a lot leaner business.

Even if you pay all the subscription fees, it’s still cheaper than hiring people.

[00:24:59] Michaela: Yeah, exactly. That’s that’s also what I. Especially when you’re like, when I was completely bleeding footsteps and, you know, even a $10 subscription somehow really string because they add up, right? Like they add up and if you’re really making zero money, it’s like, oh my God, how I’m going to do that.

But then if you, if you’re a little bit profitable, I think automation is really a. You say, well, I’m paying like 10 bucks for Kalindi, for example. Right. And now it does all the magic and sends email reminders and whatnot. Right. And thinking about how much time I would have to spend here to do that. Yeah.

So in the end, you’re always, is it something like, would you say that you are getting a salary right now? Do you try to, to really you are sustain it as well? Or are you saying well I’m as a founder right now, I’m investing my time before.

[00:25:48] Karl: Yeah, I do take a salary, you know, since the, since it started one of my, I don’t know, one of my, my goals with it was like, I do want to pay myself something.

I, I definitely make less than I did as a CTO to start out. I’ll [00:26:00] say that, but you know, to your point, like I’m investing my time centrally into the business. So I’m working at a discount to pay for the company to grow, which is, you know, a fair deal for a lot of entrepreneurs, you know, with a service business like ours.

Uh, there’s different kinds of companies, right? Some companies like a software as a service kind of tool, you can probably take, you probably have to take no salary for longer because it takes a long time to ramp up to the amount of revenue that you can then pay yourself. But with a service business like ours, that’s pretty high dollar.

We, you know, we make a lot of cashflow into. We’ve got to like, essentially I wanted to build into our cost structure, a person like me to run things because it’s not like I, even if I didn’t work in the company, somebody would have to do what I’m doing. So I don’t think there’s a way that you can run this business as a real business without having somebody in that seat.

Even if I’m working at a discount. You know, keep things going a little longer. I still have to budget something for this in the future. So I think that’s important. I also think that it, again, like, kind of is like business fundamentals. You want to set your business up in a way that can, that it is realistic.

Like if, if you make a small business and it. Like pays you anything like you’ve just made yourself like into a, I mean, that’s, that’s really terrible, you know, that’s a lot of work to get nothing out of it. You may never get to a point where you can sell it or whatever you don’t know. So I think you at least have to cover your basics, but I do, you know, I think it’s also, I would prefer to invest more back into the business than to take more out at this point.

Now I don’t really need a ton of cash, I guess.

[00:27:30] Michaela: I personally always think that you have to love the way and the progress, right? Not only that, because otherwise you could really end up with a lot of regrets. So unless you sat, right, you probably don’t. I mean, it depends on how much you need right now from a supportive perspective on no, how much money cashflow do you need right now to feel that.

And then you can invest into your business and the growth and that’s the end goal. But I also think like if you’re starving on the way, it’s not that it’s not just the [00:28:00] right. Yeah. Yeah.

[00:28:01] Karl: I mean, it depends, you know, if you’ve got a bunch of money that you’ve saved up and that can be your bankroll for a while.

Sure. You might be able to do that. But yeah, everybody’s circumstances are different. Like I knew that I didn’t have that, so I couldn’t start a business that was going to take me two years to pay myself. It just, wasn’t an option. I’ve got a family to help support, you know, so for some people, I think.

Engineers who want to become entrepreneurs? They think like, oh, I’ll just build a software product. And that’s the, you know, I’ll, I’ll grow it. But like the time required to grow, that is huge. And the amount like you have to think and be realistic with yourself, about how much runway as we call it, do you have to make no money?

And if you don’t have a lot of runway to make no money, then maybe that’s not the right kind of business for you. Maybe you need to think about like, eh, is there another more service business where you can get some more cash in the door early? Or is there a. Info product or a course kind of business, you can start where you get more money in the door, early, things like that.

[00:28:55] Michaela: Yeah. I also think that, I mean, even if you do a software product, really trying to gab people paying for it as early as possible is super, super valuable because it keeps you honest. Right? Like having 200 people sign up for freestyle. You know, feels really good from, from an endorphin perspective or dopamine, but is it, is it, is it I actually underwrite way, right.

And you don’t want to feel like invest all the time three years and say, well, you know, I’m, I’m investing all of my time and you know, which is, I think a very noble goal to do, but. Three years you realize, actually not that I want to charge for it. You know, nobody’s really interesting. So actually starting with something and putting a price tag on it, I think is a really good.

Strategy also to know whether or not that is valuable, right. Or, or how to tweak it, that it becomes something that people want to also pay for. Or, and for engineers, it’s not that easy. I think engineers is a specialist species that are, I was actually talking with my [00:30:00] husband lately about what are we paying for?

Right. And there are a couple of. The IDs are all free. I mean, he’s actually paying for it for his

[00:30:09] Karl: ID. I pay for mine too,

[00:30:13] Michaela: but a lot of them are free and they’re really good. And then the other tools are all also free or either the organization pays for it. Yeah, I dunno. I think we are, we are too bunch.

[00:30:27] Karl: Yeah. I mean it is. But the other thing to think about one thing I’ve found that was surprising until I started the, this business was that your pricing will determine your. In a lot of ways. So for example, just in draft dot Deb’s case, if I charged half of what I do, I could probably open myself up to different kinds of customers that I don’t have today.

But the downside is, you know, we wouldn’t have the money to hire other people. So we wouldn’t be able to do things at the scale we’re doing. And so we’d have to scale way down. We’d have to be very limited in who we worked with and it would just be a different company and there’s nothing wrong with that.

There, it just is like different price points end up enabling you or pushing you into different market segments. And so when you go with the free market segment, like you said, that may not be the people who you actually need to pay you later. So companies that do freemium, a lot of times, what they’ll try to do is roll those free subscribers up into a company plan later.

But if you don’t have outside investment, that’s really hard. It takes a long time to get there. Yeah. Yeah. So it, again, it kind of goes to like, be realistic about if you’re bootstrapping and self-funding like, can you really afford to do that kind of freemium strategy? And like, usually the answer is probably not.

Yeah,

[00:31:42] Michaela: yeah, exactly. Yeah. You’re right. So. When I get from what you’re explaining here is that you also have a little bit like higher paying clients, a little bit companies that you have contracts with. So how do you get them? You were talking about sales. How do you do sales? And you [00:32:00] know, like how did you get that?

[00:32:02] Karl: So early on what I did was I said yes to anyone who wanted me to write an article for them. And so what I started to learn was which kinds of companies, what size of companies, what kinds of teams that are hiring me are the ones who are least price sensitive or most willing to pay the highest dollar amount, because they got the most value from the article.

So. You know, for example, I could write the same great article for a team, like an engineering team that wanted some content for their blog. As I could write for a marketing team that wanted content to put out to the public to make sure that engineers knew about their product. It could be the same article that was just as good.

But that marketing team would pay me two to three times as much as an engineering team would because that article leads directly to revenue for the company. So it’s a totally different business model and sit like you have to think about that. When you think about pricing services, there’s a guy out there named Jonathan Stark who talks a lot about value based pricing.

And while I don’t, I wouldn’t say we’re like a value based price service entirely. We think about that a lot, because what he’s saying in value based pricing is you should charge. The amount of value a client gets from your whatever work, your service. If an article is, let’s say for our case, like if a company can clearly make $2,000 of revenue from one article, we write over the course of a year or two, let’s say our articles are a great investment.

You know, that is a clear winner and they will pay us, you know, up to that, whatever, probably half of $2,000, a little more or whatever. So that’s that side one. If on the other hand, the company is not sure of their revenue per article like that. They don’t know how many visitors it’s going to attract.

They’re really nervous about that. Or maybe. They know that each article only gets $300. They’re never going to pay for our services. They’re not a good fit. And so that’s where, like, to me, the, the, the hard part of sales quote unquote, is figuring out who the ideal target market is that has the willingness to [00:34:00] pay and actually gets a good value out of our service.

Um, and so the clients that, you know, sure. I have people all the time and say like, yeah, you guys are too expensive. That’s totally fine. Like, Set up to do that kind of low cost work, but I have a lot of clients that think we’re a great value and they probably would pay more if we charge more. But like, you know, there’s a sort of a limit to where yeah.

The pricing pushes you into different markets. And so anyway, I think that the big part of sales is figuring out how to narrow down your market as much as possible. And so for us, it’s like started off as just like, we’ll write any technical content and then it got more narrow and it’s like, Technical content aimed at software engineers, but then we started to narrow down even further to like start ups who are trying to hit, trying to get in front of software engineers from their marketing teams.

And so now we’re like super narrowed down and it makes it really easy to have sales calls, like, because I basically know there’s only a few hundred companies in the world. Need to work with us anyway. So it’s a really small list. They all know each other’s, there’s lots of introductions and referrals. So you know what, we’re not going to be like the next Facebook size company ever.

That’s fine. We’re doing really well in the small thing that we’re good at.

[00:35:01] Michaela: Hmm. And so you’re also Dan, redirect, you going to a marketing head of marketing and pitching deeper, or how do you, and do you use like LinkedIn or sites like that to find those.

[00:35:16] Karl: I don’t do a lot of outbound like that. You know, there’s kind of two kinds of sales and marketing and it’s called outbound or inbound.

I am not much of an outbound outreach to people kind of sales person every now and then I we’ve tried it a couple of times. It’s just like, I don’t like it. It doesn’t seem to be that productive. We do mostly inbound and referrals, which means that people see the content we’re writing out there in the internet and they say, oh, that company did a good job.

Let’s go talk to them. Or they see, they talk to a, another client of ours who gives them the recommendation or they see maybe my, I share a lot of things on LinkedIn and Twitter. And so they, they see that and they contact me directly through that. We’re also doing some like meetup groups and conferences, things like that too, to kind of get the word out a little more.

To be [00:36:00] honest, like at this point we’ve had enough business from this inbound stuff that we haven’t needed to do a lot of direct outreach. So I think that’s ideal if you can get that set up, but it does take, I mean, I spent a lot of time building a reputation and the connections and networks. So like, that’d be hard to replicate if you were somebody earlier on in your career.

[00:36:17] Michaela: Yeah. Yeah. I’m also completely a hundred percent invalid because there’s just like this. I don’t want to do it. Like I, you know, whenever I get an email from somebody, I don’t know, it feels like spam, but I don’t want them to be that person. Right. Like, I don’t know, like it’s also mindset obviously, right.

Because I know a couple of really, really wonderful, safe people that I also tried to learn a little bit about, and it never feels like they do it in a way. That it doesn’t feel like, you know, it’s this LinkedIn message that you get like that, you know, went out to 1000 people and drinks the same rate. So, but yeah, I’ve never, I’ve never tried it and I’m not really eager to try it anyways, but yeah.

So it’s, it’s inbound. Right. So do you write on your own blog as well? Do you write content for yourself or content

marketing?

[00:37:08] Karl: Yeah. Oh, quite a lot. I try to write at least an article or two a week, sometimes more. Yeah, I, so I write for my own personal blog and then the draft.dev company blog quite a fair bit, although I’ve been trying to get more writers for that as well.

And then guest blogs, whenever they come up, whenever people just happen to see something and want, want me to write about? Yeah. I think writing is a really powerful career booster. Even if you don’t become self-employed as an engineer, I was just talking to one of our writers the other day and they were telling me about how.

Writing this article on some new technology. I don’t even remember what it was, but they got to write this article on a cool new tech that they’d never used at their day job. And they now get to put in their resume, you know, Hey, I’ve worked with this and look, I can prove it. I’ve got an article out there that I wrote, and that’s really powerful because like at our day jobs, like as a software engineer, I would usually get to work in like one or [00:38:00] two languages, one or two frameworks at a single company.

Company doesn’t want to have 30 different tech tools they’re using. They don’t always want to experiment with the newest things. It’s not worth it. But with, uh, with written content, a blog posts, you can go explore and try the try five or six new things over the course of a year and get those published.

And now you’ve got proof that, Hey, I know all the cool new stuff that’s been happening. So I think even if you don’t go, the self-employed. There’s a lot of advantages to writing, but if you do go the, like become a freelancer or consultant or starting a business, having all this writing out there on the internet is extremely powerful.

I mean, there’s people who reach out to me because of articles I wrote three or four years ago. And so it’s just this like compounding interest effect of good content being out there. And so you just never know when that stuff’s going to really pay off.

[00:38:48] Michaela: Yeah. Yeah, I totally totally see that, but it also takes really long time.

Like if you want to run, you have no idea about that tech. It really takes time, right. Especially if you want to. I mean, probably an introductory to something is quite easy to ride, but when it gets a little bit more. Substantial that it’s definitely like, for example, I’m thinking about all studying analysis tools that I analyzed over the last weeks.

Right. So I’m thinking about what I’m going to do with it. And if I’m going to create a YouTube video out of it or blog posts, definitely. I mean, I don’t know how long are you people spending on a, on a Blackboard. Probably would spend from my own block bars. It would take me several days to do that. Right.

To have that blog posts that you want to bring out there. How is that for you? How long do you spend on a. Well, it

[00:39:39] Karl: does get passed. Yeah. There’s definitely different kinds of articles that require different levels of time, commitment and research and all that. But I think you do get, I’ve gotten faster at writing since I’ve been doing it more.

I’ll say that I, you know, before this year I probably wrote a blog post a week on average, you know, maybe. 2000 words or a little less [00:40:00] now I, you know, writing a couple of week and having written even more, some at some point throughout this year, I’ve really taken that average time way down. So I don’t really have a, I don’t know what, I don’t have an hour number or anything like that, but I do know it’s like usually with a good solid day, I can finish up a single blog post unless it’s something really, really specific.

And then maybe it’s a two day thing and you know, it. Uh, you know, whether you should invest the time to get faster and better at writing blog posts. I don’t know. That’s, uh, you know, depends on what your goals are and what you’re looking at do, but even just writing one a month, you know, you think about, again, like this compounds over years.

And so one blog post a month is only 12 a year, but then you do it for five years. And now you’re talking like 60 blog posts. That’s a lot, like a lot of people never write 60 blog posts in their life. So I think there’s some just, you have to think about doing things consistently over time and the value of.

[00:40:50] Michaela: Yeah, true. And do you, do you use any software for, you know, helping you with the writing process? For example, the Rome research would be one, or I’m using obsidian. It’s a, it’s an open source version, which is very similar to it, which I think is a good way to, it’s like a second brain and you can link your resources.

And I think it helps with writing. I recently started like half a year, but do you use something like that for your, for your process to, you know, keep track of what you read and what you want to write about your idea?

[00:41:20] Karl: So definitely I keep a journal call called like a swipe file or marketers called swipe file of ideas and things that I think about throughout the day or week or year, I do keep a swipe file.

And then I also, as I start to like refine a topic, I start to create an outline of like, what ideas do I need to include in this article and how do they link together? So it’s, it’s really hard to write. Just boom, like bam out of blog posts without doing some research and, and outlines for me first. And actually I think this is one of those, like, time-saving hacks that a lot of people don’t do, they just jumped straight into writing.

And so then they get this mess of like ideas and then trying to fix it all later. It’s really hard. If you spend more time researching and outlining organizing, [00:42:00] it usually comes out better. And then I, you know, on the back end of things, like I use Grammarly pretty heavily because I go into back to my, I’m not a detailed person.

Like I I’ve gotten better and faster at writing, but at the same time, I missed punctuation and like spelling and all the little stuff. Right. So Grammarly is kind of my savior there. I always highly recommend if you’re going to write consistently, I think it’s free. You usually, so there’s no reason not to use it.

And even if you pay a few bucks a month, that’s it very well.

[00:42:30] Michaela: Yeah. Yeah. I also use Grammarly and it helps quite a bit. Yeah. Yeah.

[00:42:35] Karl: It’s not perfect. And I mean, we have like re yeah. We have like real editors, human editors as well, because there’s definitely things that won’t catch, but it does, it can get some little things that are, yeah.

[00:42:46] Michaela: It’s really nice. Yeah. There are a couple of things that, because I’m not a native speaker, right. So sometimes it corrects me. I think you’re right, but I’m not right now. Like, and then sometimes I go with Grammarly and sometimes I just leave my stuff because I feel like it’s not always correct. Right. But, you know, yeah.

I really like it. I can recommend it as well. Yeah. It’s really cool. Cool. So maybe the last thing that I wanted to ask you is, so you transitioned from software engineer to CTO, right? So it means a lot of managing as well. People managing and. You know, doing your own thing. I guess this people managing already at the, at the startup already helped you to get a lot of those skills that you need now to delegate, to understand, to hire people and, you know, to have this, I mean, you have brilliant large company already within a couple of months, right?

So do you think that the CTO role and the managing role really prepared you and.

[00:43:47] Karl: Yeah, definitely. There’s a couple of key things that having some roles with startups helped me with. So first I came in as the first employee, basically at the last two startups I was with maybe first engineer, [00:44:00] but whatever is like within the first four people at the company.

So I got to see everything. I mean, you get to see the founders going through raising money and pitching the investors. I got to see how they hired people, how they dealt with. Cashflow and like deciding, you know, how who’s going to do their accounting. Like all these little nitty-gritty things that are not engineering, but at the same time, you just get exposed to, by being in a small business.

So getting to see that firsthand kind of gave me like, oh, okay, those are the things I would think about. If I started my own business, you know, that was part one part two was it gave me a huge. A lot of connections in software startups, which are now kind of my target market for the clients we have. So that has been really good from that standpoint as well as well.

And then the last thing was not being afraid to hire. People, have to fire people have to give them performance evaluations. Like all those management tasks you just said, it was super helpful to get the opportunity to do that in a protected environment. That wasn’t my own company where, you know, I think I tried really hard to be a good manager.

There’s a little less pressure when the company doesn’t depend on you being a perfect manager, you know, like there’s, there’s kind of a, I could have made a bad hire and that’s going to happen. It didn’t feel that high stakes. Now it feels a little more high stakes. Cause it’s my own business and this is kind of how, you know, make a living.

So I do think that that helped a lot. Now there’s plenty of people who do it without that experience. But I think for me that having that like level of experience and background. Did it give me a lot of confidence to make this easier than it would have been had. I just started this straight out of college or something.

[00:45:34] Michaela: And so what is it, what is the end goal for that company? How, how large do you want to grow it as large as possible? Or, you know, like, is there, is there some other areas where you think you could expand to something different, like other services or other products that you could.

[00:45:53] Karl: Yeah, I don’t, I don’t know.

I, I’m not like a, this is funny because like most startups, like they go into it, like the funded [00:46:00] startups, they go into it with a very clear idea of like how big they want to go and where they want to be, what their target total addressable market is. Like, I don’t really know all that stuff. This is a, like, it’s a lifestyle business in that.

It’s fun to run. It’s really interesting and challenging, and it is paying me enough to get by. So like, I just kind of want to keep doing that. Now I do like the sort of growing, because it exposes me, it forces me to learn new things. That’s been really fun. So like growing up. Like account managers had never hired an account manager before.

So I got to learn what that’s like and how do I give them work? How do I keep up with them? How do we pass things? Right. Like all this really interesting, but yeah, I just want to keep doing it as long as it’s interesting and fun to, to run and figure out is and provides challenges. Yeah. And we’ll see, maybe in a year or two it’ll it’ll get, it’ll just keep getting bigger and I’ll be out of my control and I’ll have to like, let somebody who’s more experienced, run it or maybe in a year or two it’ll.

Like the same diseases today. It’ll be fun to run. It’d be interesting. I really don’t know. To be honest.

[00:46:59] Michaela: Yeah. I think it’s perfectly fine. Not to know. There are so many interesting paths that, you know, life can take. And so, yeah, I’m really, really excited to talk with you about all of that and to see how it grew out of.

Keep looking out for the business and probably checking in and ask you, like, how many people do you have now? And I think it’s, it’s good to be open and just explore and have fun on the way up, but there’s not one, one right. Way to do things. Right. So everybody’s,

[00:47:28] Karl: yeah. That’s what I say to engineers all the time who are like, aren’t you afraid you’re getting out of the tech or you’re getting out of engineering.

It’s such a good feeling. I, yeah. I mean, maybe at first I was a little nervous about that, but to be honest, like your career can take weird paths. Like a lot of people have like winding career paths that don’t necessarily just go linearly from engineer to senior engineer, to lead developer, to whatever.

Like, so sometimes taking in diversion and doing something different for a few years or months or something can like open up new [00:48:00] opportunities if you come back. So if I came back to software engineering, Jump into something a little different than I was doing before, or maybe I’d get into the technical documentation or some con you know, hybrid skillset.

Like, so anyway, point being that, like, just because you studied something once for a few years, doesn’t mean you have to do it the rest of your life, that, you know, you don’t have to commit forever. There’s a lot of tangential skills that are, it’s good to be, have some familiarity with software engineering, you know, in the background.

So.

[00:48:28] Michaela: Yeah. And I think, I mean, you’re bringing so many new skills, right? So in addition to the skills that you have, because to be really fair at one point, like if you’re like, let’s say you’re JavaScript engineer for five years, for 10 years, like we are both in this industry probably even longer. I’m definitely longer in this industry.

Right? So what’s like me writing Java script for. You know, 15 years or 12 years, what’s the difference here? Right? So where where’s the difference? Well, when you’re exploring something else, suddenly you have a complete different mental model. Again, you have seen so many other things and then you’re coming back, you’re bringing actually so much value to the business, right?

And I think you are probably even a better engineer than just spending your time just doing this engineering thing without trying to be. Focused on the one thing that you’re doing. So, yeah. And the other thing, maybe so we can wrap that up is that when I started, when I started my business, I was really like, oh, there’s a ride in the wrong way to do things right.

Or listen to podcasts and read books and picked how others are doing it. Right. And I mean, there are so many things you can be on Twitter, you can do condom marketing, you can do DSR. And so it all felt like, oh, if you don’t do this right, if you don’t have thousands of followers on whatever, right. Then you’re not going to make it.

And you know, this is all not true. You can do your own thing in so many ways. You can have a wonderful business without being really [00:50:00] online without having an online presence. You can have like a huge online presence and not as driving business. Right. So. I think it’s really important to understand what drives you on one thing that you said is like, what gives you energy and what drains you?

And I think this is more important, and obviously you will do things that drain you for a short time, but you should really try it. Get rid of them and get more energy flowing activities and maybe hire people or turn your business into something else when you’re, when you’re facing those draining moments.

I think.

[00:50:33] Karl: Yeah. Yeah. Those were, that was my exact struggle. When I first started was feeling the same way. It’s so funny you say that like, there is a quote unquote right way to run a business. I thought, you know, and I thought like, oh, well, if I don’t follow the template, whatever that template is, which you can’t find, you know, like I follow that.

Yeah. I’m going to screw the whole thing up, but like, yeah, you’re exactly right. Is everybody carves their own path. And one of the hardest parts to me about starting a business was not having a boss up the chain to just ask questions about like, I’ve always been a very independent employee, but at the same time, it’s nice to be like, So, what do you think we should do here?

You know, like, look up, look back and just ask your boss questions. There’s nobody to do that to anymore. So now, I mean, I bugged my wife a lot. I bugged my friends a lot, but like they don’t, they’re not going to know the same thing. They don’t have the same interests. So like, Hey, anyway. Yeah. Getting over that is tough.

And it is something you just have to overcome and just be like, you know, go all in on. Once you do accept it though, it’s really liberating. And yeah, to your point, you can run a business a lot of different ways and it’s fun if you pursue it that way.

[00:51:35] Michaela: The most important thing is there is no right way. And there are ways that worked for one person.

And it’s not only how did executed it or the ideas that it had, but also the circumstances that they have been in and so on. And, and I think it’s just being sensitive. I think that I’m sometimes a person that pushes really hard, which isn’t always a good thing. Right. So if it [00:52:00] takes so much. Maybe, you know, another pass would be better, right?

Like if it, if it takes so much effort, this is something that I try to, to realize early on that, you know, if this is now really hard, maybe it’s not the right thing. It’s not meant. Right. So try something else, go step back and try it in a different way. And then, you know, and then it will work out better, I think.

Yeah, yeah,

[00:52:24] Karl: yeah, yeah. Uh, that, that’s definitely true too. There’s a lot of people who start businesses and think that it must be a. You know, grinding uphill, battle, both ways. Like it’s gotta be so hard and they have to eat ramen for years. And like, I mean, I just don’t think that that’s a hundred percent necessary if you’re willing to be a little flexible in like what you do and who you serve and how you serve them, because there’s.

Ways out there to make a living, you know, with your own business. And they don’t, you know, you don’t have to just pick one and stick with it forever. You can kind of pivot around and move and figure out what works best. Find out places where you can actually make a living and not have to work 80 hours a week every week.

So yeah, definitely want to purse. Well, but again, that kind of comes back to your goals. Like, what do you, what are you thinking you want to do? Like, do you just have some idea you can’t let go or are you trying to just make a good living and have a lifestyle? Business. Like maybe I am. So, you know, everybody’s different.

Everybody’s got their, their grand vision, I guess. Yeah. Yeah.

[00:53:23] Michaela: That’s really true. So thank you so much. I think we are in the, at the end of this show today, is there something that you want to tell my listeners, something that you want to give them on on the way, if you haven’t

[00:53:35] Karl: talked about? Uh, no. I mean, yeah.

If anybody ever wants to. Chat more about this stuff. I’m on Twitter at Carlisle Hughes. And then, you know, I’m happy to talk to you about like, if you ever wanted to write some for draft, we always are looking for writers or just want to talk business stuff or whatever else, engineering stuff. I love helping people out.

[00:53:54] Michaela: Yeah. I will link everything in the show notes. So thank you so much for being on my show to. I have a good [00:54:00] day. Thanks. Bye. Bye. I hope you enjoyed another episode of the sup engineering unlocked podcast. Don’t forget to subscribe. And I talked to you again in two weeks. Bye.

Episode 39: From designer to web developer

In this episode, I talk to Annie Liew, who works as a web developer at a startup called Pastel. She transitioned from Design to Engineering, and I want to know how she experienced this.  

We talk about:

  • about her experience transitioning from Designer to Engineer, 
  • the role her Juno Web Development Bootcamp (formerly HackerYou),
  • her new role as the first engineering hire at a startup,
  • her drive to learn and level up in public,
  • and how she managed to build a large Twitter following.

Today’s episode is sponsored by Botany.io – Botany is a virtual coach for software engineers that unblocks essential teamwork and levels up careers!

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

Transcript: From designer to web developer

Michaela: [00:00:00] Hello and welcome to the software engineering unlocked podcast. I’m your host, Dr. McKayla, and today I have the pleasure to talk to Annie Liew. But before I start, let me tell you about botnay.io, yho sponsors today’s episode. Botany is a virtual assistant and personal coach for engineers. It helps you adopt better habits, improve your skills or automate your workflows. So how does that work, you ask. Well, great question. Botany connects to the tools that your team uses and crunches through the data to find opportunities for you and your team to improve your skills, strengths, and collaboration, and improve processes and automate workflows. By gently and smartly nudging or reminding you, you stay on top of open tasks and learning and growth opportunities. In this way, Botany smoothly drives your new skill and habit acquisition. I love how it makes code reviews, and giving and receiving feedback a better experience for the whole team. But I guess it’s best you try it out for yourself. For that hop over to botany.io to request access to the tool. So that is botany.io, but now back to Annie.

Annie is a designer who transitioned into software development. I want to talk with her about how she got her first engineering job and how she now build soften his startup as the first engineering hire. So I’m super excited to have any year with me Annie, like come to the show.

Annie: [00:01:27]Thank you so much so happy to be here.

Michaela: [00:01:30] Yeah. I’m really, really glad that you joined. So you have been a designer and then one day you wake up and you say, I now want to be an engineer, or how, how did that happen? And what did you do about transitioning from design to engineering?

Annie: [00:01:47] Yeah. So it’s a bit of a long winded process. To be honest, I studied multimedia design at university and I worked for several years as a designer in Australia and in England. And after that I decided, okay, I wanted to change a pace. I really wanted to move to Japan because traveling is something that I really enjoy. And so I actually went from design to being an English teacher for several years and then decided, okay, I’m going to move to. To Canada and try to get back into design, but because the landscape had changed so much, it was a real struggle. And I didn’t know anybody in Toronto as well. So I basically was in this position where I was just like freelancing on the side, like trying to get my design hustle going. But I was also lot working a bunch of minimal low low-paid jobs to kind of pay the bills at the same time. So I was kind of in this place where I was like, okay, this is not where I want to be. What can I do? How can I level up, how can I get the skills that I needed? And I looked into something called bootcamp. At the beginning, I looked into a lot of UX boot camps, and then I found a school called hacker youth. They’re called Juno now. But at the time, the only. The only boot camp that they offered was a front end web development boot camp. But I really, really liked the community that they built around it. So, you know, I’ve, I’ve built websites in the past before, and it wasn’t something that I really enjoyed. I really enjoyed the designing part of things, but I was always happy to hand off the coding. You know, part two, the developers, however, I did have to build websites and when I did them, I didn’t enjoy at the time, but this time I thought, okay, let’s try again. Let’s see if something has changed. And so I started attending. Small kind of little free, not seminars workshops around the Toronto area. And I was like, okay, what is this? Flexbox what is this? And everything had changed. And so I started getting really curious about it. And so I remember it was really interesting because I never, never thought that I’d be interested in code. But after doing the workshops, I was like, okay, maybe I can do this. And so I applied for the bootcamp afterwards, got a subdued. And as they say, the rest of the street,

Michaela: [00:04:10] Okay. Okay. And so you said you were mainly interested by the community. How did you, was it an online community or was it an offline community and how did you get in touch with the community? How have you, you know, like, I imagine that you get access to the community after you joined, but it seems like you have, you knew the community exists even before you joined this particular

Annie: [00:04:33] bootcamp. Yeah, that’s a really, really great question. And that was a reason why I joined the community. I always have this idea that it’s less about what you do and more about who you do it with. I really, really liked this idea. And so the way like the hacker U has a really strong junior college has a really strong community because there’s a lot of past alumni who shared about the journey. So I, I started contacting them and say, and asking them. Hey, how was your experience? Would you meet up for like a coffee so I could talk to you about it. And I, and I went to several events and talk to a lot of them and every single one of them said, this was something that I don’t regret. I a hundred percent recommended it. This was pre COVID. So the bootcamp was an in-person boot camp as well. So it was nine weeks of 10 to six. And then on top of that, you have your assignments and classes. So it was just like a full-time in-person bootcamp.

Michaela: [00:05:30] Okay, so it’s nine weeks. So you make a commitment for nine weeks. You leave everything other aside, right. And you just go and do your work there. And I don’t know. Do you have homework then? Or is that, do you do everything in class and then you go home and then that’s it the next day you do it again.

Annie: [00:05:48] Yeah, well, it started easy, like off pretty, you know, easy where it was just like the 10 to six, but there’s so much work. And the way that works is that you’re, you’re constantly building, um, projects. So there was no way that you would have been able to do everything just in the 10 to six. There’s been like, it’s, it’s such a fun little, like, it’s almost like a summer camp experience because we all had access to the school basically. And there’ll be nights when it’s like midnight and there’s like all my classmates around me and we’re all just working hard and we have like pizza coming and it’s just a really fun. And that’s what I mean about community as well as it has a really fun atmosphere where you’re doing something difficult. You’re trying to transition into this new career. But they’re doing their best to, you know, support you along the way and make it fun. And, yeah, so it was, I don’t think I actually went to the grocery store for about eight weeks because, and I’m really lucky to have a partner who could do that, but it was just so intense, like the work that I was doing, the purchase that I was doing and what I was learning, I just really didn’t have time. And a lot of people just didn’t really have time to do other things. And

Michaela: [00:06:58] so do you still have contact with a few of those people that you met

Annie: [00:07:02] there? Yes. Yes I do. Yeah. And there’s still a very strong alumni network as well. There’s like a Slack alumni network. I Stu. Do some mentoring and I go back and help, like, you know, current students and I’ve spoken on some panels with them as well for people trying to get their first jobs. So yeah, I’m still an active part of the community. And that’s something I like about the school is that a lot of us alumni are still very active. Yeah.

Michaela: [00:07:31] That’s really nice. And so this thing had helped you also get your first job or how did you make that transition now from, okay. You’re doing this nine weeks and then what happens then?

Annie: [00:07:41] Yeah, definitely. It helped me to get a good job because the school has a lot of industry contacts. And one of the things that they did was that we had an industry day where they invited a lot of potential employee years to a. An industry day where we all kind of showcased our work. It kind of almost works like a blind date. If you think about it, where we all the students were sitting around tables and we had like a, a minute to give out pitch and to talk about ourselves and to share a project that we’ve really proud of. And then the bell rings and then they kind of let go to the next student. So it’s like speed dating. Yeah, it was completely like speed dating, but for employers versus, you know, and like potential employees. So it was really, it was like very stressful because all of us were trying to like practice our speeches and our pitches and, you know, like try to finalize the work that we wanted to show. But as a result of the industry day, I got invited to, to. Interviews with some companies. And I ended up getting an offer, which I accepted a week later. So I was actually the first person from my cohort to accept the job.

Michaela: [00:08:52] Yeah. Very cool. Very cool. And so how long has that a goal?

Annie: [00:08:57] That was, I graduated in summer of 2019 and I started in August. Yep.

Michaela: [00:09:03] And then you worked at that company as a software engineer. Front-end software engineer.

Annie: [00:09:09] Yes. So I was hired as a front end developer and I was there for a year and a year and a quarter. Was

Michaela: [00:09:17] that experience, was that good? Did you feel like now you deepening your, your knowledge or did you learn a lot?

Annie: [00:09:26] So the, the first job I had as a software developer basically was a, I worked for an agency. And what that gave me was a lot of structure around things that you don’t learn in bootcamp. So I got introduced to like agile methodology and stand up and the process of, you know, tickets and JIRA and a lot of soft skills that not soft skills, but a lot of processes, internal company processes that don’t. That you can’t really learn in a bootcamp, but you have to learn them on the job. I also got exposure to one of the very big things was I got exposure to a lot of big, large code bases, some with legacy code, and I also had to build architect sites from. Like the ground-up. So, and I work with so many different websites. It was a, they are a WordPress, VIP partner. So all our sites were done in WordPress, but I was doing like the architecture and, you know, like patient, most CSS and some Jacory as well. But because I had exposure to so many different types of websites and processes, it was a really big, yeah. It was a really big boost I would say, and definitely helped me to get my next job for sure.

Michaela: [00:10:38] And so is the next job that you done accepted? Is that the one that you’re currently at is that the startup that you’re working

Annie: [00:10:44] for? That’s correct. I’ve been there about four months.

Michaela: [00:10:48] And so how does that happen? Like why did you change and why, why did you go from an agency to a startup? What was, what was the interest for you?

Annie: [00:11:02] so I was. I’d been working at the agency for quite a while. And because I was doing a lot of the same type of work, I wasn’t feeling that I was starting to feel like I wasn’t growing anymore. And I was also quite worried about my JavaScript skills in particular, because I was so comfortable doing all the site architecture in patient mode, CSS. And I would basically get, like, I was basically lead in a lot of those. You know, for those projects that came up, but I wasn’t really practicing my JavaScript or react skills. And those are things that we had learned in bootcamp. So it was, I was, I’m going to say that I’m really, really fortunate because Twitter actually played a big part in. How I got this job or this offer, they, the company is called pesto and they were looking for a first hire someone to basically take over the front end. And they had a list of potential people that they wanted to reach out to and interview and invite them to go to the interview process. And I was one of them. So. I didn’t actually apply for this job, but the CTO reached out to me and said, Hey, I’m really like what you’re doing. Sort of some of your work that you’ve shared, and we have this position coming up. Would you be interested in applying for it or going through the process? So I looked at the stack, it was next JS was reacting, was TypeScript. It was all the kind of modern technologies that I really wanted to learn. And so I thought, okay, let’s give this a go. And I did. And I went through like the interview process. I did a coding challenge, which was a take-home challenge for a week. I’d built an entire app for that. It was very stressful. I hadn’t touched react for so long by that point. So it was a lot of learning. I was still working and then trying to do this on the side. Yeah. It was a very, very stressful week. I remembered that, but it was definitely worth it.

Michaela: [00:12:58] So now you are working in that startup and what are your responsibilities?

Annie: [00:13:05] So because they, when they hired me, they, I knew that my JavaScript side of skills, weren’t amazing. And I told them I was very honest with them at the beginning. I said, I’m not going to be like a JavaScript Ninja from the get go, because I haven’t worked professionally with JavaScript for so long. And David very aware of that. So they knew my abilities from the start. And one of my main responsibilities at this moment is just to. Basically level up as fast as I can to get myself to a point where I can just do it really well and eventually be responsible for the entire front end. The other thing I do as well is I build features. We have like a roadmap where we, you know, Look at all the features that we have coming up and I get, and I work on an, on building. Those features. Occasionally we have front end bugs come in as well, which I work on, but the two main things are the side that I am responsible for right now is building features and just like learning as fast as I can to get myself to a spot where I can be super comfortable.

Michaela: [00:14:10] Yeah, I think that sounds like really good next step for you and the ability that you can grow in that role so much, how old is the startup and you know, how does that work? A startup I imagine, right. Like extremely stressful and a lot of pressure or we have to ship. So how does that work in a startup that there’s so much time for you to learn things and how, you know, Is everything actually running smoothly. And so it just doesn’t need that. There’s not too much presser pressure or how does it work?

Annie: [00:14:43] Yeah, that’s a great question. So this startup actually started in March, 2017 and I got hired and started in October, October last year, October, 2020. So they have been going strong for just over four, almost four years, by that point that they hired me and they were. Basically profitable at that point. So they decided to, you know, start growing and becoming like an actual company. So just to give you a bit of context, there’s actually just three people in the startup. Before I got hired, it was the CTO and the CEO and the product guy. So a designer and engineer and operations. So. As they were growing, they realized they needed more help. And that’s kind of what I got hired for, because we’re profitable at the moment. And we have a, our motto of, we have a SAS product that is a subscription model. We know that the money is coming in all the time. So while there is a bit of pressure to ship features and I definitely feel it, I think a lot of the pressure is more the internal pressure that I feel too. Kind of validate that I belong here by shipping features, but I’ve had a lot of discussions with my, my CTO. And basically he said, one of the things that is important is that I’m able to learn to like, basically start slow to speed up later. So. They understand the importance of learning and growing as a junior developer was someone very early on in their career. And they’re thinking the long-term game it’s, you know, I can like probably like try and just like really hustle and ship a lot of features, but would they be like really good features? Well, I actually learned the things I need to learn so that I can do it a lot better. You know, like later on for the company, I think it’s like for everyone involved is really important that we have like a strong foundation built first so that we are able to then, you know, become a lot better and faster later on, I really

Michaela: [00:16:49] liked this long-term vision and long-term thinking it’s something that I think is quite the rare. Even for large corporation that could definitely, you know, invest into their employees. There’s often, you know, a very shortsighted action that I, that I feel like you have to provide value and you have to provide it now. But there are companies that I, that I hear really provide value also to the employees, like for example, automatic and all from several peoples that work there, they have also, for example, I think a really great place to work because. When employees are in trouble, I always heard like they are there, right? Like they give you paid time off or like some time to breathe and to think and so on. And so I really liked that mindset as well, that, you know, they are getting someone on the team and they’re investing in the person and I think. I don’t know about you, but probably it also makes you very loyal to that, to that

Annie: [00:17:46] company. What you said about investment, because that was basically in some of my discussions with my CTO. They are definitely investing in me. So when I got hired, they knew that I had the skills coming in from as a designer and. You know, they didn’t, they wanted someone who could basically have ownership of the front end and not have to worry about, Oh, can you move this pixel here? Can you move that? The light that’s all taken care of. I’m very, very pedantic about those details and let the UX and UI or things. They don’t have to worry about that at all. So he says it’s a lot easier to teach someone to code than to actually care about the product and how it looks and how it feels. So, yeah, totally resonated with everything that you said there. Yeah.

Michaela: [00:18:29] Yeah. And I think this is a really good perspective as well. Right? So you want action to the right people that are caring. And I think also people that feel cared for, and at least from what you’re telling me here, it feels like you, you feel cared for which I think trans translates back. Right. So it’s, it’s like giving and taking. So one thing that I’m super interested in as well is how do you experience. Developing software in a startup, like, what are the processes there? Is it very flexible? Do you have like mentorship? Do you have like code reviews? What about testing? You know, like what you’re telling me, it’s like two people, right? So it’s the CTO and you, so how do you do that? How much, how much formality is there and, and, and who takes over what.

Annie: [00:19:18] Something that we discussed at the very beginning is that with processes, we don’t have processes for processes sake. So that’s because as a startup, we want to basically move fast and iterate on things and be able to push things up. We basically follow a, although not formally, we follow an agile process where we have stand-ups, we do the sprints and we do retroactive at the end of the week to see what has gone well, what could be improved and then kind of reiterate on that. In terms of the, the product development process. We basically have roadmap meetings, roadmap, plannings, every one or two months, basically when we kind of look at the roadmap that we’re building and seeing what features need to be built. And the way we decide what features need to be built is based on the kind of two ideas. The first idea is a, is it something that has been requested? Is it something that customers have requested or is it something that we have some data around how customers are using our app? Is that something that they’re doing often enough? And then the second part of that is what is the potential impact of this feature? So for example, like maybe customers like request something and they requested a few times, but is that going to have a big impact on the company on like the usability of the, uh, like, will it help us to get more potential clients or, you know, so kind of those two things are two things that we think about when we, when we plan out our roadmap and look at all the features that we have available and we didn’t do like a kind of one. One, usually a one month plan where we work on, we prioritize the features that we’re going to work on, and then we just basically go for it. In terms of mentorship, I have a very close relationship. I would say with my CTO slash manager, we do our one-on-ones. We talk very, very openly about things like imposter syndrome, how we want to shape the, the culture of the company, what kind of company that they want to be. One of the things that really impressed me from the beginning was that they said, okay, and this was during the interview process. They said, we are very keen on building a great company culture. They’re kind of the kind of company that people want to come and stay, but we don’t want to have like high turnover. We want our people to feel valued and we want them to have autonomy over their workflow and the things that they do. And we want them to have an impact, but you can definitely, definitely make an impact in our startup. So the TIFA. Management style that they have here is very, very suitable for me because I tend to get bored easily, but in a startup because I’m doing so many different things and have such a, I guess like impact or influence or ownership over the product is I feel very invested in the job and in the company.

Michaela: [00:22:08] When, when I actually started out of university, I thought like, what kind of company do I want to work for? And I was very impressed by these large corporations, but I think it was more the names than everything else. Right. And now over the time, I think my view shifted quite a bit because at a startup you can maybe make the whole, the whole half of the product, right. Or maybe the whole product. There’s definitely something there, which also right now fascinates me more like having more impact, having more, you know, like. Yeah, contributing more and also maybe different heads. That’s something that I liked a lot. Actually, when I was working at Microsoft, I wasn’t a very specific position. Right. It was in the tool engineering teams. And so there, there was a lot of research, a lot of innovation, and that also had like a lot of hats, a lot of flexibility and a lot of impact, to be honest. But then when I wanted to transition, I looked at other teams and said, Oh, I don’t know. I, this is a little bit too restrictive for me. How is that for you? Do you have like several hats while do you have like probably designer hat, then you have maybe the developer hat, but other, other hats, I don’t know, responsibilities that you take over in the

Annie: [00:23:24] company? I wouldn’t say that I have like responsibilities per se, but I would say that I have the flexibility to kind of shape the role that I’m in and. Look into things that I’m interested in. So for example, one of the things that I did probably in the first couple of months is that I joined because with our clients, with our CEO, so that I could like talk to the client specifically and ask them questions about how they’re using the product, how they like it. And so that gave me a lot of. I guess empathy for our users and how they’re using the product. And actually this product is something that I use myself. So I is like, I am the user at the same time as something that I’m building for myself. So it’s interesting, but I also. Yeah. Like, because it’s such a small company, we do a lot of different things. For example, I don’t have to do this. My core responsibility is to build features and like be in engineering. But one of the things that I also do is that. I, you know, sometimes I’ll reach out to people. I think that we get a benefit from, from using pastel. And so that’s something that I do as well. It’s very, very, very, very flexible. It’s I’ve actually never worked in a company that has been so flexible before, like that, like any hierarchy, like structure is like quite flat. So everyone’s just going responsible for everything we have. Like, we communicate very openly and discuss things and it’s very much a process where it’s very collaborative. We all work together. And we’re very intentional about the things that we do that would move the company or move the product forward. So, and also just going back to what you said about mentorship, and one of the things that. Attracted me, I guess, about large companies was the idea of mentorship. And because like, traditionally we feel like large companies have very formal processes in place for mentoring younger developers. So it was something that I was very, very worried about when I first, when I was talking to the CTO, because there is no formal processes. It’s a bit, it’s a bit chaotic in many ways. So I. Asked him about that and we have code reviews. So I think maybe you’re familiar with the idea that code reviews are in many ways, a form of mentorship anyway, because you know, you’re getting your coffee with you. You’re getting a lot of feedback. He’s very good at the feedback as well. He just, he doesn’t tell me, just do this. He tells me the why. And yeah, it’s like very, very detailed and it’s, it’s really helpful. But the other thing that we do very consistently, at least twice a week, if not more, is that we pair on a very regular basis. And that’s been an immense source of mentorship as well.

Michaela: [00:26:04] Yeah, I think to be honest in a company like that’s that small, right? And you have like the CTO as the main engineering person, you have excess. To the CTO, right? I mean, it means that it’s the person that shaped the whole product that knows the architecture. So which means in another company, there will be several layers that you have maybe to go through, or people are really busy maybe also, and here, because there is an investment from the CTO also in you. Right. It’s in both interests to be like pairing and exchanging ideas and learning. And so, yeah, I can imagine that this is actually a really good spot to be in and have like. Almost like, like a really personal mentorship, you know, th there are mentorship programs in larger organizations, but I don’t think that people are that invested right in their mentees. Then probably your CTO is in you. Right. Because there is like higher stakes to make it work for that person. Right. So. One thing that I wanted to touch base, which is a little bit out of context, but you mentioned it at the beginning. And I think it’s interesting for a lot of people that are looking for jobs maybe that are coming out of would come, you know, coming or transitioning or coming out of college or whatnot. Right. And getting a foot into Tash, you said, well, actually by Twitter was super helpful. So. How, how, how are you using your Twitter or how are you building your following? What’s the value that you get out of Twitter and how can you, you know, how can others maybe also benefit from that and let it help them also a little bit in there in the job search.

Annie: [00:27:46] It’s interesting because I was never really a social media person. I had to open our, my Twitter account because my bootcamp made us open the account. And I remember in the very early days, I had no idea how to use Twitter. I was like, okay, I have to tweet something. What do I talk about? How do I connect with people? It was a very confusing kind of landscape for me because it was just a platform that I wasn’t familiar with. And I hadn’t used it before. When it started to change was when I, when the pandemic started and I’d been in my job for awhile and I was very comfortable with what I was doing, but I really wanted to level up. So I joined a hundred days of code and I started sharing my process on, on Twitter. And that was when I started to meet more people, build a community and. Basically, that was how, like my following grow. I, I guess it was very unexpected. I wasn’t expecting it. And it was very intimidating at the beginning, but in terms of why our boot camp made us open a Twitter account, it was because they knew the value of having a online, personal brand. And your Twitter account or any other, like your LinkedIn and stuff, your website is all part of that overarching idea of your personal brand. And it’s really helpful because a lot of companies do checks on you to see what kind of person you are outside of just the code that you do. And people hire other people for soft skills, not just, you know, like they can like, do like a for-loop and stuff, but it’s actually like what, what you bring to the company and. Twitter as is a way to not only kind of show the projects that you’re working on, which I was doing. I was like doing a lot of projects and just showing them, or freely on Twitter and on cold pen as well. But it’s also a chance for them to see who you are as a person. And I think that is the value of like Twitter or some of the other. Um, social sharing social networks as well. Yeah.

Michaela: [00:29:46] Okay, cool. So any, thank you so much for taking the time talking with me. Maybe I want to use the last few minutes to just catch up with things that you wanted to say to my listener, or, you know, like something that you want to leave. People were, I think especially people that are coming from bootcamps would be interested, people that are transitioning. Right. What is your advice for them? What do you think? What should they, yeah. What, how do you think that they could make themselves successful? I set them up for success.

Annie: [00:30:21] One of the things that I heard over and over again was that your network is so important and I really, it was something I really, really. Um, felt when I started to get into coding because when I came to Toronto and I didn’t have a network, it was extremely difficult for me to get into design. I didn’t know anybody. And once I tapped into a network and a community, everything became so much easier. So there is a lot of value in reaching out to people, because at the end of the day, you do the things that you do, you don’t. Build features and products and cold by yourself. You build it in a team with other people and having mentorship and a mentor can also be just someone like who’s a little bit ahead of you. If you can look on your current journey and give you advice on what you can do and just talk to them and kind of encourage you as well, having that kind of connection with someone who is already in the field or with a larger community, I think has a really large impact on, I would say a developer’s career. Something that I heard from somebody I remember this very clearly was that he said that the most successful developers, uh, people who have a large network to draw from, and also they’re not kind of tied into one specific like technology or something. They’re always kind of learning. They’re always open to hearing about like more things and they have like a large depth or breadth of knowledge and. They’re successful because they can draw from all districts areas. And I think that’s, that was like something that had always stuck with me. So. Yeah, like reaching, reach out to people, get involved in community, but also actually do work. The only reason that I was able to probably attract the attention of my current employee was because I was like really, really putting into putting in the hours of all the projects I was doing. And I think it shows as well, like the kind of work that I was sharing. Like I had spent hours and hours on them and just kind of refining my skills, getting better and improving each time. So. Those are things that come across when you’re sharing. And it’s very easy for people, I guess, like as new devs to become very discouraged. When, you know, you’re looking for your first job and you get a lot of rejections and it’s like, it’s really hard. It’s like so crushing, but you kind of have to understand that rejection is not. It’s not personal. It might be just that the company didn’t, it’s not the right fit at the right time, or there’s a lot of different factors and it’s not like really personal and cut you kind of, kind of help you to get over that hump is just to do work that you want to be hired for, or you want other people to see. And I think being able to show and share your work and show that you’re passionate about what you do and that you’re willing to learn is very, is very important.

Michaela: [00:33:24] And so was that work that you showed and that you did, was that outside of work or were you able to showcase the work that you did for work?

Annie: [00:33:34] It was outside of work and that was because the work that I was doing at work belongs to the company and. I was comfortable with the job that I was doing this. So I wanted to learn other skills beyond the work that I was doing at work. And actually this brings out a really good point because something that, that maybe like you kind of feel, feel this as well, like tech is one of those industries where there’s almost an expectation to work outside your job. And I just want to clarify and say like, that is not expected and you definitely shouldn’t do it because like a doctor doesn’t, you know, practice like operations in like his or her free time. And like, I don’t like the feeling that I have to, you know, work outside of my job, but it was something that I wanted to do personally to kind of level up because I wasn’t getting the kind of skills I needed. At my current job at that time. So that was the reason why I did it.

Michaela: [00:34:35] I also think like building up those profiles, then we just touched on before, right. Is something that’s really hard if you’re employed, because most of the time the code doesn’t belong to you. Right. And it’s not something that you can easily share and say, Oh, look at my guitar. There’s my code that I write for my employer. That’s confidential. Right. So if you want to fill your GitHub with nice stuff, it somehow. It means that you are doing stuff outside of work, but yeah, we have to be ready. The realistic that a lot of people are not, you know, they don’t have the position to do because they have like a full-time job they have to care for. Right. So, yeah, I think I understand. And they understand that this probably has a big impact, but it’s also. I also, as you said, I’m not advocating or at all right. That people should, should need to do it, but it’s, it’s definitely interesting to, to hear that that’s the way how you grow your following, how you grow your skills, right. So there is a trade-off that you have to make and, you know, if you’re in a position to do it, then that’s great. And I think it’s okay. Also not good to forbid people to do something outside. Right. I mean, sometimes it’s what you have to do. That’s how it is.

Annie: [00:35:48] Right. And in lieu of that as well. I also think that’s why having a network is so important because that’s how you can get your next job without having to do all the extra work of learning outside of your full time job. Yeah,

Michaela: [00:36:00] exactly. Yeah. Yeah. Okay. Any, thank you so much for taking the time and talking with me today, it was really a pleasure to have you. I wish you all the best for your job and that you learn a lot and I will. Continue following you on Twitter and see what you’re doing. And I’m really excited for you. Thank you so much for being on my show.

Annie: [00:36:20] Thank you for having

Michaela: [00:36:20] me. Yeah, it was my pleasure. Okay,

Annie: [00:36:23] bye.

Michaela: [00:36:26] I hope you enjoyed another episode after sup engineering unlocked podcast. Don’t forget to subscribe and I’d talk to you again in two weeks. Bye.

Episode 37: Underrepresented, Underpaid & Undervalued – Having to change jobs to advance your career

In this episode, I talk to Jenn Creighton. Jenn is a Senior Staff Engineer at Apollo. Jenn specialized in frontend-end development is currently working on the open-source work for  Apollo GraphQL.
She also is a frequent conference speaker, an authoritative voice in tech, and recently started her own podcast called single-threaded

We talk about:

  • what a senior staff engineer does, and which responsibilities this title entail, 
  • why she needed to frequently change her job in order to advance her career,
  • how gaslighting, bias, and being underrepresented, underpaid, undervalued is part of her decades long experience as a developer
  • and how she makes sure she is helping others to enter tech and have a better experience.
Continue reading

Episode 35: How Programmers Think and Learn

In this episode, I talk to Felienne Hermans, who is an associate professor at the University of Leiden and researches how developers think and learn.

We talk about:

  • why it is so hard to read and understand code,
  • her book “The programmer’s brain”,
  • how we can learn easier to program,
  • techniques to understand complex code quicker,
  • how a shared vocabulary can help teams, not only during code reviews
  • and her process to write a book developers will love.
Continue reading