What I Use is a series on the Byteconf blog exploring how people in the software industry do their best work.

Who are you, and how do you describe what you do?

I'm Kent C. Dodds. I work at PayPal as a full stack JavaScript engineer. I represent PayPal on the TC39. I'm actively involved in the open source community. I'm the creator of TestingJavaScript.com and I'm an instructor on egghead.io and Frontend Masters. I'm also a Google Developer Expert. I'm happily married and the father of four kids. I like my family, code, JavaScript, and React.

Kent C. Dodds

What do you use to write code?

I use VSCode.

Are there any open-source libraries or frameworks that you'll always use in a project?

I work primarily on Frontend projects and node tooling. For both, I use my own project called kcd-scripts which encapsulates all the tooling I need for these projects. Check the package.json there for a list of the tools I use in all my open source projects. At PayPal I have written a very similar tool called paypal-scripts which supports apps that PayPal creates as well as npm modules and uses webpack for client-side bundling. So that's the tooling side of things.

Some specific things I want to call out there:

- babel-plugin-macros

- react-testing-library

In addition to those, here are some modules I use regularly as regular dependencies of some of my apps and modules:

- react and react-dom

- @reach/router (and the entire ReachUI as applicable)

- emotion

From there I'm pretty well taken care of until things get complex. React hooks will make state management even easier, but until then here's what I do about application state management.

What hardware do you use?

Mac. I also have some equipment for recording screencasts and some other hardware for my office.

What do you wish was different about your workflow?

I've never been happy with my editor. No matter what editor I switch to there are always little tiny things that I don't like about it. It's hard to elaborate on, but that's always been a source of frustration for me. I also want to play around with ReasonML and TypeScript. In PayPal projects I use flow, but I've found it to be a little frustrating to use... The issue with TypeScript is I'm worried about how well it will work with the babel stuff I enjoy. Something to play around with though!

Where can people find you online?

Search "Kent C. Dodds" and you'll find me. My username is "kentcdodds" everywhere I am online. I spend a lot of time on Twitter.