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

November 10, 2020
0 strokes bestowed

Headlight Vision

or The Challenge of Only Driving at Night

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.
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…


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