Kent's Career Path Through Web-Development
Kent talks about the path he took that lead him to where he is in his career today. From a disinterest in programming into becoming a full-time self-employed educator in front-end web development.
Kent wasn't one of those who wrote their first HTML page when they were three years old. He didn't think he would be a developer. He wanted to be a video editor!
Writing code for eight hours a day seemed like the worst thing ever to Kent. That is until Kent had a job where he had to take videos from a church's website and upload them onto their YouTube channel with all of the metadata. So Kent wrote a program that scraped the website, downloaded the videos, and uploaded them with the same title, keywords, and everything. It clicked for Kent that programming could be a tool and not just a chore.
Eventually, Kent got an internship, where he spent his time working on a Java program. Afterward, Kent got a job at Domo, initially for a Java position, but it wasn't long before moving on to the front-end JavaScript team. Then, Kent got an internship for USAA, where they were transitioning to a Java framework called Wicket. AngularJS was taking off, so Kent was worried he'd become irrelevant. So he spent his evenings trying to learn enough to keep himself relevant.
Kent was successful in keeping himself relevant and managed to get a full-time position at Domo. But, Kent was concerned that he wouldn't be able to grow at Domo since he felt that the team would only ever see him as an intern. So, Kent's next two job changes gave him increasing responsibility and seniority with each move.
It was around this time when Kent began to become interested in open-source. But, working a full-time job and then going home to work on open-source projects is incredibly draining. That was Kent's main draw to his next job at Paypal. They gave him the freedom to work on open-source during work hours. He also hosted workshops for Paypal's engineers.
Testing JavaScript was Kent's huge breakout. It gave an enormous amount of value to many people, which translated into earning more than half of his PayPal salary in the first month of its release! Kent was able to quit his job at Paypal and now works for himself full-time as an educator.
Transcript
Michael Chan:
Hey, Kent.
Kent C. Dodds:
Hey, what's up, Michael?
Michael Chan:
I'm super excited about kicking this podcast series off. And to do that, I just wanted to get a better sense of your history as an instructor, as a developer, as an educator, everything you've been doing, open sourcer, or whatever the cool term is for that now.
Michael Chan:
You've done so much, and I know a lot of people might be coming to Epic React without a knowledge of you. And I wanted to just dive in first and foremost, to provide a lot of that context upfront before we do the later episodes where we talk about the specifics of career building. How does that sound to you?
Kent C. Dodds:
Yeah, that's great. I definitely want to make sure that people have a good understanding of the best way to go through not only the Epic React material, but this podcast, and zoom out from the React stuff, and just how to think about writing applications, and making the world a better place.
Michael Chan:
I love it. I love it.
Kent C. Dodds:
I'm excited.
Michael Chan:
Cool. So, I guess the first thing is just going way back. When was the first moment the light bulb went off, and you were like, "You know what, I think future Kent might be into something technical?"
Kent C. Dodds:
Yeah. It's difficult to pinpoint an exact moment. But there's definitely a series of things that happened that made me interested in the software side, like programming. Honestly, a little bit, I dragged my feet a little bit like, "No, I'm not going to be a programmer." There's a bit of a history, so I'll just get into that. I'm not one of those people who was like, "Yeah, when I was three years old, I was writing my first HTML page."
Michael Chan:
I've met kids like that at meetups, and it's still weird to me.
Kent C. Dodds:
Yeah. I did have a friend when I was teenager who was really into programming. And I remember he was making a game, and he was going to have it run on a server, and just making millions of dollars, and passive income kind of thing. And I was trying to get in on it somehow. And so, he was like, "Okay. Well, I'll teach you how to program." And he said, "Here's a string." Or he said, "This is a Boolean."
Kent C. Dodds:
And I was like, "All right, true, false, whatever." Here's a number. I was like, "Okay, I get that." And then, he said, "Here's a string." And I just didn't understand, it did not make sense to me. I don't know why. At this point, I have the curse of knowledge now. I don't remember why it was so hard for me to grasp, but I just didn't get it.
Kent C. Dodds:
And so, I was like, "All right, you go do the programming thing. I'll do something else. I'll go into marketing or something." I don't know. Eventually, I did do an HTML page. And I think I had a Myspace page. So, I did a little bit of copy paste of CSS and stuff, but I never really got into anything as a kid. When I was a kid, actually, I wanted to be a video editor.
Kent C. Dodds:
So, if you look around a little bit, you can find a ton of the old videos that I made, Kent Dodds Productions on YouTube. I have one video on there that got... it was picture bringing up MS Paint, and drawing a circle like a smiley face. And then, when you draw the circle for the mouth, don't let go, and just hold it there, and then move the mouse up and down. And it looks like it's talking.
Kent C. Dodds:
So, that's what it was, and it was to a song. I made several of these. And the one that got really popular was Boulevard of Broken Dreams by-
Michael Chan:
Yes. I see those.
Kent C. Dodds:
Yeah. So, somebody actually downloaded that and re uploaded it to their own thing. And that video got four million views.
Michael Chan:
Holy cow, are you serious?
Kent C. Dodds:
Yeah, yeah. I got it taken down. I had mixed feelings about it. But enough people told me that I should take it down, and I did. And now, my version only has a couple 100,000 or something like that. But anyway, so that's what I wanted to do. I always wanted to be-
Michael Chan:
Just wondering smiley face videos all day.
Kent C. Dodds:
That's right. Yeah.
Michael Chan:
Epic top 40, what are the most popular songs?
Kent C. Dodds:
Yeah. I did make another one pretty recently because somebody reimplemented Paint in the browser, and I was like, "Oh, snap, I got to try this again." So, I made another one. But yeah, I knew I wanted to get into computers. That was a given for me, but going into programming them, I'd pretty much decided that wasn't going to be a thing for me. I do remember doing StarCraft custom campaigns, or Age of Empires and stuff.
Kent C. Dodds:
And making these custom campaigns, a little bit of the programming. That was really interesting to me, fun making the characters do these different things, and say whatever. And so, there was a little bit of that, but yeah. Actually, programming for a career was never really a big thing for me as a kid. So, when I went into college, I was deciding what I should major in, or what I should start out as my major.
Kent C. Dodds:
And I decided electrical engineering because that was what my brother did. I was super into computers. And my brother said when you get a degree in electrical engineering, you can do anything with computers. And so, if you want to do video editing, that's fine. I don't think that's entirely true. If I wanted to be a video editor, I don't think electrical engineering would've got me there.
Michael Chan:
It's so funny because I've talked with so many people who transition into programming from electrical engineering. So, somewhere wires got crossed, and everyone was like, "No matter what you want to do in life, electrical engineering is the path."
Kent C. Dodds:
It will get you there. Yeah. It didn't work out for me though, because, so what ended up happening was I did that first semester. And to get into electrical engineering, you had a couple programming classes, and computer systems, and stuff. So, I had two programming classes. One was Java. The other one was computer systems. So, we learned about transistors, and really low-level stuff.
Kent C. Dodds:
I wrote a little, very small CLI app in zeros and ones, it just added two numbers together. That was not fun. That low level, I just had a really hard time seeing the practical application. And so, in my Java class, I did okay. I even tutored, and stuff to help other people out, but it was not something I thought, "I think I want to spend every day writing code for eight hours." It sounded the worst thing ever.
Kent C. Dodds:
So, when I went on my mission for two years, mission for my church, and came back, I decided to like, "Okay, I'm going to stick with electrical engineering until I find out what I'm going to do instead." And I took a math class, a refresher class, and I did so bad, super bad in that. It's been two years since I've done any schooling of any kind, but I didn't think that I should be that bad.
Kent C. Dodds:
And honestly, when I was in high school, I had to take calculus, but I had a free period, and I used that free period to go to a second calculus class. So, I went to my teacher's calculus class twice. And I just struggled so hard, but I worked my rear end off, and I did some really, actually, some fun stuff with my calculus. What I learned from calculus in some of my videos, yeah, I just worked my rear end off.
Kent C. Dodds:
It was not natural for me, and I was like, "I don't want to work this hard. I don't I don't even enjoy it that much." So, I just thought, "Okay, if math doesn't work for me, then doing some engineering thing is probably not going to be great." So, I bounced around a bunch of majors, ended up in accounting. And luckily, after that first class, I thought, "Oh, I could do accounting." And then, that second class just like, "Nope, no way."
Michael Chan:
What was it? Do you remember what it was that you were like, "Accounting is not for me?"
Kent C. Dodds:
It just was so dull. It was so like, debits, and credits, and all of the tax law, and just so dull. My dad is an accountant. Well, he retired a few years ago, but he was a CPA. It's so dull. He enjoyed it. There are people who enjoy it. I'm glad they exist, because I have an accountant. And if people didn't enjoy it, then I'd have to pay them more, I guess. It's just like-
Michael Chan:
It seems to work for people who love to balance things. Like, "I want to see these numbers equal zero at the end of the day." And for those type of personality, it's so, so satisfying.
Kent C. Dodds:
Yeah, yeah, yeah. No, it's not me. So, luckily, in starting on my path to accounting, I had to switch my major to the business school. And to get into the business school, you have to take in information systems class. And that, we were doing Excel, we did HTML and CSS thing. And we were doing macros in Excel and stuff.
Kent C. Dodds:
That was like, "Oh, okay, so programming isn't just about writing compilers and link to lists and stuff." There's actually stuff you can do. You can make the computer solve a problem for you. And so, I thought, "All right, luckily, I've taken all the classes I need to get into the business school now. I'm just going to switch which business programming." And I went over to information systems.
Kent C. Dodds:
And right when I got into the program, I got into this job where I worked on uploading videos to YouTube, and I had to rip these DVDs, and upload them to YouTube all legal and everything. And the process of doing that was so boring. You're sticking in this DVD, you're going to handbrake, you rip the DVD, you get that file, you put it up on YouTube, you got to type in all this stuff.
Kent C. Dodds:
And where we were actually getting these videos is from my church, they gave us permission to put these things up on YouTube. And they had all of these videos already on their website. And so, I could just say, "Okay." Well, actually, this is getting ahead of myself. So, I actually first wrote a little Java program that generated scripts for the handbrake CLI.
Kent C. Dodds:
And so, all that I had to do was put the DVDs in, and it would automatically go from DVD to YouTube. And so, I sped that up a lot. Yeah, it was great. It was way faster. And actually, what I did was I'd copy all the DVD files to the disk. And then, I just pointed my program at that directory. And so, I could spend all my time just getting things copied, boom, boom, boom, boom, boom.
Kent C. Dodds:
And then, hit my program, and it would go really fast. It was awesome. And so, I learned a lot about interacting with the CLI, and interacting with YouTube API. And then, I found out that all these videos are already on the church's website. And they've already done all the SEO, and titles, and everything for me. So, I just scraped the website, downloaded the videos, and uploaded with the same title, the same keywords, and everything.
Kent C. Dodds:
And that was awesome. That was when it switched from programming as a chore to programming is a tool. And I was still not convinced I wanted to be a programmer, but it started to make sense to me that programming could be a thing that it could be a tool that I could use to enhance whatever it is that I'm trying to do.
Michael Chan:
I love that. Now, we might be getting ahead of ourselves a little bit, but I have to ask. You automate this entire system, now, you don't even have to be the human who puts the DVD in the tray to rip it. At that point, do you take on more work, or do you just go outside, and skate, well, like DVDs coming from the website to YouTube?
Kent C. Dodds:
Yeah. Well, so I was so grateful for my manager who said that I could do this. And as it happens, I think I probably spent an equal amount of time programming it, and having the computer do it as I would have if I've just done it myself. But one of those is more fun than the other. And so, while the computer was running my program, I would enhance it, and add more features, and make it easier.
Kent C. Dodds:
I wasn't planning on staying at this company forever. I wanted them to be able to use it after I left. I even actually presented this program to the board of directors for this, it was a nonprofit, all the donors, and stuff, and I got all dressed up and stuff. It was awesome. Yeah. That was a really proud moment for me, like look at this thing that I created. And I'm just an intern. I don't know what I'm doing. It was pretty awesome.
Michael Chan:
So, you have that success, and then what opens up in you at that point? You've been able to automate this thing. You've built some tools for that. And you said you're not quite in that programmer mindset yet. But what are you thinking, like, "Okay, well, that was actually fun," what is the next step look like?
Kent C. Dodds:
Yeah. So, this is what I mean when I say I was dragging my feet into programming because I was just so convinced that I didn't want to sit in front of a computer and program for eight hours every day. But I didn't stop to think that dude, that is literally what you're doing at this job. You spend all of your time programming, and if you didn't like it, then you would not do it so much.
Kent C. Dodds:
They didn't ask me to do this thing. I was not convinced that's what I wanted to do. And so, through a series of interesting events that I'm not going to go through in our conversation, I got an internship at my church. So, the very entity that I was pulling all these videos from, but that's not why they hired me. They had no idea that I had been doing that, or at least not this organization that hired me.
Kent C. Dodds:
But I got this internship to be a business intelligence engineer because I thought that would be really interesting. I remember talking to one of the hiring managers, and I was just like, "I think I could sit in front of Excel all day. And just like, numbers and whatever." And like, "No, no, that is not true." I may have thought that if myself, but that is not true.
Kent C. Dodds:
So, I enjoyed making macros, and stuff, and making these numbers go, but yeah. So, I do this business intelligence engineer thing, and I'm learning about ETLs, and all this star schema, and all this stuff, database level stuff. And at some point, in that internship, the guy who'd been assigned to guide me, my mentor, I guess. He said, "Hey, Kent, I wrote this Java program that sends out these reports to people based on these reports that we generate.
Kent C. Dodds:
So, it just automatically emails the report, so they don't have to go and check it themselves. I need to make a couple changes, and you know Java, right?" I'm like, "Yeah, sure. I can do that." And so, I do, and I fix this bug or whatever. And I'm like, "Huh, that was interesting. What if we added this feature? And then, what if we added this, and then what?"
Kent C. Dodds:
And pretty soon, my entire internship was just working on this little tool. And when I was done with that internship, I was pretty much exclusively on that tool. And I remember my manager was like, "Hey, don't you want to do some business intelligence stuff?" He's thinking of me, and what I want to get out of my internship, and I was like, "Not really." God, I'm liking this.
Kent C. Dodds:
So, I think that's around the time where I started to think, "I think programming is fun. I want to do this." And so, I eventually shifted from there to Domo in a QA automation engineer type role. I did no testing there whatsoever, actually. I never got off the ground before they stole me over into the UI team where I learned JavaScript. And that was when it was solidified for me.
Kent C. Dodds:
So, I've been spending all this time doing Java, and it was fun. But when I came up to JavaScript, the whole game changed. It was so much easier for me to do stuff with JavaScript than it ever had been with Java. And I was like, "Wow. So, I can have the fun, and satisfaction that I have with Java, and get that easier with JavaScript." And not only that, but I can do... I'd been doing Java Swing UIs, and stuff, and not easy to do that stuff.
Kent C. Dodds:
But like JavaScript, that's for the browser, I can make this thing, I can put it on the internet, I can send it to my family, and they can use this. Whereas with Java, just making a dot exe file, so I could have it installable is such a pain. But this, you just go to this URL, and boom, it's there. And my feedback cycle is so much faster. Everything was better for me with JavaScript. And so, that was when I was like, "Yep, I'm going to be a programmer. This is what I'm going to do."
Michael Chan:
Now, around what era of JavaScript was this? Because JavaScript just have a lot of phases. So, just for completeness, what does JavaScript look like at this point where you see it, and you're like, "This is it, this is the future?"
Kent C. Dodds:
Yeah, yeah. So, this was 2012. It was the fall of 2012 is when I made this switch. And so, we were doing Backbone and require JS. And so, we weren't quite like Vanilla stuff. I know tons of companies were still doing Vanilla, and server rendered everything. We were 100% client side. Well, yeah, mostly client-side stuff, and interacting with APIs, and stuff.
Kent C. Dodds:
So, I think Domo was pretty forward thinking for its time. At that time, that was not really as common. But yeah, so we were all over on Backbone, and it was maybe a year, maybe a little less than a year before we started to investigate AngularJS, good times in those earlier days.
Michael Chan:
Yeah. It's so funny, I think the industry right now is such a different JavaScript than what you and I came up in. There was a lot of Vanilla JavaScript. There's a lot of jQuery. Backbone was the first maybe frameworky thing that we had seen, but it was tiny. And it basically required that you use jQuery for a lot of stuff anyway. But Require was pretty cool, because now, you could import scripts.
Kent C. Dodds:
Yeah, yeah, you got modules now.
Michael Chan:
Yeah. It felt like a first-class programming language, instead of just this browser scripting thing. But Angular, you mentioned Angular, that felt like maybe one of the first real frameworks, ground up frameworks for the web. So, tell me about your transition into Angular, and I know you had a podcast, Angular Air. What did that time for Kent look like?
Kent C. Dodds:
Yeah. So, I've been working at Domo for a while, and this was still part time, 20 hours a week while I was still in school. And before I signed on with Domo, I'd already gotten an internship signed for the summer at USAA in Texas, San Antonio.
Michael Chan:
They have some cool tech.
Kent C. Dodds:
Yeah, yeah.
Michael Chan:
Some really cool tech.
Kent C. Dodds:
Yeah, yeah. They like to brag about how they're the first ones to create the deposit, mobile deposit. Yeah. Which is cool, that was really cool. But that literally, every time I heard them do a sales pitch for themselves, it was always like, "Well, we were the first ones to do..." it got old after a while. But yeah.
Michael Chan:
It was like one trick.
Kent C. Dodds:
Yeah. They do have lots of cool stuff. And I had an awesome experience there. But that was where I learned that maybe big enterprise is not my thing. Because I spent most of my internship, just getting my system running, my computer working on their infrastructure. And we were transitioning away from something that their own engineers had built, some framework.
Kent C. Dodds:
We were transitioning from that to Wicket, which is a Java framework that, and this is like a UI frontend, UI stuff. But it was Java that was already 10 years old, and was seeing a downturn in usefulness in the world. And at an age where frameworks like Angular are starting to come up, and they were jumping on the train that's going down.
Kent C. Dodds:
And so, it just moved way too slow, especially coming from a startup like Domo. I was just like, "No, this is not my scene, as fun as it was, and as awesome of a company they are." And so, during that time, I was nervous that I was going to become irrelevant because everybody had Domo, right before I left, it was the week before I left, we had this workshop that one of the employees, Dave Geddes, people may know him.
Kent C. Dodds:
He gave this workshop about AngularJS. And I was like, "Wow, this is really interesting, really cool." And so, the whole summer, after I finished at work, I was working on side projects with AngularJS. And I was reading books about AngularJS. At the time, there's like, I should say book about AngularJS. But it was like an O'Reilly book by the creator [inaudible 00:20:19].
Kent C. Dodds:
And yeah, just learning as much as I could about... and actually, I think that was literally the last book I've ever read. I don't read books anymore. But yeah, so that was a pretty interesting summer because I spent my day just fighting the red tape. And then, my evenings, trying to keep myself relevant so that when I went back, I'd have my old job back. But yeah, fun times.
Michael Chan:
Interesting. Now, I know a lot of people feel that tension quite a bit. Because they have job that they're super grateful to have. But the technology is not exciting. So, it's like you're just punching a timecard during the day, and then on evenings and weekends, they're really filling their brain with the thing that excites them, and the thing that is moving forward. So, is that how you got into JavaScript Air, and podcasting, or video casting, or whatever it was? I know it was a live show.
Kent C. Dodds:
Yeah, yeah. So, I got back to Domo, we were all moving over to AngularJS. I finally graduated and got a fulltime job. That whole story is really fun. I've got a blog post that has a lot more of this context. But you can check that out later. But yeah, so I was only at Domo for a short while before I got hired over at another company, and just really started getting into the Angular thing.
Kent C. Dodds:
I started working at, or producing videos for egghead all about Angular. And yeah, just really getting involved in the Angular community. And so, at some point, Todd Motto and I started talking a lot. He's still very big into the Angular scene. And I just thought, it'd be cool if we could do some sort of talk. At the time, Google Hangouts was a big thing.
Kent C. Dodds:
And they had just released hangouts on air, I think. And I said, "Well, what if we did hangouts on air, so stream to YouTube, and you and I could just talk about Angular stuff?" And he's like, "Yeah, sure. Let's do it." So, we didn't expect that to turn into a podcast. It was just going to be this YouTube thing. And we've already announced that we're going to do this thing.
Kent C. Dodds:
We're getting ready to do our first show. And my buddy Aaron Frost is like, "Dude, for your first show, you can't just have like, John Lindquist," was our first guest. He's like, "You want the Angular team." And so, he got us hooked up with the Angular team for episode zero, and it was awesome. It went really well. And so, that first day, I was like, "I think we should make this a podcast."
Kent C. Dodds:
And so, I took the audio, and I put it out on a podcast, and it became, I'm pretty sure it was and probably still is the most popular Angular podcast right now. Yeah. It may be behind Adventures in Angular. I'm not sure because he's got an empire. But yeah, it was a pretty big deal. It was a lot of fun.
Michael Chan:
That's awesome. So, what did you learn from that experience? Or actually, how long did you run Angular Air for?
Kent C. Dodds:
Just about a year.
Michael Chan:
A Year.
Kent C. Dodds:
Yeah. Because when I started it, it was a couple months after I've graduated. And then it was about a year after that that I switched over to PayPal. And when I went to PayPal, I switched to React. So, yeah, I didn't want to run the Angular show when I'd switched over to React already.
Michael Chan:
I remember a transition where you transitioned it from Angular Air to JavaScript Air. Was that around the same time?
Kent C. Dodds:
Yeah. So, I decided, I had a sizable panel of people who were helping with the show, and it was awesome. And they still wanted it to go. So, I was like, "Well, here you go, let me just hand it off to you. And you can keep it running." It's still going, as far as I know. I'm pretty sure it's still going. I still wanted to podcast. I enjoyed it. I just didn't want to do the Angular side.
Kent C. Dodds:
And so, I thought, "Well, I'm switching over to React, maybe I should do React Air." But I was like, "I don't know, maybe I'm not going to be with React forever." And honestly, the thing with React is that as much material as there is, clearly, React's podcast has got never ending source of material. I wanted to go bigger than that. And so, that's when I decided let's do JavaScript Air.
Kent C. Dodds:
And so, I started JavaScript Air, I got a panel of really awesome people. The last episode that I was a host of on Angular Air, we made this big announcement. Kyle Simpson was on there as a guest, and he was going to be a panelist for JavaScript Air. So, we announced it together. And then, for the first episode of JavaScript Air, which I think was the very next week, I had Brendan Eich on. So, started with the creator of JavaScript.
Michael Chan:
Crazy.
Kent C. Dodds:
It was awesome. Yeah. And then, at the end, I think that ran for about a year, somewhere around a year. And then, I decided to sunset that as well. I didn't feel like anybody really was the one that should take it. And so, I just sunset it completely. And we ended, our last episode was with Brendan Eich as well. So, it was a nice book end.
Kent C. Dodds:
So, that one is good. And there are lots of those episodes that are still very relevant today. So, podcasting was always a pretty big thing for me, and I still podcast. So, I have this little three-minute podcast. I know you use Briefs.fm sometimes. Yeah. I haven't been super involved on that recently. But I still do sometimes.
Michael Chan:
I love that format, though.
Kent C. Dodds:
Yeah, yeah. Three-minute podcast is awesome. Yeah. So, yeah, I still do that occasionally. And then, I have the Chats with Kent podcasts that I really enjoy. I do that as a seasonal batch of episodes. So, yeah, podcasting has always been a big thing. And mostly has motivated all the way from the beginning with Todd. It was I want to chat with people about tech stuff.
Kent C. Dodds:
And so, that's where my whole desire for podcasting comes from. I remember listening to other podcasts, and I'm in the car, and they're saying something, and I just start talking to them. And I promise I am okay in the head, but it was just like, "I want to participate in this conversation. I have things to say." And so, that's what motivated the podcasting.
Michael Chan:
Well, I really like the, I guess, not the final form. I'm sure that it will take on other forms in the future, but I really like where you landed on right now. The Chats with Kent format is really great. They're really consumable, like 30-minute episodes on a very focused topic. I think it's pretty great.
Kent C. Dodds:
Thank you. I enjoy it.
Michael Chan:
So, you mentioned at this point in your career, you are now at PayPal, which is a pretty big name. And I was actually surprised to find out that at this point, you were already on the React train. Because as you had mentioned before, big companies move pretty slowly with technology. And so, a company as big as PayPal to be on something that was probably only a couple years old, at that point, at least in the public space is pretty impressive. So, what did you find there as you were coming into PayPal and React?
Kent C. Dodds:
Yeah. So, around this time, I had already been super involved in open source stuff, and really interested in making sure that wherever I work cares about open source. USAA, I never felt was super involved in that. It was just a thing that happens, and we do our own thing, not invented here syndrome kind of thing. But PayPal has always been way into the open source thing.
Kent C. Dodds:
And I want to be fair, I'm sure there are plenty people at USAA who are awesome developers. I know that they use React, they use Angular, they're doing open source. But PayPal has always been, they were the first large company to adapt Node. They made Node a real... and in fact, they're really into Node, they do a lot of stuff. They're on committees and stuff like that.
Kent C. Dodds:
So, even before I even thought about working at PayPal, that attracted me to PayPal. I was like, "Wow, that's really cool that they're so forward thinking about this new Node JavaScript thing." And then, I fell upon the team that was just starting using React. And I don't think that I would have been interested, except for that, that reason.
Kent C. Dodds:
Because at this point in my career, I was really interested in getting into React. And I talked to my boss, and he was like, "Yeah, well, we just really can't get you some React stuff. We've got this admin portal. It's all in Angular, you build it Kent." And like, "I can't give you time to just rewrite the whole thing in React." And I totally respect that, it would not have made business sense to do that.
Kent C. Dodds:
And so, I was like, "Well, that business sense is not going to have me anymore. I want to go move on to the latest stuff." And so, yeah, anyway, I ended up on the cross-border transactions, sending money to friends across the seas, team at PayPal. First team really using React. They were using Redux, and all the latest web pack, and all that fun stuff. Yeah. I was hesitant because I was like, "Oh, no, big company."
Kent C. Dodds:
But it was very different, a very different experience, where I felt like I was given the autonomy to do the stuff that I wanted to do. I could use the open source projects I wanted to use. I didn't have to get some sign-off thing. They were using GitHub enterprise, and they were using all of the tools that I was used to in working with my open source stuff.
Kent C. Dodds:
And because they're so into open source, they gave me a lot of freedom to be able to do a lot of open source stuff. They were also not threatened by my presence in the community. And they were happy to have me go to conferences, and the podcasts, and everything else that I was doing. They were more than happy to give me the time to do those things. So, it ended up being a really good thing for both of us. I did a lot of really cool stuff that PayPal.
Michael Chan:
Yeah, no. I know we'll dive into a lot of the work that you did in later episodes, but it feels like at least from what I know of your story, that this was a very formative time, and that freedom was super formative for you. Because it allowed you the opportunity to start teaching in a local way, and then expanding that out to teaching in a more global community way.
Kent C. Dodds:
Yeah. I already started doing lots of that. I was really fortunate, and that the company I'd worked at before PayPal called Alianza, and my boss was the CTO, it's pretty flat small company. And when I got hired on there, I was like, "Hey, listen, I've got this conference that I'm scheduled to go to. Oh, yeah, I didn't realize this, but it's actually overseas. It's in Sweden."
Kent C. Dodds:
And they're like, "Yeah, cool. We'll pay for you to..." because actually, the conference didn't pay for my flight. So, they paid for me to fly out there. Because frankly, I provided a ridiculous amount of value to that company. And so, they were really, really happy to keep me happy.
Kent C. Dodds:
And they even got a foosball table because I said I'd quit. I was being facetious, but we were pushing a really hard delivery before Christmas and stuff. And I was like, "If I get back after the New Year, and we don't have a foosball table that I'm out." And so, they got one.
Michael Chan:
I love this theme of knowing your own value, and being like, "Hey, if you want me, if you want this, you got to take all of it. And that requires a foosball table. Deal with it."
Kent C. Dodds:
Yeah, yeah. When my kids are older, and tall enough to not get smacked in the face by the foosball sticks, then we're going to get a foosball table. But of course, I was joking. I wouldn't have quit. I'm not that pretentious. But anyway, I was already speaking internationally. I actually started making ACAD videos to companies before that.
Kent C. Dodds:
And so, like Domo. I'd been two months out of school before I started doing ACAD stuff. And so, I always really enjoyed the teaching aspect. But what was cool about PayPal, and specifically, was that they not only allowed me to do this extra stuff on the side, but they also had a huge amount of engineers who wanted to learn from me.
Kent C. Dodds:
And what that meant was PayPal was more than happy to have me work on workshop material during like, well, I was on the clock because I would take that, and I would deliver it to their engineers, giving them a silly amount of value. At companies, I can charge 25 grand for a workshop for them. And so, yeah, I was saving them tons of money, and giving them huge amounts of value for this workshop stuff.
Kent C. Dodds:
So, when I was at PayPal, I split my time doing PayPal open source stuff, PayPal product stuff, PayPal infrastructure stuff, and teaching PayPal engineers. And then, lots of that was just all going back into my head of different things that I could teach, and different things that I can open source. It just turned into this machine that PayPal got rolling because of the freedom, and autonomy that they gave me, which I can't thank them enough for that.
Kent C. Dodds:
I was able to give them so much value for the things that I produced there. I may not have been the best product engineer. I didn't make all the widgets, and whatever. I definitely helped in several products at PayPal, but I was the one that helped get all of our tooling on the same page. I got everybody's understanding of how to build React applications, and how to test those applications, how to adapt the new ES6 syntax that was coming out, all of that stuff.
Kent C. Dodds:
That was more of the role that I gave myself at PayPal. They never asked me to do any of those things. But I was like, "This is how I can make my time at PayPal the most effective," and it worked out really well.
Michael Chan:
That's awesome. When you left PayPal, you started doing content creation workshops, all that stuff. And your first, at least from what I know from the outside, your first real breakout success was testing JavaScript. And you mentioned that being one of the things that you had helped integrate at PayPal, and developed the patterns around. Is that experience part of the inspiration for that course? And then, how is it kind of augmented by other things that you learned?
Kent C. Dodds:
Testing JavaScript was a huge breakout. I had no idea how successful testing JavaScript would be. I saw it as like, "Well, let's take eight courses that I make on egghead, and combine that. And that will be what testing JavaScript is." Which by itself is enormous. But this was way beyond that. So, yeah, where testing JavaScript came from was I had all of this material and testing.
Kent C. Dodds:
I developed some opinions about testing, mostly from my open source stuff. I started creating these open source libraries, people started using them, people started contributing to them. And I wanted to be able to release those without worrying about breaking stuff. And so, to do that effectively, you either have to pull all the changes down, run through your... I had a page that used all the features or whatever.
Kent C. Dodds:
And I'd manually test that. I was like, "This is not going to work. I'm not going to do this." So, I learned about automated testing, and that's how I got into it. And the more you do it, the more opinions you develop about it. It's just based on experience. And so, when I was at PayPal, well, this is all the way back at Domo that I started doing that.
Kent C. Dodds:
And so, then at every company I went to, I added a bunch of tests. And I started developing opinions on good tests versus tests that are less good. I don't want to say bad tests. But yeah, some tests are actually really bad. So, I guess I'll say bad test.
Michael Chan:
Brittle or fragile tests.
Kent C. Dodds:
Yeah, yeah, exactly. Tests that are worthless, or worse than worthless. Yeah. Gives you a false sense of security. So, anyway, so I developed these opinions. And I was using all these tools. I've used every test runner that leading up until just where I realized, "Okay, this is the thing." And actually, I used the previous Jest, which was not the thing. It was so bad.
Kent C. Dodds:
And then, Kristoff just came in and changed everything and made it amazing. And now, it's the thing. So, I just developed all these opinions. I was like, "I'm going to encode these ideas, and opinions into a workshop so I can teach my co-workers so that they can also experience the sweet joy that is useful tests, tests that give you confidence."
Kent C. Dodds:
And that workshop ended up being split into a couple workshops. And then, I had even more. And eventually, I have this tendency, or I used to, I've learned now, but I had this tendency to say, "I can teach this world of material in a single day workshop." I took that and split it up into eight workshops. And once I had that, then I started teaching that outside of PayPal.
Kent C. Dodds:
And I taught it for Frontend Masters. I worked with Ryan Florence. He did this Workshop.me thing. And so, I started teaching that elsewhere. I taught it at a conference. And eventually, I was like, "Hey, Joel, at egghead, I want to make a course out of this stuff, but it's more than just one course. It's several." And he said, "Hey, I've got an idea. How about we just do your own thing, and we'll do all our normal stuff that we do, except we'll make it a special website just for you."
Kent C. Dodds:
And I said, "Okay, that sounds cool. It sounds awesome, actually. You'd do all the normal stuff that you do, we both do the normal things that we do, except we're just going to do it on a different domain." And so, even all the videos and everything are hosted on egghead infrastructure, everything is the same. And so, the only reason that worked out was because it was just so much material.
Kent C. Dodds:
And so, I worked on this in the evenings for months, and of course, I've been working on the workshop material for months. This is years of work, of developing his opinions, and then encoding those into workshops, and then recording those into these videos. And then, finally, we get it published on testingjavascript.com. We launched, and in just a couple of weeks, I double my PayPal salary.
Kent C. Dodds:
I make twice my PayPal salary in the first month. And so, I'm just like, "Whoa, wait a second." And this isn't just like we're charging through the nose for a Toyota Camry or something. This is the premium package. You want to learn testing. This is the place to do it. And you're going to increase your salary because of the things that you learn. So many people have told me they got a raise, or they got a promotion, or they change jobs because of what they learned.
Kent C. Dodds:
So, this was an enormous amount of value that I gave to a huge number of people. And I just, for some reason, hadn't considered that translated into more than twice my PayPal salary. And that was just like in the launch, and then there's the long tail. The launch is where you make most of the money, but then there's a long tail of people who sign on later.
Kent C. Dodds:
And I realized then that like, "Oh, I guess I don't need my PayPal salary anymore. I can just do this all the time, instead of killing myself every night for a couple months." And sacrifices on my wife's part, my kids. Of course, I wouldn't do this until after the kids go to bed. I couldn't do it because they're too loud. So, I had to wait until the kids go to bed.
Kent C. Dodds:
But I wanted to hang out with my wife, and I wanted to just take a bath, or something. I wasn't able to do that during this time. And so, I was like, "If I just do this all the time full time, then I don't have to do this in the evenings." Even before testing JavaScript, I'd actually started thinking, "Maybe I could do this thing full time. This testing JavaScript is probably going to, I think it is going to do okay.
Kent C. Dodds:
And so, if it does well, then I might be able to ditch my PayPal salary, and just do this full time." And so, that's in the back of my mind, we launched this thing, it explodes, and like, "Yep, I'm gone." As soon as my PayPal stock invests, then I'm out. And that's what happened.
Michael Chan:
I love that. I love that. And so, that's where you went into full-time content creation, course creation, education workshops, and all that. Which brings us to now, the Epic React Podcast. And I think this is probably maybe a good place to close for today.
Michael Chan:
Because over the rest of the episodes, we're going to talk about the role of open source, how to stay relevant, what to look for in your job, open source, all that stuff in the episodes to come, and how that relates to React, and everyone's career. So, I am excited to talk to you about all of that in the next one.
Kent C. Dodds:
Excited about it as well. I think it's going to be a good time.
Michael Chan:
All right. See, you Kent.
Kent C. Dodds:
See you.