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

October 18, 2020
0 strokes bestowed

Pattern Matching in JavaScript

...well, sort of...

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.
June 11, 2020
0 strokes bestowed
Recently, I spent an hour with one of my protégés demonstrating some common advanced techniques we use at Webflow. One of the techniques I showed them was memoization. Let's learn what memoization is, why you might use it, and how do we write it from scratch.
May 29, 2020
0 strokes bestowed

No matter what it is you're building with React, when you boil it down, there are only three ways you can manage data in a React app: locally, parentally, and remotely.

May 27, 2020
0 strokes bestowed

The next part in our useReducer finite state machine journey is adding "guards". If you haven't read the previous posts in this collection, I encourage you to do so before reading ahead. Those posts are: How to Use useReducer as a Finite State Machine Adding Infinite States to a useReducer…

May 19, 2020
0 strokes bestowed

Lately, I have had the opportunity to work on some new features at Webflow. It's exciting to build new things for your customers. It's also exciting because I've had the opportunity to finally dive head-first into React Hooks and learn and explore some new patterns. Some have been winners, some…


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.

Data Structures and Algorithms Logo
Data Structures and Algorithms

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