My name is Kyle Shevlin. I'm a software engineer, online instructor, and information curator among other things.

This is my personal site where I share the content I create. I write articles and create courses that break concepts down to their fundamentals so anyone can understand them.

I encourage you to peruse my blog posts, check out one of my courses (or all of them), and sign up for my newsletter if you like what you read or see.

If you need to reach out to me, Twitter is by far the best way to do so.

I hope you enjoy your time here and thank you.

Unsure Where to Start?

Try a post in one of these curated collections.

State Machines

December 29, 2020
0 strokes bestowed


or the Primary Purpose of Functions

Typically, functions are written for their reusability, but I want to convince you that the reason to reach for a function is to encapsulate a concern.
JavaScriptReactComputer ScienceRefactoring
December 17, 2020
0 strokes bestowed

Disclaimer: This might be a bad idea.

Let's kick it old school and create a custom React hook that takes a callback second argument for setState.

December 04, 2020
0 strokes bestowed
Recently, I needed to do some debugging to improve a few components that were rerendering unexpectedly. In that process of research and trial & error, I came away with a few useful hooks that I want to share with you.
November 10, 2020
0 strokes bestowed

I've been struggling a lot lately with my inner self-talk. It's never been all that fantastic but even worse than usual lately. I think this is the result of the difficult year we're all facing and a new venture I'm undertaking that has me really doubting myself. "Great opener, Kyle! Really got us…

October 18, 2020
0 strokes bestowed
When using a switch statement in JavaScript, we most commonly use the expression as if it's the left half of a strictly equals check, and each case as the right half. What if we set the left half to true, and make each case an expression instead? We would have a form of pattern matching.
September 12, 2020
0 strokes bestowed

Have you ever heard of the Baader-Meinhof phenomenon ? It's a cognitive illusion where once you become aware of some thing , you see that thing every where. It's called an illusion because the thing was always there, you were just unaware of its presence. I feel like generator functions are a…

August 28, 2020
0 strokes bestowed

You learn a lot working on a large, complicated codebase for an extended period of time. It's the kind of environment that exposes you to particular patterns often enough to develop thoughts and opinions around them. I want to share a quick opinion I have regarding a particular pattern here…

August 26, 2020
0 strokes bestowed

One thing I have found challenging about React.useEffect is the mental model regarding the dependencies array. It's very easy to get it in your head to use the dependency array as a means to constrain the calling of the effect, essentially treating it as a guard or conditional. "If this value…

August 02, 2020
0 strokes bestowed
Tic-tac-toe is a very simple game, and because it's so simple, it makes for a good introduction to some of the principles of grid and turn-based games. Let's learn how to build tic-tac-toe with React.
June 16, 2020
0 strokes bestowed
If your component is a pure function, i.e. given the same inputs you get the same output, you can wrap the component in `React.memo` to prevent the component from rerendering if `props` haven't changed.

Let's talk some more about JavaScript, React, and software engineering.

I write a newsletter to share my thoughts and the projects I'm working on. I would love for you to join the conversation. You can unsubscribe at any time.

Just Enough Functional Programming Logo
Just Enough Functional Programming

Check out my courses!

Liked the post? You might like my video courses, too. Click the button to view this course or go to Courses for more information.
View on egghead.io