Josh W Comeau

Transcript from Friday February 3rd, 2023

Introductions

Carl Vitullo: Welcome, Josh Comeau! Thank you for coming out. Josh Comeau is a indie hacker educator, longtime member of the React community. I found that his explanations of complex subjects have a way of just being very intuitive and interactive, and I'm really excited to have him on and talk about his content creation process, how he's navigated the tech industry, and what he is looking forward to. [00:00:22]

This is sort of a first trial of a different format of event that I'm thinking of. So far we've done office hours, but I'm thinking of this more as a community spotlight, just putting some attention on people in the ecosystem who are doing really great work. [00:00:36]

Josh, yeah. Anything you wanna say about yourself? [00:00:39]

Josh W Comeau: Yeah, I appreciate the invitation. I'm happy to be here. I'm excited to talk about this stuff too. I've been, I think I started using React in 2015. And before that, I mean, I was like a Ruby developer in 2014 tinkering with HTML, CSS, a little bit of PHP, a little bit of WordPress before that. [00:00:55]

And it's just been a journey ever since. In 2020, I left the job that I had to become an independent content creator, blogging at my blog and creating online courses, and that's what I've been doing ever since. [00:01:06]

Carl Vitullo: Heck yeah. Coming up on three years independent. [00:01:10]

Josh W Comeau: Which is wild. It feels like it's been a few months, maybe. I mean, you know, it simultaneously feels really short and like I've been doing it forever, but [00:01:18]

Carl Vitullo: Yeah. It's nice when things feel that way. It's, you know, it feels like it's got a long road ahead, in a good way. [00:01:23]

Josh W Comeau: Because it's true, it does feel like I'm just at the beginning, like I'm in the middle of working on my second course. Cuz it takes me like two years to make a course. But there's several more I could imagine myself doing. So it certainly feels like there's a lot more to come.

Early career [00:01:35]

Carl Vitullo: Heck yeah. So you sounds like had a very broad web experience early in your career. When did you get your first job and what was it? [00:01:44]

Josh W Comeau: Yeah. It's, you know, it's always hard to count because I started just like tinkering, experimenting with HTML CSS back in 2007. Like, that's when I really, I had Dream Weaver and I did a couple of like freelance projects. It was 2014 when I decided that like, I really wanna start taking this whole thing more seriously. [00:01:59]

So I went to a bootcamp. I did a, it was a Ruby based bootcamp in Toronto called BitMaker Labs. It has since been acquired by General Assembly. And, you know, it, typical of bootcamp programs, it was two, three months, 10 weeks, something like that. Immediately after graduating, I got a job at a startup. I was myself and one other person were the first two hires for this company that these two guys had this idea. [00:02:19]

The idea was to create a platform for like, influencers and people who are, you know, have large followings online, to connect with brands to do typical brand deals. Something that actually has gotten a lot bigger since then. And, you know, it's one of those things where I had just graduated from the bootcamp and I was I would say yes to pretty much anything, right? I was looking to get my foot in the door. It was wild because it was me and one other person. Both of us bootcamp graduates, neither of us really know what we were doing, but we figured it out. We did some pretty cool stuff. Like we had a real-time chat room. We had like a two way, two-sided marketplace. [00:02:48]

They each had their own views. I was only there for about four months- ish. And then I got a job at a services company called Conrad Group. And, you know, we did a couple of projects for different clients. We built a news reader app for CFOs of a prominent Inc. 500 company that I've been told I'm not supposed to reference by name. I got yelled at for putting it on my LinkedIn. [00:03:06]

Carl Vitullo: Okay, wow. [00:03:07]

Josh W Comeau: So I did that those two jobs were the first six months of my career and they were really just like, just trying things out. After that I got a job at a company called Breather, and that was my first, like I was there for almost two years. For me two years is considered a long stint, cuz that's the longest I've spent anywhere. [00:03:21]

I spent two years at Breather, and actually it was a Conrad group, my second job where I got introduced to React because this was early 2015. And they had been primarily using Angular at the time, but React was starting to pick up steam. And so my manager was like, Hey Josh, like we are thinking about this tool. Why don't you spend a couple weeks getting up to speed with it? Build a little like prototype app. And then like, I think it was like a Mad Libs type thing that I built where you put in some words and it scrambles it into a sentence. And it was Flux too. It was React and Flux because that was the do it at the time. [00:03:48]

Carl Vitullo (editing): React and flux, does that sound familiar? That's where the name Reactiflux comes from originally. Just a fun little side note. [00:03:55]

Josh W Comeau: And . Yeah. Yeah. Even pre-Redux, like this is really going back. And I figured in a couple weeks that I liked it so much more than I liked Angular, but I had no idea what I was like. It's still just felt so magical, like, okay, I guess, you write this thing that looks like HTML and it works somehow. So it was very cool and I really enjoyed working with it.

Mid-career [00:04:12]

Josh W Comeau: When I went from there to Breather they were primarily using Backbone at the time and I was the only one that had React experience and I had been trying to convince them that like, Hey, this is, like, it's actually a lot better, like what we're doing right now really feels painful in comparison. But you know, it's a hard sell to, let's redo everything. But they put me in charge of what we called Backstage, which was the internal app. [00:04:33]

I should back up a little bit. Breather is a company like Airbnb for office spaces, and as you might imagine, there's a lot of logistics with that kind of business where after every reservation, a cleaner has to come and clean the space ahead of any other reservations. And so there was like an administration app that we were building and maintaining that was specifically for both the cleaning the cleaners themselves, the people operating the cleaners, so telling them where to go and the customer support staff who would be booking people through the phone or online. [00:04:58]

And so we had this little app that was specifically for employees and I was the only one working on it. And so when it came time to add new features, I just started migrating to React. Like there was no one to tell me no cuz I was the only person doing it. And I built this thing, it was like a calendar view, but it was really interactive and dynamic. Like it would show you in real time what was happening in every space and. I think people were impressed with how quickly I was able to get it built. And so pretty quickly after that I started helping them. And I shouldn't, I don't wanna take too much credit cuz there were lots of other people that did a lot of work too. [00:05:28]

But we started migrating the front end to React as well which was went pretty smoothly. I mean, I left the company before that process was completed, but I would check in with them and hear how it was going. And as far as I know, like the whole thing is react now, so that's always cool. [00:05:39]

I went from there to a company called Unsplash, which— [00:05:42]

I realize now I'm talking for quite a bit. Let me know, like if you wanna jump to something else, otherwise I'll just keep going. [00:05:47]

Carl Vitullo: No, yeah. Happy to let you run. [00:05:49]

Josh W Comeau: Cool. I went to Unsplash, which is like a photography community thing. The idea is that photographers can share their photos and everything is royalty free. Like Creative Commons Zero, so you can use their photos for whatever you want. I was also it was already using React, but I helped us migrate to Redux because or at least I helped us restructure how we were using Redux. [00:06:07]

And that was what was cool about that job is that for most of the time that I was there and I wasn't there long, I was only there about six months. The backend was where a bunch of work was needed. Like, we couldn't really do much in the way of new features because the, like, we were having a lot of like scale issues and performance issues on the backend. [00:06:22]

And so I had the freedom to like, okay, since we're not, we don't have stress in terms of like, you have to be doing all these things. Let's spend time refactoring this application. And so we totally rebuilt it. Which is always very satisfying when you're able to do that. So we did that. I went from there to Khan Academy where I spent a couple years working. [00:06:38]

Khan Academy also was migrating from Backbone to React. But that started way before I got there. In fact, Khan Academy was one of the first non-Facebook organizations to adopt React like Sophie Albert, who was the manager of the React team for quite a while now she's moved on. She was working at Khan Academy at the time, and this might have even been before React had a public release. [00:06:55]

Like she knew what they were doing and she thought it was cool. So she experimenting with it at Khan Academy. Yeah, I think it was like 2013, 2012, something like really early. And so by the time I got there, they had already, there were a couple of like old views that still used Backbone because there were just, no one ever got around to prioritizing them. [00:07:12]

But the entire thing had already been on React for a couple years. Yeah, I think I got there in 2016, so yeah, it was a couple years before that. Or 2017 maybe. But yeah, I spent two years there. I jumped around between a few different teams, like I was briefly on, or actually most of my time there was on the teacher team, so we were building tools to be used in classroom. [00:07:27]

I spent some time on the independent learner team, which was where we focus on people using the site independently, which is most of them, right? People use Khan Academy, which is an educational platform to like brush up on their math skills after school. And yeah, it was a great job. It was a lot of fun. [00:07:41]

After a couple years I went from there to Digital Ocean where again, we were migrating from Ember to React, and I came in with relatively a good amount of React experience. There were other people on the team that were familiar as well.

RSI Injury [00:07:52]

Josh W Comeau: And then finally I wound up at Gatsby Inc. The company behind the Gatsby JS framework. And I was there for about six months. And right around that time, like as I was at Gatsby, I started developing an RSI. So I started having burning, tingling elbows as I was typing. [00:08:06]

Carl Vitullo: That's a, repetitive strain injury? [00:08:08]

Josh W Comeau: I never know if the S stands for stress or sprain. But, or strain either way, though, so you're doing too much with your arms. Yeah. It was a whole saga where I spent a few months trying to figure out how to fix it. In the end, it turned out that actually like a lot of RSI can be prolonged for emotional reasons. It was wild to me because it started, I was in physiotherapy for unrelated reasons. [00:08:30]

I pulled a nerve doing the exercise the physiotherapist gave me, which is very ironic. And everyone I saw kept telling me like, oh yeah, that's the kind of thing that heals in like six to eight weeks at the longest. But it had been bothering me for like months and it started in the other arm, which was wild cause I hadn't pulled anything. [00:08:45]

And I was sharing the story about this on Twitter and like just seeing if other people had experienced it. And so many people kept telling me to read this book called The Mind Body Prescription, which was about like how you, how a lot of physical injuries can be affected by stress or by emotional, like emotional just anything really. [00:09:03]

So I gave that a try. I started journaling more, tried to be a little bit more open with myself and with emotions and kind of magically that got better. So I spent I think seven or eight months where I was primarily using a microphone and an eye tracker to code and just to do work in general. [00:09:20]

Fortunately, now that was a couple years ago and I've been happily using a keyboard ever since. But that whole experience gave me the perspective that. I had been working for all these different companies that I've been talking about for several years, and a lot of that work was really satisfying. Like I, I enjoyed contributing to these organizations. I believed in most of the missions that we were doing, right. Khan Academy is a great mission.

A finite number of keystrokes in us [00:09:40]

Josh W Comeau: But I really liked the idea of doing my own thing. And it had been an idea I had on my calendar or like in the back of my mind for quite a while. And I had the realization that even though like this this nerve injury that I'm having will likely be temporary, you never know what's around the corner, right? [00:09:55]

Like, each, every one of us has a finite number of keystrokes in us that we can imagine ourselves, like hopefully decades and decades from now. And if we had the omniscience to know, there would be like a number of floating above our head, which is how many times we've pressed a key on a keyboard, and hopefully that number would begin like the billions or the trillions. [00:10:12]

But it's a finite number, right? You. And so I started to think of that as like a currency. Like every time I press a button on the keyboard, that number ticks down by one, right? I only have so many of them remaining in my life. And so I should spend that, those keystrokes doing something that I'm really interested in and passionate about. [00:10:27]

And so it was during this whole fiasco that I left my job at Gatsby and started hacking on my course platform and the first course that became CSS for JavaScript developers. [00:10:35]

Carl Vitullo: Very cool. Wow. Yeah. That's such a powerful way to approach figuring out what's really important to you and thinking about your career as a finite series of interactions. I can see how that would be a very motivating reason to do what's important to you. [00:10:52]

Josh W Comeau: It was definitely a perspective shift, before that my thinking had been, I have all the time in the world, right? It's still, you know, if we assume that I got my first job in 2014 I've been in this career for six years. You know, most people spent 30 or 40 years in their career, so there was no shortage in terms of expected time spent coding. And I figure maybe I'll do what I'm doing now for another 20, 30 years, and then I'll move on to something else. [00:11:13]

But I shouldn't take for granted that's how that will work out, right? I was also very, I should mention, very lucky in that I had probably about a year and a half of savings saved up so that I wasn't, like I had the financial freedom to really say, okay, let me spend my let me give this my full attention and really just see what can happen with it, which I know is not a luxury that most people have. [00:11:34]

But yeah, that was really I had the realization that like, there's really no reason for me not to do this because if it doesn't work out, I will have burned through most of my savings, which is unfortunate, but I felt pretty confident I'd be able to get another job as I had been doing, just doing, you know, typical IC software development work. [00:11:49]

And yeah, just when I framed it like that, when I framed it as like, the currency thing about only having so many keystrokes left, it seemed like, just the solution was obvious that it was something I had to do right now. [00:11:58]

Carl Vitullo: Right. Yeah. Yeah. And maybe reframing it a little bit, it sounds like really reckoning with your own mortality in a way. Maybe the mortality of your career, but really realizing how time is finite. Yeah. [00:12:13]

Josh W Comeau: I probably should have mentioned that. Yeah. This is a very morbid idea.

An expectation of being able to code [00:12:16]

Josh W Comeau: And of course, you know, I didn't have any sort of expectation that I wouldn't be able to continue coding. And actually a big part of this whole experience taught me that like no matter what life throws at me, I will find a way, like with how good technology is. Cuz and we were speaking about this before the event started, even with the microphone and the eye tracker being a significantly different way to approach writing code, I was still able to move relatively quickly, like not as fast as I can with the keyboard, but certainly fast enough that it felt viable, right? It seemed like, okay, I'm gonna have to be a little bit more careful with how I prioritize. Like maybe I can't go through and spend as much time polishing things as I would like. Cause maybe I'm moving at half the speed that I normally would, but I can still get a lot done especially if I prioritize a little bit more ruthlessly. [00:12:59]

Carl Vitullo: Right. Yeah. I see that we've had many people join. Lemme just reintroduce very quickly. Josh Comeau is joining us today. He's an indie hacker educator. He has worked at Gatsby, Digital Ocean, Khan Academy, and many others, and is currently an independent educator. And just recently released his course, the Joy of React. And we're here talking about mortality and the limited time we have on Earth.

Job hopping [00:13:25]

Carl Vitullo: But I, if I could back up maybe a little bit. So you've mentioned a lot of shorter stints at various jobs in your career. How have you thought about that? How have you approached the question of, should I stay or should I leave? [00:13:38]

Josh W Comeau: Yeah, so when I was at the bootcamp in 2014 one of the instructors that we had he took like a whiteboard marker and drew a graph and show—granted, this is an audio format, so let me see if I can describe a graph. It shoots up linearly and then slows down, right? Like the, like the first half of a bell curve, right where it goes up and then it starts peaking. [00:13:58]

Carl Vitullo: Plateauing, sure. [00:13:58]

Josh W Comeau: And he was saying that you hit this plateau maybe like a year and a half, two years into your career and you wanna leave your job before that point, like leave the job where you're still getting that fast momentum. The thing that was being graphed, I should say, was how much you're learning, how much you're growing just, how healthy it is for you as a developer. [00:14:14]

Carl Vitullo: Sure. Skill advancement. [00:14:16]

Josh W Comeau: Yeah. And his point was that unless like, and there are certainly exceptions, right? Like if you work at a company where you're constantly being moved to new projects in new departments, then that kind of works the same way. But if you're spending more than two years hacking, especially I think mostly like early in your career, like certainly there are lots of benefits to maintaining a project long term. [00:14:33]

But I think his point was that for the first few years you wanna sort of, expose yourself to lots of different code bases and different technologies, right? Like you have to figure out like you get a lot of benefit at first and that benefit slows down. And the more these experiences you have, the more you things you can reference, right? The more you can appreciate, you can bring solutions you learned at one place to another place. It's just like all around good. [00:14:54]

And I know that there is this debate, like if an employer sees that you have a bunch of these like six month, nine month, a year stints, the fear of course is that are we gonna hire this person, in six months they're gonna leave. I personally haven't had many issues with that, but I'm very careful not to generalize that to anyone else. Like I recognize that there's a lot of privilege that I have as a white guy in tech. I have no idea. You know, like, it, I don't know how much of the lenience I was given in this particular area is because of that, but I would expect quite a lot. So there is definitely, like, I don't wanna generalize this as good career advice for anybody else. [00:15:25]

I do think there's much more tolerance for it in tech than other sectors. And you know, my third job was breather. I was there for a little under two years. I think it was like a year, 10 months, something like that. And for me that was like a good enough stretch of time. Like I feel pretty confident that if you asked someone at Breather whether it was worth hiring me for that amount of time, they would say yes, right? I got a lot of good things done when I was there. [00:15:46]

Maybe if it's every six months like that, and if you have five or six of those, like if your resume is two and a half years long and you've worked at six places, maybe that does start to become a problem. But if you spend a couple years somewhere I think that at least in my own experience has been like, it's never come up for me. I've never had an interviewer say that. Granted you never know why you don't get a job, but I've had pretty good luck when it comes to companies that I really wanna work for.

Unconventional job hunting tips [00:16:09]

Josh W Comeau: You know, I also and this might be worth, it's totally not what we're here to talk about, but I do have a kind of an unconventional tip for job hunting. I worked at a bootcamp, right? [00:16:18]

For three years I was teaching part-time at a local coding bootcamp called Concordia Bootcamps. I was doing this while I was at Khan Academy, Digital Ocean and Gatsby. I was working 14 hours a week for them. [00:16:26]

And the advice that most people give in these settings, both at the bootcamp we were at in just generally online, is that it's a numbers game and you want to get out n number of applications a week, right? 15 a day if you can, and grab a templated cover letter and very quickly, like do the find and replace where you put in the company name and the technologies. You know, I am very interested in Acme Inc. Because I am passionate about dynamite or whatever it is. And that I think when you're first starting out, yeah. For your first job, maybe that's good advice. [00:16:55]

As I got my second and third job, I started being much more strategic and like, okay, who are the companies I really wanna work for? And what can I do to make myself a pretty attractive option? [00:17:04]

So the one example was, I liked the idea of working at Spotify. So I built an application with Spotify's api. It's called Panther. It's panther.audio. It's still online if anyone wants to go check it out. Essentially it hits the Spotify API, it pulls information about an artist that you search for and three related artists, and it lets you move through this big node graph of like, okay, this artist is connected to these three artists. And then if you click on one of those artists, it pulls that one to the center. Just a way to discover like related artists to one that you like, as an exercise in like, here's an interesting interface for the data that this API provides. And I applied to Spotify. In fact, I think it was even like I posted it online and people at Spotify saw it and put in a word internally for me, like that's always a good thing. [00:17:46]

It didn't work out because it became apparent pretty quick that they wanted me to move to Sweden. And I had just moved to Montreal to be where my partner lived. So I withdrew from that process. I think I had one interview. So it, like, I, it's impossible to know how that would've gone. But certainly it didn't hurt, right? [00:18:00]

Like, certainly the fact that I had spent significant time and you don't hear this advice a lot because it's a lot of eggs to put in one basket, right? Like if you spend. 60 hours on a single job application cuz you spent a week and a half building this thing and they're just not hiring junior developers at the time. That's seen as a waste of time, but really, like, it's still a valuable side project. Right. Even it doesn't, I can use that elsewhere and it just it creates it stacks the odds in your favor. Similarly with Khan Academy, right? Khan Academy I forget the numbers, but it was something like, they get several hundred applicants for every open position. [00:18:32]

Like it's a very competitive place to work because so many people use Khan Academy in high school and college and then they graduate. I was also one of the only people there without a CS degree. Like they, they really, in fact, most people had like advanced degrees that were there. And I think the reason I was able to pull that off was a bunch of stuff.

Personal projects, open source, and networking [00:18:46]

Josh W Comeau: Like, one of them was that I Khan Academy had an open source project called Aphrodite. I had contributed to that project and spoken to some of the developers on it, and in fact, I think I made a couple of contributions to it. I forget exactly. I also became friends with someone that worked there at a hackathon. [00:18:58]

And that was, that's hard to engineer or something like that. But I became friends with someone who worked there. And I put like a lot of work into my cover letter. I saw it as a dream job of mine, so I put a lot of work into it, and it worked out. I went through eight interviews, because that was what their process was and it worked out. [00:19:15]

So I do think like I say, right, for your first job, your second job, maybe it's the shotgun approach of just trying to get as many applications as you can out. Maybe that's not a bad idea. Beyond that, I do think like find two or three companies that you would love to work for and put a lot of work into it, because those things matter. [00:19:30]

Carl Vitullo: Yeah, I've never quite gone that far into picking a company and deciding that I wanted to work there, but I have followed a similar sort of trajectory as what you just described, where, just by following my own in interests and coming up with a project that I thought sounded like fun. And you know, just like maybe this touches on like build in public and learning public kind of topics as well, but just by working on things and publishing them and making them visible to the world I think that can be a very powerful way to get jobs. [00:20:02]

And it gives you something to network around. You know, if you go to a conference and you're looking for a job or something, it's much easier to start that conversation and find new friends who may then be able to get you an in at a company if you can talk about some project that you're excited about, you know, look at this cool thing I made. [00:20:18]

Josh W Comeau: Yeah, totally. And I would also say there's like a spectrum here, right? It's not like you either spend five minutes or 30 hours. When I worked at Unsplash, I was actually put in charge of hiring my own replacement cause I was leaving and we needed to replace me. So I did a lot of interviewing and I was amazed at how little effort most people put in. [00:20:37]

Carl Vitullo: I know, it's shocking. [00:20:38]

Josh W Comeau: And so if someone put 10 minutes into the application, right? They wrote a paragraph in the cover letter about why they thought our company in particular was interesting. Like little things like that can really help you stand So I do think like the strategy I suggest is like almost imagine a spectrum where the more you wanna work at a place, the more work you put into it. [00:20:56]

And you can start by applying to the places you're not super interested in and not put that much energy into them. And maybe that'll give you some practice, right? Like scale the amount of energy into an application based on how much you wanna work. [00:21:08]

Carl Vitullo: Yeah, I think that's excellent advice. You know, maybe not full templated cover letter or whatever, but you know, if there is a job that you're interested in, that sounds like a really good fit, that sounds like it would be on a team that you could learn from then. Yeah. You know, spending 20 minutes on a more personalized cover letter, I think is absolutely worth the effort. [00:21:29]

And on your point about the lack of effort, I've interviewed a number of people over my career and unfortunately, a very effective screener project I found for hiring for a React role was, write a button that increments a counter. It was disappointingly effective at people who claimed, moderate to expert level react knowledge. [00:21:53]

So I, I think a lot of the times the bar is lower than many people expect. [00:22:01]

Josh W Comeau: Yeah. That's interesting. Like if a job application lists a bunch of requirements, right? It's easy to assume that if you don't match a lot of them, that you're gonna be near the bottom of the people applying. But, I think you probably learned that's not really true. Like you're probably much higher in that stack than you think. [00:22:17]

Carl Vitullo: Yeah, I definitely agree with that. Yeah. And going back a little further to what you said about job hopping What you said about it not really being a factor that you noticed as a limitation in your career. That's been my experience as well. I had I had a stint where I worked three jobs in a row that I left in under six months. [00:22:36]

I think the shortest was just over four months. And yeah, like nobody ever brought that up in interviews ever again. I got a couple of questions about why I left, and so I did have to come up with a you know, devise a bit of a story, tell a story about what the situation was. [00:22:51]

But yeah, my experience mirrors your own, I think where once you get one job where you stay longer than a couple of months, I think that really shows that you can stay places you are willing to stay, places. You're not getting fired because you're bad at things. You're leaving because you're looking for the next thing, which I think is appealing to many interviewers. [00:23:11]

Josh W Comeau: Yeah. it's funny, that's I had an answer prepared for if someone asks, like, Hey, I've noticed you've worked at a lot of companies in the last couple years. The answer, and it's honestly, it's pretty much true, was, yeah, look, you know, I'm relatively new to the industry. I wanted to try out a few different environments. [00:23:25]

So I worked at a services company, I worked at a product company. And now with my application now, I've kind of worked out what sorts of environments I like, and I'm trying to find the kind of place that would fit that environment. And I think that might be you, whoever I'm talking to, right. [00:23:38]

Which kind of positions it as, it's not just that you're addicted to leaving companies after six months. Cause really it's a lot of work to leave a company like, I don't think most people are. But that's, I think, the impression people can get. It's more that like, you know, you're trying to find the right sort of environment for you. [00:23:51]

Carl Vitullo: Right, careers are a bread first search, and as you narrow down, you look for a better fit [00:23:56]

Josh W Comeau: Mm-hmm. Yeah. Yeah. I like that [00:24:00]

Carl Vitullo: You know, so you came up. That's a great story. I think that's, I think that would be a very compelling answer. But you were ever, never asked that question? [00:24:06]

Josh W Comeau: Yeah, I never had the chance to give it [00:24:09]

Carl Vitullo: Too bad. (laughter)

Ideation for blog posts [00:24:12]

Carl Vitullo: Maybe changing topics a little bit. So you've been an educator for a long time. Could you talk a little bit about your creative process? How do you find a topic that you think is in need of explaining and how do you take that topic and come up with a way to make it intuitive to people? [00:24:27]

Josh W Comeau: There's, I have a Notion document, I have the app on my phone, and if I'm out walking or wherever I'm in my life, ideas just pop into my head. Like, maybe I'll think of here's a little UI detail that I think would make a good blog post. Or like, here's a really good analogy for explaining this random thing. [00:24:41]

And over time, these bullet points in my notion document, collect notes on them. And it sort of happens pretty organically, where eventually one of these blog post ideas will have like four or five points that sort of form a vague skeleton. And if I think it would be an interesting thing to write about, then I'll spend the time and bring it over from Notion into markdown. [00:25:02]

I write in MDX which is basically Markdown And often it does start from like a particular visualization or a particular analogy, like, I do wanna have some sort of, hook is not really the right word, but some sort of thing that makes this blog post worthwhile. [00:25:16]

I should say there's lots of valid ways to do this. [00:25:17]

Like, there are plenty of people who produce a lot of work that is very valuable, which is tailored around search results, right? Like, just if you get run into an error, then make a blog post about that error. That's not really what I do. Like, I try to have longer, more comprehensive blog posts that dig into a particular idea. [00:25:32]

I have a bunch of ideas that are, I probably have 150, 200 potential post ideas and most of them are never gonna happen cuz they're not particularly good. Right? It's the brainstorming thing of you just throw any idea that you have. But yeah, eventually these ideas, they kind of coalesce into something that I think would be compelling. [00:25:48]

I've noticed there's this fun thing that happens where when I started blogging, I had a pretty small audience, which meant that the only people that were gonna read my blog were people that were in my personal network, roughly at the same level that I was. I don't remember when I started blogging, but it was a long time ago, And I started on Medium. I wrote a few dozen posts for Medium and then I created the blog that I have now, And when I was first doing this, it didn't make sense for me to write introductory, like intro to CSS Transitions because, you know, most of the people that I was working with already do that. [00:26:17]

So I would have to find these pretty, Like, niche things. Like, one of my early blog posts was about rehydration and React, which is something that I think a lot of experienced, React developers still struggle with. And like I was getting these weird bugs where like everything looked fine in development, but you deploy it and the wrong elements are in the wrong places. [00:26:34]

And I mean, that's specific to Gatsby because they don't do server-side rendering and development. Um, But yeah, so I would do these like very specialized niche things because those are the types of things that people in my network would benefit from. But as my blog has grown more popular, it's sort of given me the allowance to do more introductory topics because now when I publish something, it spreads beyond my network. [00:26:55]

And I think my most popular blog post now is an Interactive Guide to CSS Transitions. And then I have one about Flexbox as well, which it's interesting, right? Like the further you get in your career, or the further you get in terms of building your network the more introductory you can go. Because even if one of these topics has been covered a hundred times already I know that I can put my own spin on it and I can make it interesting and it will reach those people who otherwise I have no way of reaching [00:27:21]

Carl Vitullo: Yeah, that makes a lot of sense. So you started blogging just for yourself and for the people in your network, and then as you gained an audience, you started writing more for that audience. Does that sound right?

Writing for advanced audiences [00:27:32]

Josh W Comeau: Yeah, and I think it's like, it's given me the freedom to write about things that may not be directly relevant for the people. At this point I feel like I can write a blog post on anything that interests me or that I think I have an interesting way to present it. [00:27:45]

I think this is one of the problems, right? If you're trying to reach people who are just starting to code, like they're not working as a developer, maybe they're thinking about enrolling in a bootcamp. Maybe they're in a bootcamp. They're gonna know about FreeCodeCamp. Maybe they know about Wes Bos, like they know about the biggest creators, the search, the first result on Google for a given thing. Um, It's like the people who have been doing this for a while that know about more niche creators like myself, and I'd still put myself in that category to a large degree. [00:28:11]

I think it's interesting that the further you get into the content creation thing, the more possible it is to reach people that are earlier in their career, at scale, right? Like when I worked at the bootcamp, I actually did know quite a few people that were in that situation. [00:28:24]

But, um, I would have no way of reaching people outside the people I met in real life or that were in my direct network like that. [00:28:31]

Carl Vitullo: Right. Yeah. I haven't blogged with any kind of regularity in probably four years now. But my experience as well is that the more introductory topics tend to have a larger natural audience. The first, you know, one to four years of your career, I think are when you tend to learn the most subjects, the most quickly. [00:28:51]

And so you're very seeking out new things to learn, new places to learn it from, new ways of thinking about it. The numbers here are maybe fuzzy, but after about four years, I think, you start feeling more confident in your knowledge, and I at least began learning things more on a sort of "just-in-time" basis. Like, oh, I need to do this next week. Let me dig into the subject. [00:29:16]

Trying to write educational content for an intermediate to advanced audience, it's just much harder because there's fewer people actively seeking it out. [00:29:25]

Josh W Comeau: It is interesting how that tends to work. And actually, I have a blog post called How to Learn Stuff Quickly which touches on this a little bit. Like when you're first starting to learn something, you don't know what you don't know, right? Like you need a really guided introduction to that thing. And the further you get into it, the more able you are to answer your own questions, to fill in your own gaps. [00:29:44]

And so the learning becomes much more unguided and you can answer more of your own questions cuz you know what you don't know at that point and you can go find those things. Yeah it's funny how that works out. [00:29:53]

I do think that there is there's still I think a big audience for guided advanced content just for the matter of like, you could figure this thing out. And the example I always think of is like whimsical animations, which is something that I want to create a course on at some point. Because like there are so many things that I just had to figure out the hard way that it took me a lot longer than it would have because there just, like you can certainly Google and find the solution to any discreet problem. [00:30:18]

But I think what's harder is to move up a ladder, right? And to kind of get a broader overview and to understand how all these small things connect and what the best tool is to solve a given problem, rather than just searching for the code that you need or the strategy to do it at a more granular level. [00:30:31]

I think what you're saying is totally right, that when you're first starting out, that's why I think a lot of beginner tutorials are so popular because it's really, there's not really any other way to do it other than to have someone kind of walk you through, okay, these are what the tools are, this is how they work. And to give you that, the skeleton that you can then go on top of. [00:30:46]

Carl Vitullo: Right, right. Yeah, a concept that I try to keep myself too, when I'm doing a new project is have a novelty budget. You know, try and keep keep the reins on how many new things I'm doing at once. And that's just not something do when you're a beginner. When everything is new to you, it's inherently overwhelming. And so a tutorial that gives you a skeleton is a good framework to delegate the setup process so you can focus on what you're trying to learn in the moment.

Other creators and the power of interactive explanation [00:31:15]

Carl Vitullo: Who are some other educators and content creators who you're keeping an eye on? [00:31:20]

Josh W Comeau: Yeah. So thing for me you know, my blog uses MDX, which as I mentioned, is Markdown with React components. And the really cool thing about that is that it allows you to like, create bespoke one-off interactions or widgets or code editors or just, you know, things that will help you explain this idea. [00:31:35]

And so really I'm always delighted when I see people that publish in a similar style. Now, the two people that come to mind are Maxime Heckel. He blogs at maximeheckel.com, and hopefully I pronounce this even partially correctly. Nanda Syahrasyad, he blogs at nan.fyi. And both of them I'm pretty sure they both use mdx. [00:31:55]

They do the same sort of thing that I do, which is to have blog posts that have unique embedded things right in the blog post that let you poke in prod of the idea, right? Maybe there are sliders, maybe there's interactive code that demonstrate the idea that you're talking about. [00:32:07]

I think about how people learn and, until we had the internet, it was all like, maybe mostly it's books and then you have videos. Maybe you'd get like a VHS that would have a tutorial for something and those are both good and certainly like there are things where video is the best way to learn something. But for a lot of things, I think if you can interact with it, right, like if you can make it, like bring some of the things that video games have in terms of interaction and exploration, it just makes it so much more effective. [00:32:33]

And I feel like just as a community, we haven't really taken full advantage of that. Like there's so much we could be doing to make educational content more kind of engaging. I don't know if they're a company or a non-profit, but brilliant.org, it's like an interactive textbook is I think how they describe it, where it's like for math and physics and things. You can play with the ideas as you're learning them and it's so much more effective than reading a textbook or watching a video. [00:32:55]

So yeah, those are a couple examples of creators that are that are doing this. But I hope other people get involved cuz , first of all, it's just really fun too, to build them, right? You get to use your programming skills and your content creation skills together, which is always fun. There's so much more potential for what you can do with that [00:33:10]

Carl Vitullo: That really resonates with me because when you're trying to learn something, I think at the core, what you're doing is building a mental model, and it's so much easier to develop that mental model if you can interact and run tiny little experiments like, you know, if you, if you can play with a simulation and think in your head, I think when I change this, this will happen. If you can get that immediate feedback by interacting with the material you're learning from. I can absolutely see how that is very effective for learning. [00:33:40]

Josh W Comeau: Yeah, and like I mentioned, right, often I'll be walking down the street and I'll think, in fact this happened. I have a blog post on introduction to CSS Transitions. And what I imagined was what if we visualized every frame in the transition? So like if a circle moves from left to right, what if we like have a little shadow, like an outline of where that circle was for every frame? [00:34:02]

And that allows you to visualize easing curves. Like if something moves linearly, then all of these circles are equidistant apart. If it has an ease, then it, they bunch up at one end. It allows you to show how frame rate matters, right? Like if you lower the frame rate, you can see that there's less. So like I was, I forget what I was doing, but I wasn't coding. [00:34:18]

I was doing something in my regular life and I had that idea. And then pretty much immediately I was like, okay, this has to be a blog post. And that was only possible. Uh, I guess I could have made little videos and then included like a gif of it, but it wouldn't have been, it wouldn't have been as effective. [00:34:30]

And it's so cool when you can literally change the easing curve for yourself and then replay the thing and see what it does differently. It's exciting that we have technology to do this now, right? Like it's it's relatively recent, but MDX and tools like it. I forget what it's called, but there is a Vue alternative to this. So it's it not specific to React. Although given that this is a React community, I don't imagine that'll be a problem. It's amazing that we have the tools that we do, and I hope more people will take advantage. [00:34:53]

Carl Vitullo: Yeah. and an example from you that really stuck in my head as the power of explaining things with those sort of interactive elements was, I remember seeing, I think it was on pudding.cool. You did an interactive explanation of sin waves, I think it was, or sound waves. [00:35:08]

Josh W Comeau: Yeah, that was, you know, actually I didn't mention this, but much earlier, in a former life, I went to school for audio engineering, and it was like a six month trade school kind of thing. And I never worked as an audio engineer, but I found it very interesting. And so I had these ideas for how I could visualize that. And it was over like a winter break when I was working at Khan Academy, I had sketches of how this could work, and I decided to see if it could be built, and sure enough it could. Um, And it, yeah, it was a lot of fun. [00:35:34]

I initially it alone, and then the folks at pudding.cool reached out and offered to buy it from me essentially, like to pay me to have it published through their journal. I don't think I was familiar with them before, but I took a look at their work and it was super cool. [00:35:46]

It's kind of cool that there are organizations out there that will pay you to do this, which I had no idea. It's another one of those things where it was just an idea that I had. I was honestly kind of waiting for my skills to catch up because I had the idea years before, but I just had no idea how to do it. [00:35:59]

Like I figured maybe svg, but I didn't have much SVG experience at the time. Actually I wound up building it twice. I built it in in Canvas partially just as like as a learning exercise, but because I wanted to see which one was more, both performant, but also which one just felt better to use. [00:36:14]

I forget. I think I wound up going with SVG in the end. It was definitely a challenging project, but a really satisfying one.

Going before you think you're ready [00:36:19]

Carl Vitullo: What you just said about, it sat with you, it sat in your head for a number of years before you were actually able to get it out onto a webpage. It's sort of that, "overnight success takes many years" concept. It takes so long to, for an idea to percolate around before it becomes fully fleshed out. [00:36:36]

Josh W Comeau: Yeah. And it is, And this is something too, like I probably could have done it earlier. And this is something I've told so many bootcamp students, that like, if you wait until you are a hundred percent ready to do something, you're never gonna do it. Like you have to eventually, whether it's like applying to jobs after, cuz a lot of people, they finish the program and they still feel like they don't have any solid grasp of anything. [00:36:57]

The urge often is to spend a few months solidifying what you've learned so that you're ready to get your first job. When really I think, you can probably advance much quicker by applying to jobs now and then developing those skills on the job. If you wait until you're ready, you're never gonna be ready because there's always… I don't feel like I've ever hit the point where I am a hundred percent confident in everything that I'm doing, and I feel like I know everything there is to know, like, of course not, right? There's always things that I don't know how to do and that I'll figure that out, like you mentioned, right? You figure it out as you go. [00:37:30]

I probably should have started that project a year or two earlier, but I'm glad I started it when I did, or I'm glad I didn't start it later. [00:37:36]

Carl Vitullo: Sure. (laughter) Yeah. Advice that I have heard is that if you're ever at a point where you know everything you need to do your job, you should find a new job because you're not being challenged anymore. And if you're not being challenged, you aren't growing. [00:37:48]

Josh W Comeau: Yeah. This is actually something I mentioned in my new course because I did, so my new course, the Joy of React has a module on hooks and in that hooks module we talk about use effect. And there's just, there's so much confusion about use effect out there, right? It's a challenging api. And, I was building this course, and I decided I was gonna cover effects before refs because I figured most of the things you do with refs require effects, right? Like the typical example is you wanna focus and input after the component mounts. So you use a ref for that, but then to actually do the focusing, you have to do that in an effect. [00:38:24]

And so I, we covered effects and I kept finding myself setting up the examples where like, I would have to have these disclaimers, like, this isn't really how you should do this, and later on we'll learn why. And I showed it to some people and the feedback was a lot of like yeah, like this, it's kind of hard to follow. [00:38:40]

And so I wound up redoing a huge chunk of it. Like I spent probably five or six weeks just redoing and structuring it differently so that refs are covered first and everything does work way better in that. But it really did, like I had a couple days there where I was just like, my goodness, should I even continue with this course? Like it's taken so much longer than I thought it would And it just struck me that like, this is how so many people feel when working with hooks.

Ignoring imposter syndrome [00:39:01]

Josh W Comeau: So in the redone content, the first video before the effects is like, just an honest conversation about how, like there will be times where you feel like you don't know what you're doing, and should you ever share some code that you've written on Twitter that uses an effect, people will come outta the woodwork and tell you that you're doing it wrong. Like, this shouldn't be like this, you should do this instead. The best practice is this, right? You shouldn't use an effect for this. You should use something. And all of this advice is, not all of it. Most of it is very, very good, like the person sharing it is good intentioned and trying to help, maybe they made the same mistake and they're trying to share it. [00:39:34]

And the advice is usually helpful. Like your code will be better if you follow that advice. But like the big but at the end of all this, the, this run on sentence, is that it still works. Like most of the code that most of us write is not optimal, but it still works. And you should never feel guilt or shame for writing code that isn't like the top, that isn't the most conventional, the most aligned with best practices. [00:39:59]

I can tell you, like I worked at Kahn Academy, which as I mentioned was one of the first organizations outside of Facebook to use React. We did so many things that were like objectively wrong. Like, I'll give you an example. We used Redux. We had like five different Redux stores because we had a different Redux store for every concern. And sometimes things overlapped, so we'd have to sync things between different Redux stores. Which if, you know Redux, like that's the big thing that you're not supposed to do. [00:40:23]

Carl Vitullo: Right, that's sort of a cardinal sin, [00:40:25]

Josh W Comeau: But I'll tell you what. We never got a support ticket that said, Hey uh, I'm trying to learn physics on your program, and you're, you have too many Redux stores. Right? Like this invisible to the user. It slows you down in your development a little bit, which is it is still a good idea to fix these things. But you can absolutely create brilliant things, while still making pretty foundational mistakes. And that's just the way it goes. [00:40:47]

And the, the reason I thought of all this was when I look at code, I started this course platform in early 2020. It uses Hooks exclusively, or almost exclusively Hooks came out in 2019. So when I started working on this course, platform Hooks were new and none of us knew like what the best practices were, right? [00:41:03]

I have a lot of eslint disable next line before my dependency array in the use effect hook, which is what you're not supposed to do. Uh, But the course platform works just fine. And I am, you know, there's like the Boy Scout thing of, like, every time you touch a piece of code to make it a little bit better.

"Best practices" vs "Happy practices" [00:41:16]

Josh W Comeau: So I am slowly getting rid of those bad practices, but I'm pretty sure that no bugs have been caused by these bad practices. No experiences have been degraded. And the course platform works pretty well. So, uh, you know, I think it's the important thing I realize and that I hope other people realize in this course is that none of this stuff is life or death. [00:41:35]

Like, You will make mistakes, that's fine. And if you look back at code that you wrote a year or two ago as I've been doing, working on my course platform, and you're embarrassed by the code, that's a good thing because it means that you have grown that much better in the time since. [00:41:48]

Carl Vitullo: Yeah. And you know, in the community, we get a lot of questions like, what's the best, you know, form library, what's the best component toolkit? What's the best way to fetch data? And [00:41:59]

Josh W Comeau: Hmm. [00:42:00]

Carl Vitullo: I thought of this because you mentioned optimal, and "best", or "optimal" is just it's couched in so much context, In order to correctly answer that question, that, there is no best, no optimal. It, It depends on what you're optimizing for. And you know, sometimes you're optimizing for speed of authoring. Maybe you need to ship a feature in two weeks and you know, there's some deadline that's crucial and yeah, you know what the the optimal code for that is something that works. So, yeah, just, uh, optimal or best is so subjective. [00:42:33]

Josh W Comeau: So my React course still has a couple modules yet to come, and I, I haven't quite figured out the structure for it, but I do think one of the, if not an entire module a chunk of a module is going to be on things that I've learned about using React effectively, like building on everything that we've learned so far, here are some things that I used to do that I've since learned are not as good as they could be, or, and my plan is to call them "happy practices" rather than "best practices." Cuz like, they're not the best, they're, they're just things that make me happy. I think that's ultimately a better way to look at it cuz you're right, there's no such thing as a best practice because it really depends on the circumstances. [00:43:05]

Carl Vitullo: Yeah, absolutely. Some Bob Ross vibes there. Happy little braces. [00:43:10]

Josh W Comeau: I mean, it's called the Joy of React. [00:43:12]

Carl Vitullo: Should bring joy to people. [00:43:13]

Josh W Comeau: I figure I should lean into that. [00:43:16]

Carl Vitullo: If there's anything else you wanna talk about on your course, I'd love to hear it. Two years in progress, what are you looking to do next with it? [00:43:23]

Josh W Comeau: I think I started working on this in early of last year, so it's been about a year. And I did take about a month off, cuz now I have two courses. So there was a month there where I was going back and updating a bunch of stuff in the CSS course.

Taking breaks, not unit testing [00:43:34]

Josh W Comeau: I say that it takes about two years to make a course. Really it's about a year and a half. And then I take a six month break in between making them both to support the new course and also just recharge a little bit. And so I've been working on it for about a year. [00:43:45]

The course is about two thirds finished. Like the plan is to have six modules and three projects, and right now there are four modules and two projects. So literally two thirds done. And yeah, so over the next few months, the plan is to finish that course. There have been a lot of questions about like, what is to come in those modules, and I definitely have some ideas. [00:44:01]

This is another thing that I think catches people off guard. One of the more common requests I've gotten is to cover component testing because my course doesn't touch on it at all, and I don't do any component testing. like in my course platform, the only test that I have are end-to-end tests, and I have maybe like 20 or 30 of them. It's not extensive. [00:44:19]

It covers the most critical flows, like, signing up and onboarding stuff, right? The things that, I want to know if this thing breaks cuz it, progress tracking is another one. But no, don't really, uh, do any component testing and I, I used to, but it's been four or five years since I did like Enzyme. I don't even know if Enzyme exists anymore. [00:44:36]

Carl Vitullo: That's been my experience too. I remember early in my career, I wrote so many unit tests . And then at some point I realized like, you know what? These tests are just breaking constantly for no reason. They're not giving me value. [00:44:48]

I haven't quite gotten all the way out to end-to-end tests, just because I've found them flaky. They're difficult to set up. Mocking is a challenge, yeah. If it doesn't alert you reliably of a critical breakage, then… tests can be more harmful than helpful in a lot of cases. [00:45:06]

So yeah, I think your experience with testing I think is maybe more broadly applicable than many developers realize. [00:45:13]

Josh W Comeau: Yeah, I wanna make clear that this is my own subjective personal opinion and not even a, an opinion I feel very confident in, but I think it makes sense for unit tests when you have a library or a component library, anything where it's like other developers are consuming your tool because yeah, you wanna make sure that like your API is rigid, right? [00:45:30]

If you're not doing a major version bump, then like I feel like that is really good to have. In your own code where you're not versioning it, there's no semantic versioning and it, it's so much work to keep the tests up to date as you make changes. Snapshot tests make that a little bit nicer, but again, I haven't done them in years, so I have no confidence in my ability to explain how to use them well.

How do you work in public? [00:45:50]

Carl Vitullo: We do, we do have a question in the chat of, how do you actually work in public? Do you have any thoughts you wanna share on that? [00:45:57]

Josh W Comeau: Yeah, that's a great question. I think for myself personally, it's tricky to say if this is generalizable because, my business right now is creating courses and so it really does help me to, just get people to be aware of the mind you, I guess this is generally applicable cuz you do want people to know about the things that you're doing. You never know how, like a thing that you share will be noticed by someone that works at a company that you wanna work for and appreciated by them. [00:46:20]

So I and I don't have too rigid of a strategy. Often, And I've been neglecting this recently, but for a long time, whenever I either learned or was reminded of like a cool trick, whether it's like a CSS thing, like I think my most popular tweet is, uh, how the CSS filter drop shadow behaves quite a bit like the CSS property box-shadow, but if you apply it to an image and that image is transparent, so say you have like my little 3D mascot character, it'll apply the shadow to the outline of the image rather than just the box, like the square that the image takes up. Um, and that was like a cool. It is pretty neat. I think I already knew that, but I remembered that this thing existed, so I spent the 10 minutes to like format it nicely into a tweet to show the before and after. That was like a really helpful thing because it, I think it got something like 7,000 likes, like it, it spread pretty far beyond the people that typically follow me. And I do think like there's the audience building aspect, which I do think, like I mentioned, even if you're not trying to sell a course, it's still useful cuz it grows your network and you never know when those connections come in. [00:47:20]

But, it's also just really good for organizing your own thoughts, the same thing as true of teaching. You realize what you don't understand when you try to explain it. Like you might think you have a pretty solid grasp of something, and then someone asks you a question and you open your mouth and all of a sudden you realize that there's this gaping hole in your knowledge. Like you actually can't explain it as coherently as you thought you would be able to. [00:47:40]

And learning in public gives you a lot of the same benefit. Like you go to tweet something, and this is something that happens to me too. Like, I'll tweet something that I just discovered that I thought was cool, and people will ask like deep questions that like, I don't know, I just found out this thing existed. But it's a good question! Sometimes I'll just say I don't know, you, if you find out, let me know. But, if it is something I'm interested in, that gives me the impetus to do the digging and to answer it. And that's something that, you know, I wind up benefiting from that because I answer that question. [00:48:08]

Carl Vitullo: Yeah. Yeah. I can't remember if this is the right term, but, concept of, paradox of expertise, I think is maybe it, where as you become more expert in some domain of knowledge, you become so immersed in the jargon that you lose the ability to communicate that knowledge to others because, you know, your your fundamental building blocks that you have your mental model based on are so specialized that other people can't even follow what you're saying. [00:48:38]

Like blogging and trying to communicate things; it's a good exercise because communication is such a influential aspect of anyone's career. Even if you're not a professional educator, justifying your ideas and convincing other people that your solution is correct or good in some dimension So, yeah making small efforts to communicate what you know to others, I think is just so beneficial. Even if you're not trying to become an educator or trying to build a personal brand. [00:49:06]

Josh W Comeau: There's just so many benefits. Trying to explain something changes how you think about it. What you're saying is totally true. It's hard to remember what it was like not to know something. If we imagine like the connections into your brain as like paths through a forest, right? People walk the same path over time and so that gets worn down there, you lose the ability to wander off that path. Like you get stuck in these thought patterns and explaining things, teaching people, sharing things in public is a great way to veer off that path. [00:49:33]

Carl Vitullo: Get off in the weeds. [00:49:34]

Josh W Comeau: Yeah, exactly. That's a good way to say it. [00:49:36]

Carl Vitullo: Yeah, that's a really nice metaphor. I like that a lot. [00:49:38]

Josh W Comeau: I just came up with it. So that's. Usually I have to prepare these things. [00:49:41]

Carl Vitullo: Nice. We are just a little bit over time here.

AI's impact on web development [00:49:45]

Carl Vitullo: Maybe one last quick question from that same post in the chat. Do you have any opinions on AI and whether it's going to destroy our future careers as software developers? Is that something you think about? [00:49:56]

Josh W Comeau: I have a bunch of thoughts. I do think that it will make redundant some of the things that we do as developers, right? Like, I think that's been true of pretty much every new technology that comes around. I struggle to imagine that we'll ever get to a place where someone will type in, like build me an Airbnb application, but for dog rental and like, it'll spit out a fully functional app that not only will do exactly what you expected in what you intended for it to do, but will be modifiable by you, it just strikes me as like not something that's around the corner. Honestly I think the bigger disruption is things like Squarespace or Webflow. [00:50:36]

I think that has probably already disrupted many, many of our jobs, right? I imagine it used to be that if you're like a bakery or a dentist and you want a website, you have to like find someone and pay them. Whereas now you go to Webflow and you find the template that you like and you fill in the information. [00:50:50]

I think that's a wonderful thing because it means that small business owners are no longer required to spend tens of thousands or hundreds of thousands of dollars hiring a team to do this. But it also means that like us developers can work on more interesting, challenging projects like. I imagine I would probably feel bored if I spent a whole career building static landing pages for similarly kinds… it just seems like it's, there's not a lot of variety there, and that it wouldn't challenge me as much as some of the work that can be done now that can't be done in tools like Squarespace or Webflow. I don't think our jobs are going anywhere, anytime soon. I do think that these tools will make some of our jobs easier, and will make some of the work that we do… it'll free us up from the more rote parts of our job and let us spend more time on the challenging problem solving design type stuff. [00:51:39]

Carl Vitullo: I think that's exactly my take on it as well. It's just another tool. And our jobs didn't go away when Squarespace and Webflow came out. It just changed and evolved. I think I agree with you a hundred percent on AI's influence on our job as well. Yeah. [00:51:54]

Well Josh, thanks so much for coming out. It's been really great chatting with you. [00:51:57]

Josh W Comeau: Oh, the pleasure's all mine. This was, this was a lot of fun. I hope it was uh, useful or interesting in some way. [00:52:02]

Carl Vitullo: Yeah, absolutely. Yeah, we'll sign off here. Josh has more courses coming out, so check it out at joyreact.com. Thanks so much.