I am Kent C. Dodds. Ask me anything.

Kent is a popular open source hacker. You can find him sharing his JavaScript and frontend knowledge through Egghead, Frontend Master and Medium. He has contributed to popular open source libraries like Glamorous, downshift, prettier-eslint and nps.

Ask Kent C. Dodds about:

  • JavaScript
  • ECMAScript
  • Glamorous
  • Prettier
  • NodeJS
  • npm
  • General programming advice
  • Creating podcasts

Hey friends! 👋 I'm excited about this! I'll be chatting with you all soon!

Ideas of things to ask about:

  1. Look at my github (https://github.com/kentcdodds) history and ask me about anything on there. (downshift and glamorous in particular)
  2. Look at my 3 minute podcast (http://kcd.im/3-mins) and ask me about anything in there
  3. Look at JavaScript Air (https://javascriptair.com/) and ask me about any of those episodes
  4. Ask me about any of my Frontend Masters (https://frontendmasters.com/courses/) or Egghead.io (https://egghead.io/instructors/kentcdodds) courses
  5. CSS-in-JS
  6. Privilege Awareness
  7. Really anything, I'm just making things up... :smile:

Note also that I do have a AMA on GitHub with over 300 answered questions: https://github.com/kentcdodds/ama (Maybe I've already answered your question!)

Chat with you 🔜

Edit: I'm going to livestream while I answer your questions! Why not!? https://www.twitch.tv/kentcdodds 📺

Ask a Question

76 discussions

What do you think about the recent ReactJS license controversy? Would you personally use it in your projects?

Hi Richard! Thanks for the question. Yours is number 1!

So I'm not a lawyer. Law is confusing. But a lawyer-turned-developer wrote about this: https://medium.com/@dwalsh.sdlr/react-facebook-and-the-revokable-patent-license-why-its-a-paper-25c40c50b562

Also, there are countless very skilled lawyers at countless companies you're probably familiar with (Apple, PayPal, AirBnB, etc. etc. etc.) and they've looked it over and apparently seem to think it's cool.

So when someone says that I shouldn't use React because of the patent clause I just want to know what makes them feel like they know more than lawyers at these companies :)

So for me, I totally use it in my projects. I love it. Cheers!

Reply to this…

Hashnode is a friendly and inclusive dev community.
Come jump on the bandwagon!

  • 💬 Ask programming questions without being judged

  • 🧠 Stay in the loop and grow your knowledge

  • 🍕 More than 500K developers share programming wisdom here

  • ❤️ Support the growing dev community!

Create my profile

Hi Kent, I have been following your work for a long time. When and how did you enter the OSS world? What was your first contribution to an open source repository?

Hi Karan,

Open source is super duper important to me. I have so much to thank open source for. I actually answered a question similar to this not too long ago on my GitHub AMA where you'll find a more comprehensive answer: https://github.com/kentcdodds/ama/issues/289

My first PR to a project was this PR to the Java Play Web Framework. It was a typo fix in JavaDoc. Not much, but it didn't need to be :)

Thanks for the question.

Reply to this…

Hello !!

Being popular in the open source community, you are involved in many projects, which means more responsibility, more work and responding to the issues. This is a heavy task which sometimes results in exploitation and burnout (sick issues and more demands). What are your strategies for tackling this problem in the open source community ?

Hey Nitin! You're one of my favorite people :) Thanks for the question...

Yes, burnout is a tough deal in open source. I actually talk about this quite a bit on The Changelog episode #246. For me basically, I avoid burnout by being kinda heartless I guess. I just recognize that I don't have the time to take care of everyone's issues for them and I enable people to fix things themselves. So I have a course on contributing to open source and I invite folks to contribute back.

If someone asks a question and thinks they've found a bug, I ask for a suggested solution. In the process they often find it wasn't a bug. But if they do find a bug, then I ask them to dig deeper to find a solution.

I think the main bit of all of this is that you should recognize that you don't owe anyone anything and it's ok to say you don't have time to help them. Work on what you want to work on and let others work on what they want to work on. So long as you enable folks to do their work, they can't blame you for it 😉

Good luck friend!

Reply to this…

Hi Kent, Thanks for hosting AMA on Hashnode. What are some of the on-page optimization techniques you do for websites / projects?

Hello! Thanks for the question :)

There are lots of things you can do to optimize things. Whether it be performance, design, maintainability, scalability, whatever. I think the most important lesson I learn again and again about optimization is that doing it before you really understand the problem and root source of it will often result in a sub-optimal solution.

For example, if you optimize some code to be performant, you're probably trading off readability/maintainability of that code, and that's a significant cost which should only be incurred when the benefit really outweighs the cost. So if you don't know what the benefit really is, then you might be trading a bigger cost for a smaller benefit.

All that to say... When I was doing Angular 1, I had to deal with performance problems on a regular basis. With React, I have yet to have a performance problem with any of the code I've deployed. So I don't really think about it.

I focus more on optimizing developer experience to make it so you can improve both user experience and developer experience at the same time. That's one of the things I love about writing custom babel plugins because it allows me to do that. One such example is babel-plugin-lodash which allows you to ship less of lodash without having to cherry-pick stuff yourself. I talk about this a bit in my talk "Writing custom Babel and ESLint plugins with ASTs" (also there's my Frontend Masters workshop on the subject).

Another example that I personally built was this plugin for the glamorous website. It allows me to write all my content in markdown and make it easy to reference in the JavaScript. It's server rendered and makes localization really straightforward. It was super cool to build.

I think that we've only scratched the surface of what babel plugins can do for our DX (developer experience) and UX (user experience). If you want to get into this, I suggest you watch the videos I referenced, also check these out:

I don't know whether that was quite what you were looking for, but I hope it's helpful. Good luck!

Reply to this…

Hi Kent, thank you for the AMA. How do you managed the time between job and OSS liked you did ?

Hi Emanuel! Thanks for the question.

So I get this question a lot actually. I lay out a general schedule in this answer on my GitHub AMA. Basically there are a few parts to this:

  • Have a good solid schedule
  • Don't waste time on things that don't bring you happiness (open source brings me happiness, but video games [for example] don't, so I don't play video games)
  • Try to take the work you're already doing for you job and make it open source!

That last one is significant for me recently. I built glamorous for PayPal, so I could work on it during work hours. (I think I'll talk more about the origin of glamorous in another question.) The same is true for downshift and various other projects. I don't have a problem contributing to open source projects (whether they're mine or not) during work hours so long as it's part of what I'm working on. So that's part of why my GitHub contribution graph is so green 💚

Thanks for the question. I hope that's helpful :)

Reply to this…

Load more responses