Chats with Kent C. Dodds

By Kent C. Dodds

Listen to a podcast, please open Podcast Republic app. Available on Google Play Store.


Category: Technology

Open in iTunes


Open RSS feed


Open Website


Rate for this podcast

Subscribers: 19
Reviews: 0

Description

Kent C. Dodds chats with developers.

Episode Date
Tanner Linsley Separates UI State And Server State
00:36:01

CTA: Take inventory of your state. What is UI state and what is Server state?

Tanner Linsley is the creator of react-table, react-charts, and react-query. Tanner also has a startup called nozzle.io where they track rankings in Google and do cool things around technical SEO.

A lot of Tanner's libraries were born out of necessity at nozzle. We often reach for abstractions that were built to solve problems that we don't have and that ends up creating awkward problems for us. We wind up with poor performance or a bigger bundle size than we need, so having a custom made solution can be a good thing.

Your UI state is not the same as your server state and they should be separate things. By keeping these types of state separated from each other you can simplify your app. Server state is different enough in structure, persistence strategy, consumption, and lifecycle to be managed in smarter systems that are configurable to an apps needs of data freshness.


Resources

Tanner Linsley

Kent C. Dodds

May 19, 2020
Serene Yew Provides Mentorship
00:29:41

CTA: Reach out to a local college and ask about mentorship programs or attend a meetup and find a mentee.

Serene Yew runs Pixeltree, a software consultancy that focuses on sourcing junior talent and providing them with the mentorship that they need so they can bridge the experience gap and get a job.

What better way to incite change than to be that change? You can have a huge influence on someone by taking on a mentorship role. And, not only does mentorship benefit who you're mentoring, but it also benefits you. Serene finds that every single person that she's mentored has changed her in some way for the better. They all taught her something that she didn't even know she needed to learn.

A good mentor is going to listen to you, understand who you are as a person. They're going to guide but, more importantly, they're going to listen. A mentor is compassionate, empathetic, and personally invested in their mentee's success. They're humble and they recognize that they also have more to learn in this ever-changing world. Mentors are to be the cheerleader in the mentee's corner to support them and maybe provide a network connection or even just a good book recommendation.


Serene Yew

Kent C. Dodds

May 19, 2020
Saron Yitbarek's Path Into Tech
00:37:40

CTA:

  • Start a gratitude journal (write 5 things you're grateful for every day).
  • Search for 5 dream jobs and figure out what they have in common and learn one of those things.

Saron Yitbarek started a company called Code Newbie, which started as a Twitter community and grew into a couple of podcasts and a conference.

Saron first became interested in technology after she read the Steve Jobs book, it was the first time she got introduced to technology in a way that she could relate to, where tech was talked about through the eyes of design, art, and storytelling. So, she started calling CEOs of startups until she got an internship, which led to a job. Saron wanted to get into development, though, so she quit her job, started to learn to code, and joined a code boot camp.

Saron's path wasn't always financially secure. She realized that she needed to save and create a safety net. These days to help her budget, she uses a tool called You Need A Budget. The tool enables you to be more critical about where your money is going. Think of it as a digital envelope system.

What if you wanted to get into tech but don't know where to start? Saron's one piece of advice for you is go look up your dream job. What is the dream job you have, the dream company you want to work for? Write down five options for yourself. If you could have any job right now at the best company you could think of, what are those jobs? Find those job postings. Put them in a spreadsheet. Figure out the keywords and what the required skills are for each job. See what each job has in common, and then that's your list, that's your curriculum. That's the stuff that you need to learn. Out of that list, pick one technology, one tool, one language that you recognize that has been repeated across these job postings and start learning that one thing.


Resources

Saron Yitbarek

Kent C. Dodds

May 19, 2020
Preethi Kasireddy Reinvents Herself
00:33:57

CTA: Go back and think about dreams you had as a child and re-evaluate those dreams now.

Software development isn't limited to "nerds." During her time at Andreessen Horowitz, Preethi met thousands of entrepreneurs. What she realized was that software engineering is what these entrepreneurs use to change the world. They're able to code the future they believe in using software engineering.

A lot of people were surprised that Preethi gave up a promising career in venture capital to become a developer. But, Preethi says that the greatest artists reinvented themselves often. There's something unique and special about the periods in our lives where we are working on improving ourselves. We kind of lose that after going through everyday life. And so we must continue to find new hobbies and interests that we enjoy and grow with.

The world is driven by logic and what is objectively measurable is what ends up being valued. The hedge fund manager making millions a year is doing something objectively measurable while the artist isn't. But, beyond a certain point, money doesn't make you happier. You have to look out for your happiness. Your happiness is your incentive for choosing to pursue your passion over choosing the option that makes you more money.


Preethi Kasireddy

Kent C. Dodds

May 19, 2020
Michael Chan Encapsulates State
00:39:30

CTA: Take one of your small css-in-js components and use regular css to back it up.

One of the things Michael loves about React is that it's a lot easier to make a black box of abstraction with iron-clad React components that don't leak.

Something that concerns Michael deeply about any technology is when we put too much inside of it. We saw this pretty early on in React, where everyone was taking all manner of state and putting it into Redux. We have to think about the principle of co-location and the fact that the closer you put related things together, the easier it will be to maintain in the longterm.

In React, we've got this excellent encapsulation model that allows us to do this thing for the first time. But, you have to be very strict about what you let in there. The encapsulation model is only as good as you are at encapsulating a single piece of information.


Michael Chan

Kent C. Dodds

May 19, 2020
Michael Chan Teaches You How To Break Into The Industry
00:33:00

CTA: Sit down for 5 minutes and think about what you really want to do with your life and figure out how you can sell that. Get one customer.

It was around 2008-2010 when Michael's family's business went under due to the recession. From that point, Michael spent every spare second he had reading whatever he could. He'd be reading Ruby and JavaScript documentation while he pushed his son on the swing.

In this episode, Michael talks about what it takes to break into the tech industry. He explains how interviews are a hackable skill and the importance of building relationships in the industry.

Resources

Michael Chan

Kent C. Dodds

May 19, 2020
Justin McMurdie Breaks Apps Into Micro-Services
00:32:16

CTA: Watch the single-spa intro video

Most applications on the backend and the front end get built as a monolith, but you could improve your developer experience and performance if you broke your applications out into microservices.

The pros and cons are the same for monorepos and microservices. Microservices is a different paradigm. And so, there's a lot of training that goes involved for different people to understand the various deployment processes. The microservices system is slightly more complex in some ways, but on the pro side, you gain some performance benefits where you can scale up services by themselves.

A part of the improved developer experience is you get a better context of what you're working on. So say you need to fix a bug in the e-mail service. You don't have to dig through a mountain of code to find it. It's in the e-mail service.


Resources

Justin McMurdie

Kent C. Dodds

May 19, 2020
Talia Nassi on Testing in Production
00:29:36

CTA: Watch Talia's talk and read her blog post

What does it mean to test in production? Simply put, testing in production means testing your features in the environment where your features will live. So what if a feature works in staging, that's great, but you should care if the feature works in production, that's what matters.

An excellent tool for testing in production is feature flagging. Feature flagging allows you to separate your code deployment from your feature release. So, when you use a tool like future flagging, you're able to target specific users to see your feature, and you can test your feature and make sure it works and fix any bugs.

Resources

Talia Nassi

Kent C. Dodds

May 19, 2020
Dr. Michaela Greiler Makes Code Reviews Your Team's Superpower
00:32:03

CTA: Watch 10 Tips for Respectful and Constructive Code Review Feedback then take a previous code review you gave and critique your own review.

Dr. Michaela Greiler is focused on helping teams make code reviews their superpower!

During Dr. Michaela's time at Microsoft, they found that developers were spending six hours a week doing code review. You have to ask yourself if that time is really being well spent.

How do you ensure that code reviews are worth the time? There is this huge variety of experiences with code-review. It can be really good, and it can be really, really horrible as well. There is not a lot of formal training around it.

Formal training would improve the consistency and value of code reviews, and it would be especially helpful for Junior Developers. It would give them such a self-esteem and confidence boost if they would know, "This is what we're actually looking for, this is how we give code review feedback"


Resources

Michaela Greiler

Kent C. Dodds

May 19, 2020
Courtney McCleve On Developing Empathy
00:28:56

CTA: Attend an event (like a meetup) where you're a little outside of your comfort zone. Or when you're at a meetup, talk with people who you don't typically talk with.

The internet is one of those resources that we have available to us, and it's fantastic at what it does. However, there's a lot of content that isn't super curated and isn't in a format that makes it digestible. Courtney is interested in making the web accessible not only in the way we typically think of accessibility for people with disabilities who need screen readers and other assistive technologies but also for people with mental disabilities or difficulty learning.

We can help by improving the way we present the information, make it more accessible, and use words and phrases that are more inclusive. It enhances the experience for everybody, not just those who have learning disabilities.

Courtney is starting a Salt Lake City chapter for Devs with Disabilities. They are creating a support system for people with disabilities wanting to get into development and using the community around to assist those people.


Resources

Courtney McCleve

Kent C. Dodds

May 19, 2020
Amelia Wattenberger Breaks The UX Mold
00:33:27

CTA: Do something unconventional.

In her free time, Amelia Wattenberger enjoys creating "code sketches." On the surface, they might just look like silly examples, but she's learned concepts or ways of doing things through these tiny code examples. You can learn a lot by playing with something in isolation and then trying to see how you can apply it to a production application later.

Amelia then goes on to share her process of creating a blog post. Step one is thinking of the main idea she wants to communicate. Step two is asking herself who she is trying to communicate with and what context are they in. Step three is sketching out her ideas.

People remember things better when they're flashier and more novel. We kind of ended up just porting newspapers into web format. But, the web is so much more powerful than it used to be, which gives us this fantastic opportunity to create unique experiences for people when communicating our ideas.

Resources

Amelia Wattenberger

Kent C. Dodds

May 19, 2020
Alex Anderson Creates Web-Based Spaceship Controls
00:33:05

CTA: Set a timer for 10 minutes and write down what thing you would like to accomplish which you can do in small and simple actions over time.

Thorium is the software that space centers use for the computer controls and the flight director controls of simulated space ship experiences!

The cool thing about Thorium is that it's entirely web-based. Alex is using React to build Thorium and a 3D universe. The 3D universe is being driven by react-three-fiber by Paul Henschel, which is a fantastic piece of software.

Alex says that if you are privileged enough to have the time and the energy and the resources to be able to do side projects, that you should go for it. He believes side projects give you a lot of benefits outside of just the enjoyment of doing them.

Work-life balance is essential, though. There was a time where Alex just completely stopped working on it for about a month and a half. And that was necessary for him to be able to recenter, refocus, and get in a good place where he could be motivated and energized about it again.


Resources

Alex Anderson

Kent C. Dodds

May 19, 2020
Laurie Barth Chats With Kent About Growing Outside Of Your Comfort Zone
00:31:48

Homework: Try to do something outside of your comfort zone, and use that experience to help you learn how to empathize with those who are unfamiliar with the things that you already know.

Laurie has a tough time saying no, and she ends up trying a lot of different things, but this isn't necessarily a bad thing. Attempting to learn something new gives you the fresh perspective of a beginner starting from nothing. We get comfortable and take for granted the pieces of knowledge we have on our skills.

You have to find a balance, though. It's demotivating to feel dumb all of the time. You need to use the thing you learned for some time, so you advance beyond the beginner phase of the skill. If you jump from skill to skill too fast, you'll feel like you're going nowhere. Try to figure out everything that is contributing to your success that you don't have any experience in, and these are the areas where you'll probably want to dig deeper.

Transcript

"Laurie Barth Chats With Kent About Growing Outside Of Your Comfort Zone" Transcript

Resources

Laurie Barth

Kent C. Dodds

Nov 27, 2019
Eve Porcello Chats With Kent About Sustainably Expanding Skills
00:30:36

Homework: Think of one goal you have and take 10 minutes to break it down into smaller chunks!

A lot of times, when people are learning something new, they feel, "Oh, I have to learn this fast and my manager's counting on me to learn this," and everything's super stressful. As software engineers, we continually have to learn new things, and carrying that stress is tough on our mental health, so we must learn how to mitigate it.

Don't worry about being an expert. Try to be okay with being a beginner at something. You shouldn't expect more than that from yourself when you start learning something new.

It's essential to break your goal down into multiple steps so that it's not this vast, daunting leap that you have to take. Smaller steps of minor discomfort are a lot easier to cope with.


Transcript

"Eve Porcello Chats With Kent About Sustainably Expanding Skills" Transcript

Resources

Eve Porcello

Kent C. Dodds

Nov 27, 2019
Ken Wheeler Chats With Kent About Going For Challenging Opportunities
00:31:53

Homework: Write down three things that you've been holding back on. Choose one of those things and write down the steps that you can take to accomplish that!

Almost every demo Ken has done at a conference was wildly out of his league technologically. The deadline for the conference pushes him to grow rapidly. Conference driven development. Elon Musk says, "If it's physically possible, then we can make it happen." Take stock of the situation and ask yourself what the reality of it is, is it possible? If so, then you can accomplish it.

It's not possible to take the second step or even the last step unless you've taken that first step. Finding a simple way to take that first step and just going for it is critical to becoming the person that you want to be.

Even to this day, Ken still is anxious to get on stage, but it's always awesome afterward. Some talks go well, and others don't, but even if it didn't go well, you still went up there and did it. The audience is rooting for you, and despite what you might think, the majority of them don't know the subject of your talk, and the few that do still want you to succeed.


Transcript

"Ken Wheeler Chats With Kent About Going For Challenging Opportunities" Transcript

Resources

Ken Wheeler

Kent C. Dodds

Nov 27, 2019
Erik Rasmussen Chats With Kent About Maintaining Open-Source Libraries
00:36:40

Homework: Release some open-source software!

Erik built the Redux Form library to help manage form states in Redux. He decided to open-source Redux Form, and it exploded and became very, very popular.

People kept coming up to Erik with additional use cases, and the form library itself kept growing to the point where the bundle size got out of hand and saying yes to all the requests for features created a monster.

So Erik came up with his second form library "final-form." This time he created a plugin architecture to reduce the maintenance and make the library more capable of handling unconsidered use cases.

Erik talks about the key things that need to happen for a library to take off. First, it has to documented well, and the motivation has to get explained clearly. Second, someone who has a following needs to love it and share it with people. Third, you've got to be there on the ground, ready to make quick fixes as people give them to you.


Transcript

"Erik Rasmussen Chats With Kent About Maintaining Open-Source Libraries" Transcript

Resources

Erik Rasmussen

Kent C. Dodds

Nov 27, 2019
Angie Jones Chats With Kent About Automated Visual Testing
00:29:43

Homework: Go through Angie's Visual Testing Course: Automated Visual Testing: A Fast Path To Test Automation Success

Visual testing is like snapshot testing with images. So when your application is in the state that you want it to be in, you verify this as a human being, and then utilize tools to take a picture of your application in that state.

Visual testing isn't a new concept, but the technology was previously flaky. But now, Applitools is using AI and machine learning to be able only to detect the things that we care about as human beings.

Visual testing catches issues that your scripts won't detect, and Applitools is especially powerful at it. The processing gets offloaded onto the Applitools servers, and snapshots of your app are tested on multiple platforms so you can be confident that no visual bugs get created anywhere!


Transcript

"Angie Jones Chats With Kent About Automated Visual Testing" Transcript

Resources

Angie Jones

Kent C. Dodds

Nov 27, 2019
Nader Dabit Chats With Kent About Keeping An Optimistic Mindset
00:28:28

Homework: Take at least a minute or two every single day for a week and write one thing that you're optimistic about.

How do you stay optimistic when being bombarded with negativity every day? Nader reminds us that, statistically, we are living in the safest and most prosperous period in human history. Nader went through a lot of hardship growing up, and it caused him to assume the entire world was that way, but in reality, it wasn't. Try to maintain perspective, and remember that your experiences aren't reflective of the world as a whole.

The voice in your head talks about yourself in a way that you'd never treat another person. Be mindful of yourself and treat yourself with kindness; the way you talk about yourself can make a significant impact on your happiness.

Kent shares his experience with seeing a therapist for the last year and explains how therapy isn't something not just for people who are experiencing trauma or mental illness. Everyone can benefit from having a neutral third party that helps you talk through the problems you are experiencing in life, no matter how big or small.

Reducing the amount of media you consume can improve your headspace as well. That doesn't mean to turn a blind eye to any negativity. Instead, you should learn about the bad things that are happening within your sphere of influence. It doesn't do the world any good to take on pain from something that you have no control over. Your energy is better spent taking an active part in improving the parts of the world that you can influence.


Transcript

"Nader Dabit Chats With Kent About Keeping An Optimistic Mindset" Transcript

Resources

Nader Dabit

Kent C. Dodds

Nov 27, 2019
Kelly Vaughn Chats With Kent About Personal Finance
00:26:47

Homework: Figure out where your money has been going the last three months and then create a budget using an app like You Need A Budget, a notebook, or a spreadsheet!

Kelly got into personal finance while she was struggling financially in grad school. Your very first step to getting your money under control should be to know where your money is going. Sit down and look at the last three months of your bank statements and categorize your purchases.

Being able to visualize and measure where your money is going is a fantastic first step for people wanting to at least see if you could make some changes to the way that you're spending your money.

After you figure out where your money is going, your second step is to make a budget. Kelly uses the envelope system. Each category of spending gets an "envelope" of money, and once there's no more money from the envelope, you can't spend any more on that category.


Transcript

"Kelly Vaughn Chats With Kent About Personal Finance" Transcript

Books

Budget Services

Print and Ship

Kelly Vaughn

Kent C. Dodds

Nov 27, 2019
Jen Luker Chats With Kent About Finding Inspiration From Anywhere
00:28:35

Homework: Watch at least one of the talks linked below!

Jen puts knitting before the fact that she is a senior software engineer when she defines who she is; this doesn't make her a worse engineer than someone who eats, sleeps, and breathes code.

With each new thing you learn, whether you're good or bad at it, you'll tend to discover something about it that teaches you something new. With everything Jen learns, she tries to bring it back into the ways she interacts with the world, whether that's through some art medium or programming.

Technological progress has been an evolving process of standing on the shoulders of giants, one after another, learning how to take something they'd seen before and applied it to some new technology or new problem they were working on at the moment.

The short version is that you can find inspiration virtually anywhere, and not to close off those points of inspiration just because you're focusing on a computing problem.


Transcript

"Jen Luker Chats With Kent About Finding Inspiration From Anywhere" Transcript

Resources

TEDxBeaconStreet: Knitting is Coding; Lindiwe Matlali
TEDxRiga: Crocheting Hyperbolic Planes; Daina Taimina
TED: A delightful way to teach kids about computers; Linda Liukas

Jen Luker

Twitter
Github
Website
Strongish Fiber
LinkedIn

Kent C. Dodds

Website
Twitter
Github
Youtube
Testing JavaScript

Nov 27, 2019
Henry Zhu Chats With Kent About The Responsibilities Of A Maintainer
00:32:49

Homework: Find a way to do one thing to contribute to open source without writing any code!

Henry Zhu's transition from a programing role to a more managerial role as Babel's maintainer has been hard. As programmers, we tend to value our work based on the number of commits or pushing features. When you are a manager, you're not writing much code anymore.

There's still an expectation that maintainers should be writing code. Still, maintainers also have to triage and merge things, release process, onboard, market, write documentation, test, make videos, and give talks. Because of all this, a maintainer's time is best spent figuring out how to get more people involved with a project.

To get people interested, the maintainer has to do the job of showing people what's possible. You have to be involved in the community, and you have to like it. At a fundamental level, open-source is about service, serving other people in the community, giving back, and not expecting anything in return.


Transcript

"Henry Zhu Chats With Kent About The Responsibilities Of A Maintainer" Transcript

Resources

Henry Zhu

Kent C. Dodds

Nov 27, 2019
Jenn Creighton Chats With Kent About Avoiding An "Apropcolypse"
00:29:47

Homework: Document it before you write your next component!

Jenn has been working with React since 0.13. She has a background in creative writing, and it melded well with React.

One of her big early mistakes with React was focusing too hard on making components reusable. When you try to make your component one-hundred percent reusable, you end up with a massive stack of props. In our effort to make things reusable, we end up making it harder for ourselves and others.

Sometimes it even makes sense to duplicate the component, change its name, and add your changes to it instead of adding more props to the existing component. Too many props on your component not only makes it hard to refactor but also difficult to even use.

One of Jenn's rules for her codebase is that new engineers should be able to come in and get up to speed quickly. It is an overall rule that has to do with keeping the codebase consistent. Jenn puts rules in place like, "We consistently use this state management library." So if a person comes in, they aren't finding multiple ways of doing the same thing.

Transcript

"Jenn Creighton Chats With Kent About Avoiding An 'Apropcolypse'" Transcript

Resources

Jenn Creighton

Kent C. Dodds

Nov 27, 2019
Bianca Gandolfo Chats With Kent About Lifestyle Design
00:32:33

Homework 1: The first is relevant to what we just wrapped up talking about and that is to keep a self-awareness journal for seven days. Every night, write down the feelings that you had that day, stress, anxiety, depression, happiness, excitement or the feelings that you had.

Homework 2: Take 15 minutes every day to work toward a goal and just try it for a week and see how you feel about that.

We're all really busy but we are also ambitious and have goals, but a lot of the time those goals aren't defined so well.

It's important that our goals are well defined and managable, we're hard on ourselves when we aren't making progress towards them. You want to expend your energy on the things that are providing you with value, and when you expend your energy beating yourself up, it's worse than wasted energy because it's energy directed at making life worse for you.

Bianca started Code and Coffee to take people through the process of refining and focussing their goals and breaking them down into acheivable bite sized chunks that they work on for 15 minutes a day during morning coffee. You can do this yourself too!


Transcript

"Bianca Gandolfo Chats With Kent About Lifestyle Design" Transcript

Resources

Bianca Gandolfo

Kent C. Dodds

Nov 27, 2019
Lindsey Kopacz Chats With Kent About A11y
00:31:26

Homework: Install and use the AXE Chrome extension!

When Lindsey started, she didn't know what accessibility even meant. She would see that there was an "accessibility error" and fix it, but she didn't understand why she was fixing it. A11y clicked for her when she realized that the point of accessibility was to make the web usable for people with disabilities.

Code, at its core, is about people, and it allows people to use and purchase products. Ultimately we code to make people's lives better, and if you aren't making your site accessible, then you are discriminating against the one in four people living with a disability. Accessibility is not an edge case.

Doing the following will take you far!

  • Make sure you have form labels
  • Use alt text in your images
  • Don't leave buttons and links empty
  • Use buttons and links appropriately
  • Test your site with a screenreader
  • Navigate your website with the tab key

Transcript

"Lindsey Kopacz Chats With Kent About A11y" Transcript

Resources

Lindsey Kopacz

Kent C. Dodds

Nov 27, 2019
Lessons Learned From Four Major Projects with Shirley Wu
00:40:18

Shirley Wu has been freelancer since 2016, creating data visualizations for her clients. In this episode, Shirley talks about the four projects that had the most significant impact on her.

In 2017 Shirley created an interactive visualization of the musical, Hamilton. It blew up on the internet. It was the first time a project of her's had a significant response. It made her realize that code could be beautiful, colorful, and inspiring. The audience might not remember the figures or the writeup, but they will remember the emotional response they had.

Her next project was less fun and a lot more serious. She worked with The Guardian on an investigative journalism piece called Bussed Out. The project was meaningful to her. In the past, she shied away from more serious projects due to a fear of the backlash she'd receive if she didn't do it right. She got to work with a very talented team of journalists who taught her what she was capable of if she teamed up with the right people on important topics.

On a less serious note, Shirley had the privilege of having a visualization be commissioned by the San Francisco Museum of Modern Art. The project was to do something with the data from Send Me SFMOMA. This project caused her to reconnect with making art for its own sake.

The most recent influential project was Legends. It was a personal project on the fifty-one female Nobel Prize winners since 1901. With her other digital projects, she is lucky only to get a few minutes of someone's time, but she wanted more than that, she wanted people to linger and be present. So Shirley is now pushing herself to break the boundaries of digital and make moving her visualization into physical space a reality.


Resources

Shirley Wu

Kent C. Dodds

Aug 05, 2019
Getting Started With Code Live-Streaming With Suz Hinton
00:29:39

Suz started streaming because she wanted to show pepole that hardware coding is just like regular everyday coding, it's just for smaller, dumber computers. It's been two and a half years since she started streaming and her reasons have changed since then. Suz has a community of fourteen-thousand that gathers around her stream now. Despite her now much busier schedule these days this community motivates her to keep coming back and getting open source work done.

Suz talks about how you need to be doing it for the right reasons if you want to actually stick with it. Don't expect to make a salary off of your live-coding stream. Make sure that you go into it with a sustainable schedule for you, don't try to push it only to burn out after a month or two. Don't invest a ton of money up front either, it's okay to just have a headset and a webcam for your first streams while you are testing the waters.

Most of the people who watch you are interested in what you are doing and want you to succeed. The people who'd tell you how much you suck aren't going to spend the time to watch your live stream. We tend to be our own biggest critics, don't let the fear of criticism keep you from streaming!


Resources

Suz Hinton

Kent C. Dodds

Aug 05, 2019
You Can Learn A Lot For The Low Price Of Your Ego With Shawn Wang
00:32:34

You can learn in private, or you can learn in public. 99% of developers work and learn privately in the shadows, so why shouldn't you? Something magical happened when Shawn started creating resources and sharing what he learned in public. More advanced people began to help him by correcting him when he was wrong. By learning publically, he was able to both teach and learn at the same time!

"You can learn so much on the internet for the low, low price of your ego." If you keep your identity small, you can remain open to new ideas. If you make what you know a part of your identity, being receptive to new ideas and accepting that you were wrong becomes challenging.

Go beyond writing blog posts, they are educational, but their lifespan is limited. Write the resource that you wish existed while you are learning something. Write documentation, create cheat-sheets, these things not only provide immense value to people who are learning, but they also connect you to the authors of the technology who didn't have the time to create those resources. People start to perceive you as an authority on the subject when you make these things, which makes people also want to hire you for your expertise on the subject.

If you want to learn from professionals, then make it worth their time! Kent talks about how he'd record "tech chats" with developers and upload them to Youtube. Having an audience opens up the doors for opportunities!


Resources

Shawn Wang

Kent C. Dodds

Aug 05, 2019
Become Intentional With Your Time With Scott Hanselman
00:31:47

Getting involved in the world of open-source isn't trivial, especially when we are new to this industry and don't a lot of technical experience. Those of us with the privilege of knowledge and expertise should lend it to others. Lift others, and one day they may do the same.

Scott Hanselman talks about how he isn't a "transactional networker," he doesn't keep score or expect something in return for helping others. Living this way is freeing and fulfilling, even if at times you get burned by someone.

It's hard to find fulfillment when we are always taking life as it comes and when you are always dealing with putting out the next fire. We play Tetris all week long trying to fit in time for meetings, catching up on email, spending time with family, and so on. Spend an hour to figure out your direction and figure out what needs to be fixed and let go of the things that can't be. Be intentional with your time.

The key takeaway of this episode is to be intentional with your time. Understand your boundaries. If you don't want to spend all your free-time on open source, or if you want to lurk on twitter without posting, then acknowledge it. Being left in undecided territory puts weight on yourself.

So you've intentionally decided what you want to do with your time, now what? The key is being consistent. Don't overreach with your goals, since it will just create a guilt system. Instead, schedule a small chunk of time each week where you'll spend time working towards your goal. It's a marathon, not a sprint!

Lastly, be kind to yourself. That voice in our head treats us in a way that we'd never treat others. If we aren't a total jerk to someone when they make a small mistake, then we shouldn't be one to ourself. We praise people when they do something good, even if it is small, so permit yourself to praise yourself!


Resources

Scott Hanselman

Kent C. Dodds

Aug 05, 2019
There Aren't Any Shortcuts To Expertise With Sara Vieira
00:30:24

When something is easy for us, it more than likely is just familiar to us. It's easy to forget how challenging it was to learn what we know. When we tell someone who is still learning that something is easy, it diminishes the accomplishment of learning something new.

People who are good at things put in the time and the practice to get where they are, there isn't a shortcut to experience. We can gain experience by building things. But what do you build?

In this episode, Sara Vieira talks about how to find ideas for your side projects, and what you can do to make them fun and sustainable.


Resources

Sara Vieira

Kent C. Dodds

Aug 05, 2019
A Few Excellent Reasons For Why Should Give GraphQL A Try With Peggy Rayzis
00:32:41

Peggy Rayzis is the engineering manager at Apollo, where she leads the developer experience team.

Peggy talks about how Apollo touches every layer of development. There are a lot of ways that you can implement GraphQL in your application. It's incredibly flexible. You can even have GraphQL running entirely on the front-end! Peggy recommends that you implement it in your existing application by creating a GraphQL layer that sits between your front-end and underlying services.

Why would it be worth all of the effort to refactor your application from a REST architecture to a GraphQL one? There are performance benefits from switching to GraphQL, but the main draw is the developer experience. GraphQL is much nicer to work with than REST, no more firing up Postman or console logging to get a peek at what's going on.

To get started with GraphQL, Peggy recommends taking a single endpoint in your application and beginning with a schema, then move on to writing your resolvers, get your server running, and then connect your front-end. If you want to learn on something that isn't your product, then Apollo has excellent documentation that is linked bellow.


Resources

Peggy Rayzis

Kent C. Dodds

Aug 05, 2019
The State Of WebAssembly With Lin Clark and Till Schneidereit
00:36:07

Lin Clark and Till Schneidereit from Mozilla discuss where WebAssembly came from and where it's going. WebAssembly was inspired by asm.js, a subset of JavaScript that could be compiled from a language such as C++. WebAssembly can take the idea further since it doesn't have the same limitations that JavaScript does.

Lin and Till talk about why even a front-end developer would use WebAssembly, which leads to a discussion on one of the primary use cases of WebAssembly, performance optimization. They also get into the nitty-gritty of WASI, or the WebAssembly System Interface, which allows WebAssembly to be used outside of the browser.


Resources

Lin Clark

Till Schneidereit

Kent C. Dodds

Aug 05, 2019
Funding Open-Source Maintainers Using Ethical Advertising With Eric Berry
00:33:59

It's challenging to sustain open source projects, a lot of time and energy is poured in without any compensation in return. Eric Berry created CodeFund to give developers who are finding it difficult to justify putting their time into open source projects a means to get compensated.

Open source today is not the same as it was five years ago. Ninety-six percent of all web apps are using open source. The web relies on it. Sixty-five percent of all projects have only one or two maintainers, and their work is providing value to a lot of companies and people. Maintainers having the option to be compensated benefits not only the maintainer but also everyone who relies on the project.

Advertising is a scary word these days with big advertisers tracking people across the web and gathering their data. CodeFund doesn't use third-party trackers and doesn't collect data from the developer's audience. Advertising doesn't have to be evil, it can serve a good purpose if it's used correctly.


Resources

Eric Berry

Kent C. Dodds

Aug 05, 2019
Creating Successful Mentor Relationships With Emma Bostian
00:31:26

Emma Wedekind launched codingcoach.io, a free, open-source project that connects mentees with mentors. Emma discusses how she launched Coding Coach before she had a real database. It's better to have your product out there than to sit on it until it's perfect, you can always iterate.

Mentoring doesn't just help others, you improve your teaching skills, and it also just looks good to be a mentor.

Mentees should respect a mentor's time since they are doing it for free. When asking someone to be your mentor briefly describe where you're currently at, and some tangible goals that you want to work towards.

Mentorship doesn't strictly have to be a one-on-one relationship with someone. You can mentor people through content creation as well. Blogging, recording videos, writing books, and giving talks all teach people.

Often people's goal with their mentor is to be ready for the technical interview. Many companies are wising up to the fact that someone's ability to write algorithms doesn't correlate with their expertise as a front-end developer. Kent advises to keep your HTML, CSS, and JavaScript skills sharp, learn the abstractions you are using so you can talk about them intelligently, and remember that you are interviewing the company as well!


Resources

Emma Wedekind

Kent C. Dodds

Aug 05, 2019
Make Your Apps Resilient UsingFinite State Machines With David Khourshid
00:32:29

In this episode, David Khourshid gives the rundown on how finite state machines can make your app more testable, more resilient to bugs, and easier to refactor.

David's initial interest in finite state machines stemmed from his background in music. With music, there is a universal notation that crosses genre boundaries. David thought what if there could be music notation for logic? Well, it ends up people have been trying to figure this out for the last thirty years.

A finite state machine can only be in exactly one state out of a limited number of possible states. The machine can transition to another state through explicitly defined events.

David also chats with Kent about extended finite state machines, how state machines can be used to simplify integration testing, the differences between xstate and redux.

This episode's call to action is to take whatever feature you are working on and model it out in your head as a finite state machine, this can help you find potential bugs and also could lead you to implement a finite state machine style solution to avoid those bugs.


Resources

David Khourshid

Kent C. Dodds

Aug 05, 2019
A Rundown Of What's Next For React With Dan Abramov
00:52:17

What's next for React? In this second interview with Dan Abramov React's direction is discussed along with overviews of exciting new features.

Dan gives a great rundown these incoming features. React suspense is going to provide a baked-in solution for the problems that async data fetching causes with component rendering, and concurrent mode is bringing non-blocking rendering. Further insight is provided into what problems sparked the need for these new features and why they were the chosen implementations.

There's also discussion on React Fire modernizing React DOM, JSX v2, if React is a framework or a library, what React is intended for, and React's end-game.


Resources

Dan Abramov

Kent C. Dodds

Aug 05, 2019
Realigning Your Model of React After Hooks With Dan Abramov
00:45:20

In this episode Kent and Dan talk about the ways in which you'll have to reconstruct your mental model of how React works in order to get the hang of hooks, and how hooks more closely align with React's intended model.

React has made multiple attempts at figuring out a way to share state between components. Mixins, higher-order components, render props, and now hooks. Dan Abramov walks through what went right and what went wrong with each of the implementations prior to hooks. None of these implementations lined up with React's model, they were too indirect, or too limiting.

Classes didn't properly fit-in with React's component model either. Components don't use inheritance, they aren't ever instantiated, you don't call methods off of them. Dan explains how Components are more like a stateful function, and how Hooks are a closer aproximation of this mental model.


Resources

Dan Abramov

Kent C. Dodds

Aug 05, 2019
Establishing Your Personal Brand With Cassidy Williams
00:33:55

Cassidy Williams is an engineer at Codepen. In the last five years, Cassidy has worked for five companies. She had left each on her terms as she learned through experience what she wanted and didn't want. Figuring out what you like and what you don't like is critical for ending up somewhere that you're happy with, Cassidy calls this establishing your personal brand. The term "personal brand" has negative connotations to it, it seems unauthentic, but really what it means is figuring out who you are and making that public, it's as authentic as you make it.

Kent challenges you to take five minutes and write down what you like and what you don't like. Afterward, reflect on that list and ask yourself if where you're at now lines up, if it doesn't dig deeper into figuring out how to make the necessary changes for your life to align more with your likes and dislikes.


Resources

Cassidy Williams

Kent C. Dodds

Aug 05, 2019
Growing Your Skills And Career Through Teaching with Ali Spittel
00:30:03

In this episode, Ali Spittel, a software engineer and developer advocate at Dev.to, joins us to talk about how excellent teaching can be for not only the people who are learning from you but also for developing your skills and your career.

Teaching is one of the best ways we can teach ourselves something. It requires you to build an understanding of the subject matter strong enough to explain the material to other people and answer questions. "At some point, you tell a computer what to do, and it does it. It's really predictable. If you tell it to do the right thing, it's going to do the right thing without failure." As you may know, giving instructions to humans doesn't end up being so straightforward, even if you explain something perfectly, mistakes can still be made. It's a challenge to understand the material from multiple angles to accommodate different people, but it's excellent for solidifying your understanding.

Ali challenges you to write a blog post! It doesn't have to be long. Kent C. Dodds will write articles that are only a few paragraphs. Even if no one reads it, you still took the time to learn something and grow.


Resources

Ali Spittel

Kent C. Dodds

Aug 05, 2019