Developer Tea

Interview w/ Michael Chan (pt. 2)

Episode Summary

Today's episode of developer Tea is a personal episode with Michael Chan and today we're digging into faith, life and difficult situations. I challenge you as you're listening to part 1 of this week's two-part episode is to ask yourself how you would answer these same questions. Check out more about Michael Chan via his Twitter profile: @chantastic

Episode Notes

Today's episode of developer Tea is a personal episode with Michael Chan and today we're digging into faith, life and difficult situations. I challenge you as you're listening to part 2 of this week's two-part episode is to ask yourself how you would answer these same questions.

Check out more about Michael Chan via his Twitter profile: @chantastic

Today's Episode is Brought To you by: Linode

Instantly deploy and manage an SSD server in the Linode Cloud. Get a server running in seconds with your choice of Linux distro, resources, and node location. Developer Tea listeners can get a $20 credit and try it out for free when you visit: linode.com/developertea and use promo code: DeveloperTea2018

P.s. They're also hiring! Visit https://www.linode.com/careers to see what careers are available to you.

Get in touch

If you have questions about today's episode, want to start a conversation about today's topic or just want to let us know if you found this episode valuable I encourage you to join the conversation or start your own on our community platform Spectrum.chat/specfm/developer-tea

🧡 Leave a Review

If you're enjoying the show and want to support the content head over to iTunes and leave a review! It helps other developers discover the show and keep us focused on what matters to you.

Episode Transcription

every one of us, I mean, if you look back, you know, at any one of your heroes, like at a certain point, they knew nothing, right? And they might have been making the same exact mistakes as you or worse. And it's this hero culture that we have. I'm not really sure why. I think it's, it goes beyond web development too. But I just, man, I get excited when people really open up about the struggles that they have had. Because I think that that is what we really want to see. And yeah, we want heroes, we want people to look up to. But I think also like we want some like camaraderie and solidarity. And, you know, it's there, you just kind of have to look for it really hard. That was the voice of Michael Chan. This is part two of my interview with Michael Chan. I'm going to be talking about the story of Michael Chan. If you missed out on the first part, I encourage you to go back and listen to that before you jump into the second part. My name is Jonathan Cottrell, and you're listening to Developer Tea. And my goal on the show is to help driven developers like you connect to your career purpose and do better work so you can have a positive influence on the people around you. And one of the ways that I help you connect to your career purpose is by talking to people like Michael, who are in the industry, they're doing work in the industry. They are struggling with the same kinds of questions that you're struggling with the same, you know, existential crises that all of us eventually have. Why do I do what I do? And they have times where things are not clear, where the future is uncertain. That's true for all of us. And then they have times of triumph. And they have moments where everything seems to be good. And they have moments where everything seems to be good. And they have moments where everything seems to be going in the right direction, or they have an epiphany. And I want to encourage you that regardless of where you are in your career, to listen to this episode, and try to find ways that you can see yourself in Michael or in myself. And you can compare your experiences and try to learn from others experiences from our experiences and do this with any other person. And I want to encourage you to do that. And I want to encourage you to do that. And I want to encourage you to do that. And I want to encourage you to do that. And podcast that you listen to or anytime that you encounter another developer, who is in one of those moments in their career, or even if they're in just a normal time in their career, learning how you can look at your own life, in light of the lives of others and the experiences of others is going to change the way that you think about career development. Let's go ahead and jump into part two of this interview with Michael Chan. Michael Chan When we deal with, and this goes back to what we were talking about previously, that when you view people in light of their pain, that is kind of an odd way, but it ends up equalizing us in some way. Because another kind of trick that my brain has started using, maybe accidentally, is recognizing that even for the people that I hold up as my heroes, there's something that I know that they don't. Michael Chan Yeah. Michael Chan Michael Chan Michael Chan Michael Chan Something, about something, right? And sometimes it could even be about programming. I might know something about JavaScript that some of my Ruby heroes don't. And this is kind of a moment of realization that resources are not endless. And there's also this psychological effect. And if you listen to the show for very long at all, you know I'm going to reference Danny Kahneman in his book, Thinking Fast and Slow. He talks about this exact kind of cognitive bias, but it's called the halo effect. And what the halo effect does is it essentially says, okay, I have a person that is really good. I'm just going to talk about you, Michael. Somebody who knows a lot about React, so much so that they can create teaching materials about the subject. And so therefore, anything else that I imagine you doing, I'm going to kind of approximate that you're going to be as good at those other things as you are at that thing. And it's easy to tear down for obvious things. Like you wouldn't want Einstein to be on your basketball team, right? That's kind of the common example. But I don't know. Maybe I do want Michael to write all of my PHP as well. Maybe I do believe that because you're good at CSS, you could actually sit down and write all of my PHP as well. And I don't know if that's going to work. I don't know. Maybe I do want Michael to write all of my PHP as well. But I don't design a logo and it be world-class. And so we have these kind of inflated perceptions that are a result of this halo effect. And they cause us to, and we don't have the same perceptions of ourselves, obviously, right? So we forget the things that we're good at and we inflate the things that other people are good at naturally, right? This is something we automatically do. And so if we can remind ourselves, and this is kind of like an unbiasing attempt, we can do that. And so we can do that. And so we can do that. And so we can do that. Remind ourselves that we actually are probably, and this isn't like a pride thing. It's not to build yourself up, but it's more of like a reality check. You probably know something that your hero doesn't know. Yeah. That whole thing is so true. And I feel that like every day, every day, I jump on Twitter and I get kind of like immediately sad about the things that I don't know or the things that I don't have an opportunity to try out in my job or, or, or, or, or, or, or, or, or, or, or, or, or, or, or, or, or, or, or, or, or, or, or, or, or, or, or whatever. And I think the, the resources that I've been able to make kind of back to one of your earlier questions have been an exercise for me in not getting stuck in that. And a lot of times, so I made this little thing called react cheat sheet. And it's really funny because a lot of people like, you know, they'll be like, Oh, Hey, thanks for making that. That's awesome. I use it all the time. It helped me out, like kind of helped me distill the concepts. Um, but, I made it for me because I needed a reason to dive into all of the APIs and kind of try to understand them better, um, enough to be able to say what they did. And there's a lot of value in kind of running into the spike and being like, you know what, I don't know this, but I'd like to. So I'm going to do something that, you know, even if it's the worst thing, worst thing ever, uh, I, I have to go through that in order to grow. And I watched, Oh man, I watched this terrible movie. Uh, like I think it's called, um, I, I can't set it up, set it up. And it's, it's a terrible romantic comedy. It's, it's, there's, Oh, it's a Netflix produced comedy, isn't it? Romantic. Yeah. And I've seen the thing. Yeah, absolutely. And I do not recommend it, but I'm going to ruin it for you. So spoiler alert, fast forward a couple of seconds. If you don't want to hear the, um, the big turning point for the, the heroine of the story is that all this time she has like built up in her mind, like what her best work looks like. And she's been unable to produce it because she's not actually like produced anything yet, you know? And so she has this concept of like what she is capable of and what she's supposed to be doing that is totally divorced from reality. And her big moment is when her, friend says, Hey, you, you just need to go and write the shittiest article. Sorry. You need, you need to write the worst article that you can, like, don't worry about quality. You just need to go out there and you need to do it. And, um, and that becomes like a mantra for her. Like, okay, I'm writing the worst, like the worst article on this subject that I could possibly write. And man, that's so freeing. Like those days, I don't know this thing. I'm never going to learn it. And it's like, no, I'm going to write the worst post about promises that have ever been written. And I will learn something even if I get judged, um, judged for it. Yeah, that's so good. I it's, it's very similar to a concept that I learned from, um, I think it was Adam Savage, actually from Mythbusters. Um, and the tested podcast. Um, he talks about, I can't remember exactly what resources is from. It seems like it was on his, uh, on his website. Um, but in a way, it's, it's, it's, it's, it's, it's, it's, it's, it's, it's, it's, it's, it's, it's, it's, he was talking about, uh, teaching his sons, I believe it was his sons, how to craft and how to build things like physical stuff because, uh, you know, his, his claim to fame before Mythbusters was, uh, building sets and stunt, uh, you know, materials for, for movies. Yeah. And so one of his pieces of advice, and it was so profound to me and I haven't forgotten it is to always plan to throw the first one away. And it seems so simple, right? It's like, Oh, well, of course you're going to screw it up, but it's not, it's not just about like allowing for it. It's planning to, so you, you prepare for, for, and that's exactly that same concept of going, go and write the worst thing because it's disposable. It's not, don't attach yourself so, so much to what you're doing. I actually recently bought the materials to buy my son or to make my son a, a little busy board for Christmas. He's 18 months old and he's going to, you know, has little knobs and buttons and stuff. And I remember being in, in the hardware store and looking at the materials and thinking, well, okay, so what do I do? How, how much should I get? And that stuck with me so strongly that I got two of all of the wood. It's like, I can build two of them, but I'm probably going to screw the first one up so bad that I'm going to want to build the second one. That's so funny. That advice is incredible. And I've never heard it, which is surprising, but I have found that I've been living in it. I've been trying really hard to learn how to cook over the past year because I am atrocious in cooking. I could make eggs and that was it. That was basically just so I could survive. I would make eggs. And I have found that in this area where I know absolutely zero, every time I try something, I'm like, I, I just get double of everything. Cause I'm going to try it the night that I do it. And I know that it's going to be terrible. And my kids have told me, they were like, that was the worst broccoli cheddar soup that we have ever had. And then the next day I do it again. And they're like, Hey, that was palatable. And that's excellent. That's so good. That's so good. Yeah, man. That's, that's so true. That's going to stick with me now that, now that you've revealed it to me. There's another mantra. That actually kind of sums it up and it, and it works not just for, you know, having, or I guess crafts, whether that craft is code or not, it doesn't really matter if you, by the way, you can practice that in code too. It's more of a mental mindset, right? Where you, maybe you branch off and you write a bunch of crappy code and that's fine. You're, you're kind of exploring the space. The code is not really the output that you're looking for anyway, right? The code is just kind of like a, you know, a byproduct of the work that you're doing. If you look at the output as, you know, as the ideas coming to fruition finally, right? And the code describes that. And so you have to find those ideas and use like a scratch pad essentially is what it is, is what it boils down to. But the mantra that has really stuck with me that extends also into like, for example, having backups is the idea that two is one and one is none. It's so simple. But if you have a second, anything computer, for example, if you are privileged enough to buy a backup laptop, then the moment that your laptop fails, you already have a plan, right? And you can do this with a lot of things, of course, but this is something that is especially important for developers because let's imagine, for example, that you want a way for your users to reset their passwords. I don't know, some future, and for whatever reason, that user can't follow that pathway. Maybe it's an accessibility problem, right? Maybe it is that they don't have a cell phone, so you can't do a text for authentication. If you always think about a second option, a backup option, another way to think about the problem, even if you don't necessarily implement it, if you have that second pathway, it becomes a much more, usually your first, but it becomes a much more, it becomes a much more, pathway ends up being more thought out. You don't even have to implement the second pathway. The first one, you actually explore it from multiple angles, and it's a new way of thinking about code that is more robust and typically is a little bit more fail-safe. It's kind of a weird mind hack if you think about it that way. Oh, absolutely. I've done a lot of UI development, and I feel like the best thing that I ever did was to start building up from the error state, right? As soon as I found that feature, I knew that, a user wouldn't have an irrecoverable experience. And I think a lot of people don't. I mean, it's not fun, right? As soon as you get a new project, you want to dive in and do all of the fun stuff and push all that gross stuff to the edge. Animation-driven development, something like that. Yeah, absolutely. But yeah, man, it's so true. Starting up from the, the assumption, that you will fail, or that you might, right? Not that you will, but that you might, that you could. That is within the realm of possibility, right? Yeah. Yeah. To my knowledge, people aren't writing, you know, there aren't a lot of people who are writing perfect systems on their first push. Yeah, no, not at all. Man, that is, so that's such a good, I guess, it's kind of a Zen way to think about your code, right? It's less about, you know, what are the features and more about like, trying to approximate the backdrop, like a realistic picture of all of the things that could happen. You know, this actually works out pretty well if you work with things like state machines, for example. I don't know if you've ever worked, I assume you've worked with some kind of state machine. And I actually have a fuzzy understanding of what I'm talking about right now. But, you know, if you, if you, if you think about it, you're not going to be able to do it. You're not going to be able to do it. You're going to be able to do it. You're going to be able to do it. think through all of your cases, is really what I'm, what I'm trying to get at. And you list out those cases in a reasonably detailed way. Now you're creating a situation where, yeah, you don't get into an irrecoverable state. And what's strange about it is, like, it creates a lot of confidence in your code. Yeah, oh, absolutely. And, yeah, I, I think we all want to have that level of confidence, but for whatever reason, it's, it, it's really uncomfortable to plan for the failures. I'm not exactly sure why that is, but yeah, it's something we don't like to do. Yeah, maybe it's something to do with the idea that it's just not desirable. It's not the happy path. It's the thing that we don't want to happen. Unfortunately, as much as we don't want it to happen, it probably will at some point. Yeah, that's one thing that I kind of addressed, at least in some versions of the talk that you mentioned at the beginning of the show was that, now I can't remember the title, hot garbage, clean code is dead. The idea that we don't, we really prize code. And you said yourself, like the code is really not the artifact that we need to be obsessed with. That's just kind of this thing that morphs and changes and will, you know, maybe outlive us. If we, you know, leave teams or leave the company. And that the thing that we need to optimize for is uncertainty to say, we don't know necessarily all the parameters of what we're building. So how do we set up a backstop so that when this, this thing doesn't go the way that we thought it would, we're well prepared to adapt it and to change it and to morph it into the thing that it needs to become? Yeah, I mean, change is the hardest thing for developers to grasp. The future will change things. And this is, you know, this is actually really appropriate timing, I guess, to talk about change, because right now, specifically for React, I'm sure for other things as well, but specifically for React, things are changing pretty rapidly and pretty drastically. Some of the really kind of core ways that people have learned about, you know, how a React component works. Those are essentially, you know, the things that are going to change. And I think that's kind of evolution, evolution, evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution this is such a dividing thing. When we experience change as communities, how can we have, you know, very smart people with really strong opinions and lots of good work under their belts, and you take two of them and they may have wildly different opinions about the direction of this thing, this tool we all use. And I think a lot of it comes down to what we were talking about earlier with that experience that we went through becoming parents and realizing that we are not the hero of this adventure. And I think a lot of people are threatened by things that are, by new ideas that might encroach on the space of the things that they have already mastered. And it's hard for people to kind of become a beginner again. And- Wow. Yeah. I, it's so funny because I had a lot of conversations with people at ReactConf this year where all of these new APIs and thoughts were announced. And a lot of people there, you know, friends of mine were saying like, man, this is such a great time for people to get into React. And it's good to think like that, to think, hey, all of these things make people's lives easier. And it's a good thing. It's a good thing for our community. It's a good thing for people who are just getting in. And that doesn't have to be threatening to us just because we spend a lot of time learning things a certain way. And they're, you know, maybe falling away from favor. Hmm. Yeah. Wow. Well, I think this was actually the original pushback when React started gaining popularity in the first place. I mean, I was a, you know, I did my fair share of jQuery and even before that, my fair share of like MooTools back in the day. And, you know, I built single page apps with those things. And, you know, I remember the, as things came onto the scene, and this is not like back in my day, you know, that's not at all. Instead, it's like, we always have something to fear. We always have something that, you know, we can either see as a threat or we can embrace, and I'm not saying that everything that comes on the scene that's new, we should just accept and blindly, you know, just agree. Right. What I am saying is when you see something that, you know, that makes you have an immediate reaction, I think it's useful to inspect not just the thing that you're reacting to, but the reaction itself. Oh yeah, absolutely. And really kind of dig in for your, for your own good, but also the people around you, that you're making the argument to, because you're changing people's perspectives, whether you know it or not. There's a little bit of a responsibility there as developers for us to take a moment and balance a little bit and say, Hey, you know what? Maybe, maybe the reason that I'm reacting so strongly to hooks, pun intended, is, is that hooks are like a black box to me. I don't get it. And, and I don't like things that I don't understand. Or maybe it's just, I don't know, I don't know. I don't know. I don't know. I don't know. Maybe it's, I feel so strongly about this being the right way, but I don't really know why. I don't know why I feel strongly about it being the right way. I can totally understand hooks, but I don't like them. What, you know, what is it inside of me that, that doesn't like them? It's not that they don't work, right? It's not that somehow this is going to, you know, break all of your code suddenly. And, you know, the React team is not trying to sabotage you, right? Is it about, you know, whatever dog, it can, it can be dogmatic responses and those can be damaging, not just to the community, but to you as a developer. Yeah. It's so important to have, to develop the skill, to be able to examine your feelings and manage your response and know that the feelings that you have are true and they are from you, but they are not immutable. You can manage them and move forward and kind of navigate a path around the way that you feel about a certain, certain situation. And it is, it is one of the hardest things to do, especially when, you know, again, you feel like your, your intelligence is, is being threatened or this, you know, long list of accolades in a certain technology or mindset is, is being threatened or it feels like it's, it's eroding. Um, yeah. And, you know, as much as we like to learn new things, I think that we don't like being in a position where we have to learn new things and kind of, you know, on a certain announcement day feeling behind the gun. Yeah. Yeah. And, and it will change again. Uh, hooks are not permanent, right? Like, uh, it feels like, oh man, this is, this will be here for a while and it probably will be, but it's not permanent. None of this is permanent. Eventually even a surprise react. We'll go away and it may seem distant from now. Um, but it will feel, it will feel fast, right? Um, it'll feel like just yesterday we were talking about how much we hate hooks and now react isn't even around anymore. And I mean, that's okay. And we have to, we have to realize, you know, as developers that we can either look at that and allow it to really unsettle us, whether you're publicly, you know, angry about this on Twitter, or if you're just kind of quietly building resentment for the industry and hating your job, both of those can really hurt you. It can really harm you. And, um, I think, you know, there, there are better ways to, to look at change. And of course I sit here asking everyone to change, but, um, perhaps it's more, it's more a, a moment of just, uh, encouraging people right now that things are okay. Yeah. Um, that, that this is going to be okay. If, if hooks takes off and, you know, everybody starts using them, things are going to be okay. If it doesn't, if it falls apart, if react, uh, the react team abandons it entirely, that's okay. It's going to be okay. Yeah. It's going to be fine. We're going to be okay. We're all still going to show up and help, help users do something amazing. Yeah. That's, that's the goal, right? One of the goals, I suppose. I will say like very specific. Specifically about, you know, react. Um, I think that we have enjoyed a position of only having one construct and react for a really long time, which is, you know, we've only had components for the longest time. And I think that that has given that, that level of focus has given us the opportunity to not necessarily have to choose one way or the other inside of a framework. And, you know, we've had moments, you know, like, uh, hierarchical components versus render props or, or whatever, but at its core, like we've really only ever had functions and components. And one of those is just provided by the language, right? Like you can't even get away from that. Right. Yeah. And I think that, I think that we're growing and react is growing to incorporate certain, you know, needs. And I think that we're starting to experience maybe for, uh, at least in this, this, to this degree, we're experiencing for the first time, this like, oh, well, which one am I supposed to use? Which one should I use? Which one's the best? And it's not really the right question to ask. I think that, you know, as long as we can do the work, whichever one is, you know, best suited for the job that you're doing is, is going to be fine. And sometimes that's just whichever one you want to use, right? Like maybe this, maybe it's as simple as that. And, um, you know, you had this wonderful quote that, uh, you, you tweeted out. Um, it's, uh, and I don't know if it's yours or if it's somebody else's, there are no perfect systems, only virtuous compromises. And this is, this, this, uh, this is really speaks to this idea a lot that, you know, yes, there are reasons to not use hooks. There are reasons to not use view state or whatever thing. Um, just like there's reasons not to use react or there's reasons to just not be a developer at all. Right. Um, but we have these decisions to make in life and in our careers, and we can't always optimize the world the way that we wish we could. And it's, it's a ecosystem. It's, it's beyond, um, you know, a singular way. And this goes back to what we were talking about before, that there are complex realities that we can't reduce about people, about the work we do, about the code that we write, about what it means and what it does. Um, there's so many things that we just can't reduce to a single way. And a lot of times we strive to do that perhaps because our brains want things to be simple and we don't want to have to make those compromises. We don't want to have to, you know, go through the hard work of deciding or the hard work of learning. Yeah. One of my favorite quotes about this is from, uh, a, musical actually, I used to do musical theater and it's from into the woods and it's when Cinderella is on the steps of the palace and, you know, lost her shoe and she's trying to figure out what to do. And her, her big moment in this song is to say that she's deciding not to decide. And that's such a powerful skill to be able to have to say like, you know what, I actually don't have to make a decision about this right now. Um, or maybe ever. So I'm just going to not, uh, kind of, uh, what's disequilibrium, uh, for as long as I can until I absolutely have to make a decision. And then I guess, uh, you know, at that point, hopefully I'll have enough information to be able to make it better than I would make it now. Functional procrastination or something like that. Right. Yeah. It's, it's totally a thing that developers have learned how to do for years and we're no different. Um, people have learned how to do this for years. You delay until you absolutely can't anymore. Yeah. Sometimes you just don't have to make that call. You weren't on the hook for deciding exactly what is right and what is the perfect way. Yeah. You spent all this energy, like hyper-focusing on this one thing that you didn't even have to, you never had to, never had to worry about. And out of this actually springs so much like practical advice. Like for example, you know, one of the things that I did on the show a while back, I guess it was two years now. Um, I did this developer career roadmap and the idea wasn't to be so prescriptive. That's, like, this is the only way, but instead to say, this is a pretty reliable way to build a career. Right. Um, and one of the things that I mentioned is, uh, the idea that, you know, trying to pick just the right language or just picking the right, whatever. And instead of spending time learning those concepts, a lot of people get stuck in this trap of uncertainty where we ping pong between multiple languages and we write a bunch of stuff. And so, you know, you're not going to be able to do that. You're not going to be able to do that. You're not going to be able to do that. You're not going to be able to do that. You're not going to be able to do that. You're not going to be able to do that. You're not going to be able to do that. You're not going to like hello world apps in languages, right? Everyone who has done this, you know exactly what this feels like. And you learn just enough of a language, um, to get to a complex thing. And then you, you read an article about how that language is dying or you go and you look at, you know, those, those charts that talk about the growth. Uh, what is it? The top languages on GitHub and you're, and you think, oh man, maybe I shouldn't learn Java and I should learn Python, or maybe I shouldn't learn Python. I should learn Ruby or maybe I should go with something totally obscure and go and learn Julia and become a data scientist. And then everything starts falling apart. Your entire picture of the world is changed in a moment. Right. And we can stop for a second. We can look at what the history of programming tells us and really kind of rely on one or two kind of established languages and just spend time with them. Right. And so what I encourage people, to do is spend six months before you change, pick one and spend six months with it. That's, that's enough time to go beyond the hello world thing. Right. And you're not investing so much time that your career is going to fall apart because, you know, you spend so much time going in the wrong direction. I can guarantee you that the top 10 or 15 or 20 languages on GitHub, every single one of those has people who have strong careers writing those languages. Absolutely. It's a hard thing to grasp, isn't it? Absolutely. We condition ourselves to ask ourselves the question, like, what did I learn today? And I think it's the wrong question, honestly, especially if you're trying to break into or develop yourself in a career. You should really be asking yourself, what did I make today? And ask yourself that question because you can make anything in any language, right? It might be a little bit more difficult in some, depending on the job that you're trying to do. But like, you can, you can do it. And if you get better about asking yourself, like, what am I producing? What have I like put into the world? What have I hit publish on? What have I deployed? That is, that is a very marketable skill in a land of people who want to be academic about the like nuanced performance differences in these two languages that both end up compiling to the same application. Yeah, yeah. Very few of those people who are, you know, deep, like Ruby scientists, you know, very few of them started out on day one when they said, you know what, I think today, I'm going to start my career as a developer, and I'm choosing Ruby, and I'm going to become the, you know, a world class Ruby tooling expert that understands everything about the internals and, you know, writing C extensions for Ruby. Like, that, that is not the way that careers evolve. Yeah, I mean, mine didn't. I presume yours didn't. So there's two. Yeah, I mean, I, so I guess I've made a, you know, a broad sweeping statement, maybe somebody did do that. But it certainly doesn't, that's not the kind of the recipe, the only working recipe, right? That's, there are other ways to evolve your career. Absolutely. And, you know, you, you get better through failure. And every one of those, it's like, you know, like you said, like breaking the first one or, like ruining the first one. If you keep trying to prevent yourself from having the failures, you're never going to learn anything. You learn every, you learn by kind of trying to take a step and falling and realizing like, oh, I put too much weight on my toes. And then, you know, taking another step and I put too much weight on my heel. And you have to, you have to have those experiences where you tried to build something and realized, you know what, actually, I, I did, in fact, choose the worst possible language to, to build this certain thing. And I would use this one. Right. Yeah. Yeah. And, and there are, I mean, there's, there's boundaries, like there's guidelines, but those are typically easily found. Nobody's going to go and, and, and tell you that you need to become a web developer. And in order to do that, you need to learn assembly. Like that's, that's, that's probably not going to happen. Right. And so, you know, the reasonable guidelines that people are going to give you along the, like that rely on those don't, you know, don't try to, and I think this is something that we are kind of conditioned to do in society in large is, you know, what is the best, what is the thing that is perfect for me? It's this hyper optimization, not just for, you know, what is the general consensus about what is the best, but what is my personal best? What is the thing that, you know, I'm going to enjoy that is perfect for the city that I'm in. That's perfect for the kind of work. I want to do. The community is perfect. All of these things that we're trying to optimize for. And there's no way that we can grasp and optimize for everything all at once. Yeah. The world needs more makers and fewer pedants, I think. And there's no perfect thing. We're never going to find it. And I find that for me, that's just like a delay tactic. And personally, right now, I started this little thing. It's like a 25-day program called React Holiday, where I do like 25 lessons about React that year. Like a little advent thing. And I find that every day, I know that I have to produce some degree of content. And instead of just sitting down and doing that, I start doing it. I'm googling better microphones and USB interfaces. And what's going to be the perfect USB interface for me that's going to really capture the lower mid register of my voice, which feels like it needs to be a little bit warmer, but not heavy. That is a smell for me. I'm like, okay, I'm focusing on something that does not matter at all. YouTube is going to compress all this audio to crap anyway. So, like, it really... Really, really doesn't matter. And I just need to sit down and do the work. Yeah, totally. 100%. And that is, you know, when you find yourself reading reviews or digging through comments for hours, you're probably spending your time in an irrational way, right? It is both a delay tactic, but it's also this kind of fear that when you do sit down to do the work, it will be inadequate in some way. And so, you're kind of trying to stilt it up with something that's not going to work. And so, rather than it standing on its own, you're trying to stilt it up with a better microphone or with the right programming language or whatever the thing is. And a lot of the time, those things are much less powerful than you might think they are. Yeah. My mom says you can't steer a stopped car. The best decision is the one that actually gets you going. Yeah, that's excellent. That's so good. Well, Michael, this has been an enlightening interview and just really enjoyed our discussion tonight. I have a couple of questions for you to kind of end this thing out. Sure. And then we'll wrap up. Let's do it. Okay. So, what is one thing that you do outside of work on a regular basis that you feel like is worth sharing or interesting? Oh, man. I've been trying to be better about exercise. I bought a bike a couple years back, and I would cycle to work in back. And that was a really fun hobby for me or continues to be a really fun hobby for me because it has a gear element to it, which I really like. I like being able to research stuff and, you know, again, not do the thing, but just think about doing the thing better. That has been really fun. I really like cycling. I'm trying to get better at running. One of my goals is to do... To do a triathlon at some point. I'm not even close to that, but I'd like to. That's an intense goal. And one that I think is certainly Valor's. I don't know that I could... I probably could. I'm not in the shape today to even imagine that goal. I suppose I should listen to my own podcast sometimes. You know, they have short ones. It's like a 500-meter swim. Oh, okay. So, like a... And maybe 40-mile bike ride? So, like the junior triathlon kind of thing? Yes. Yeah. That's not as high as I aspire. I think it's not a triathlon in the name. I'll take the shortest one I can get. You can put that sticker on the back of your car and, yeah, that's the ticket. Make 2019 the year that you set up your personal website. You have just a few days left for this special deal from Linode to help you do just that. You can get... You can get the equivalent of four free months on Linode services. That's $20 worth of credit by heading over to linode.com slash developer T and using the code developer T 2018. Of course, that ends at the end of 2018. So, I encourage you to go ahead and head over to linode.com slash developer T and get started today. Linode allows you to instantly deploy and manage an SSD server in the Linode cloud. You can get a server running in just a few seconds. With your choice of Linux distribution resources and the node location. And this is the perfect way to get started on your personal site. Because you can do a lot in four months. You can probably create some sustainability here. You can probably find a way to raise enough money to keep that server up and running. Because it's only $5 a month in the first place. This is their one gigabyte of RAM plan, by the way. And that's enough to keep a... ...personal site running. Especially if you're doing something like a serverless architecture. Which all of us know that even if you have a serverless architecture, you still need a server somewhere. Linode can be the perfect solution for that. Head over to linode.com slash developer T. They have so many other features. We're not going to list them all. We've certainly talked about Linode on plenty of episodes of developer T. But the most important feature that they have today is four months of free service for you. Head over to linode.com slash developer T. Use the code developer T 2018 at checkout to get started. Thanks again to Linode for sponsoring today's episode. Okay, so what is a recent moment of epiphany or like a thought that you feel like was really important to you, but is kind of the simple atomic thing that you can share with other people? Something you've been maybe bringing up in conversation recently. That's a heavy one. I think so much of my life has become being comfortable with uncertainty in every degree. So as we've mentioned in this podcast, being comfortable with uncertainty around death, uncertain about whether or not there actually is anything after this and afterlife. Uncertainty about how I'm performing as a father. Uncertainty about whether or not I'm ever. Going to be able to cook anything that's halfway decent. Uncertainty about the frameworks and tools that I use and. Not knowing whether or not I am, you know, improving meaningfully or kind of like stagnating. And I think being. More comfortable with that and. You know, tied with that idea from that terrible movie that I just need to get out and do. The work and not worry about the quality of that work, but just continue to do it and trust the process that I will. Inevitably get better over time. If my goal is to sit down. And learn and to make mistakes along the way. You might you might have some rocks thrown at you, but I think a lot of times it's just from people who. Are insecure with their relationship with uncertainty trying to keep keep you from exploring and. Learning the way that they would like to if they had more confidence. Yeah, that's excellent becoming. Closer to uncertainty in embracing it and almost. Looking for it. That's that's something that I personally have kind of experienced more recently is seeking places where. I can find uncertainty. It's kind of a weird backwards thing, but instead of trying to hide away from it. Which is the maybe the automatic thing we do. Is looking for and then calling it out. Right actually. When my wife was pregnant with her first child. And she would ask me hey, you know what do you think this this child is. Yeah, you think it's a boy or girl or you know what what do you think is it maybe could it be twins and. That's the truth was that I have absolutely. No. Idea. And that's it's something that we we seek for hunches or maybe we hope for a particular outcome. And we try to create something that isn't there even in those small things and so invariably I would tell my wife that. I think that it's a 5050 chance that we're going to have a boy or a girl and she has to I'm sure she got tired of it eventually because. I. Talk about statistics all the time with her and I'm sure it gets a little bit tiring but. Seeking those opportunities to say. I don't know. Is actually like it can be invigorating. It's a weird feeling. But it can be enjoyable. To say you know what I don't know. Let's just get back to doing the thing. Right like maybe that's fine maybe we just we write some code. And we don't even know if it's going to work. Yeah. We have no idea. We just try something. And sometimes sometimes those are. Kind of the birth moments of. True learning experiences but also. It's it's a little bit more peaceful. To just say I don't know I just don't know. Yeah I fully agree in all of the things that. Are kind of the most exciting parts are you know when you're going from going from 0 to 1 and from 1 to 10. Is way more exciting than going from like 90 to 100. And or 99 to 100. And all those most exciting things that you're going to learn and experience are going from I don't know this thing at all. To like oh I know it a little bit that's me. Yeah yeah and that that change that dynamics that the dynamicism of that change is is again it's a it's an addictive feeling. Okay so this is kind of the final question. In this is another loaded one but if you only had 30 seconds. To give developers a bit of advice what would you tell them. Like career advice or kind of daily practice advice. I would say those are one in the same. Okay. Yeah you know I'll I'll just say that I have I have to maybe. The first one is to just. Kind of like we've been talking about this whole thing is just. Make the mistakes. And live up to them. And kind of move on continue to put out work. That will. Always set you apart and it'll always put you ahead. Of people who know all the things but. Are less willing to just put in the hours and make the thing happen. And that's the that's the biggest thing. I think. The and that's hard advice to follow I mean admittedly I would just admitted to spending way too many hours on YouTube. Like reading about interfaces when I didn't want to do the work so. None of us are exempt. I think the second thing is to. Give up your ego. And to publish. Via whatever medium feels comfortable to you. As frequently and as often as you possibly can. A friend of mine swicks. We have upcoming react podcast episode. Maybe in a month or so. And he says that you can learn anything you want for the very low price of your ego. Oh wow. And it is the truest. I mean that's that's his advice. I didn't come up with that. I don't follow him on Twitter. I think it's SWYX. Maybe he didn't even kind of up with that. He stole from someone else. I don't know. But it is so true. If you're willing to put your stuff out there. And kind of take that that momentary. Ego hit and accept the criticism. Man you'll learn stuff so like unbelievably fast. That I remember going on to. This is a very practical thing that I told a handful of younger developers at one point. But I was like. If you want to learn stuff fast. I don't go on to stack overflow asking questions. The you're going to get stuff that is meaningless to you. Go out there and put up post wrong answers. And you learn faster than anything. All of the nuance and kind of trade-offs and everything around that thing. And you know just take it down afterwards. And if you can get past your own ego. Then the world unlocks to you. Yeah. Even better would be post slightly wrong answers. Just a little bit to piss people off. Oh man. Well that's excellent advice. And I think that you know developers are challenged by the work that you do. The vulnerability that you have. The honesty that you've displayed in today's episodes. Or I guess. I don't know. In today's episode. In the last episode. By the time that we cut this thing up. And just ultimately thankful for the work you're doing. And thankful for being gracious with your time. And coming on the show tonight. Thank you so much. Oh thank you. This has been great for me. And it's been fun to kind of dive even deeper into things that I've divulged on the internet. That I may regret. Well what do you want people to know about. Go and visit. Learn from you. This will be. coming out certainly in time for react.holiday so that would be an obvious one go to react.holiday and sign up for this is two years now that you've been doing this right yeah this is the this is the second year and um it's been super fun i've been trying new mediums so i'm doing it at least um primarily right now just uh email based uh and i'm also doing some youtube videos which is um a real exercise in kind of just making it happen and shipping it yeah yeah one of the hardest things you can possibly produce right yeah so it's it's been fun for me this is a very much an exercise in um trying in doing something that i'm unfamiliar with i have i mean up until i think maybe two months ago i'd never published anything to youtube so this is a this is a really fun adventure for me um but yeah so you can go to react.holiday and um learn about all the new things that are in react um it's just kind of like a daily exercise um i actually need to finish up today's but uh it's it's um yeah it's really fun we talk about suspense and hooks and kind of how that changes all of the stuff that we we know so far um and tries to take a really kind of one idea per day um approach um other than that i have a site called react patterns which is just a simple kind of description of a lot of the existing patterns um i'm hoping to develop that and i think i'm not sure i'm really bad about actually um linking to to like paid content um but i do have video courses available on a lot of that stuff at um school.reactpatterns.com and um that's where i teach um kind of teach kind of ground up um ideas on not just react but kind of ecosystem stuff like you know how to use npm and um you know kind of basic node or javascript type stuff so i'm actively developing that and i'll be pushing more up as soon as react holiday is over if you can't tell uh by listening to this podcast chantastic michael chan is um is one of the most react positive people that isn't dogmatic about react so uh certainly a powerful ecosystem and something that if you haven't seen it um first of all i'm not sure if you've seen it but i'm sure you've seen it um i'm sure you've seen it all man maybe maybe you just aren't a developer or web developer you probably um you probably have seen react um if you're a web developer if you haven't and using the technique that um you've taught me i'm so excited for you right now i'm so excited for you to go and check out what uh what michael chan is is producing and also what all of the wonderful people who are working on this stuff are producing for us generally for free um it's just pretty amazing right um but that's a that's a conversation for a different time michael thank you so much for for spending your time with me this evening thank you this was an absolute delight thank you so much for listening to today's episode my interview the second part of my interview with michael chan if you missed out on the first part then you've missed a lot of context and a lot of other uh great conversation with michael i encourage you to go and listen to that as well you can find michael on twitter at at chan tastic and of course you can find me on twitter at developer t as well as my personal twitter at jay catrell thank you so much for listening thank you again to linode for sponsoring today's episode head over to linode.com slash developer t and use the code developer t 2018 that's 2018 at checkout of course you only have basically two days by the time this episode airs to actually get that uh get that discount on your account so if you're interested go and check it out develop linode.com slash developer t thank you so much for listening and until next time enjoy your tea