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

August 02, 2020
0 strokes bestowed

Tic-Tac-Toe in React

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…

May 15, 2020
0 strokes bestowed

Before reading this post, I encourage you to read How to Use useReducer as a Finite State Machine if you haven't already. In that post, I demonstrate how to make the React Hook useReducer behave like a finite state machine using a statechart-like graph. I'm going to expand upon that work today…

May 07, 2020
0 strokes bestowed

Near the end of last year, I was doing prep work for my first workshop on state machines. In my research, I came across this simple, but effective graph editor: https://csacademy.com/app/graph_editor/ . I was impressed with how simple it was to represent a graph with just a few lines of text. On…

May 04, 2020
0 strokes bestowed

I recently attempted to get XState into the Webflow codebase to manage some challenging and complex UIs but was met with resistance. No big deal, this is a part of work, consensus driving, disagreeing and committing, etc. If it hasn't happened to you yet, it will. One of the things you need when…

April 03, 2020
0 strokes bestowed
This exists as a living document to define some guidelines regarding state machines and their usage. They are by no means exhaustive, but hopefully set you on the right path. It is _highly recommended_ that you read the XState docs for more information.

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