TypeOfNaN

Nick Scialli

Nick Scialli is a software engineer at the U.S. Digital Service.

Creating Your Own DeepPartial Type in Typescript to Allow Any Subset of Object Properties Deeply

Nick Scialli β€’ September 26, 2020 β€’ πŸš€ 3 minute read

You may know of the Partial utility type in Typescript, but it turns out we can create our own DeepPartial type through some clever recursive typing.

How to Traverse an Object of Arbitrary Depth in JavaScript

Nick Scialli β€’ September 21, 2020 β€’ πŸš€ 3 minute read

Sometimes we find that we need to traverse an object and perform some operation on it at some arbitrary depth.

Writing Custom React Hooks with Typescript

Nick Scialli β€’ September 19, 2020 β€’ πŸš€ 4 minute read

Writing custom React hooks with Typescript isn't all that different from writing them in plain old JavaScript.

Learn the Basics of Redux by Writing Your Own Version in 30 Lines

Nick Scialli β€’ September 12, 2020 β€’ πŸš€πŸš€ 7 minute read

One of my favorite ways to learn how something works is to recreate it. Today, we're going to learn the basics of Redux by creating a simplistic version of it.

What is Debouncing?

Nick Scialli β€’ September 07, 2020 β€’ πŸš€ 1 minute read

Let's look at the concept of debouncing and create a sample debouncing scenario.

How to Serve a React App with nginx in Docker

Nick Scialli β€’ September 06, 2020 β€’ πŸš€ 4 minute read

Let's create a static site in React and learn how to serve it in a Docker container using nginx.

How to Remove a Specific Item From an Array in JavaScript

Nick Scialli β€’ September 05, 2020 β€’ πŸš€ 1 minute read

Let's remove an item from an array in JavaScript using a bunch of different approaches.

How to Make One Function Argument Dependent on Another in Typescript

Nick Scialli β€’ September 05, 2020 β€’ πŸš€ 3 minute read

Typescript can be incredibly helpful when we use some of its more advanced features. In this post, we specify the type of one function argument based on the type of another.

Using Local Storage in React with Your Own Custom useLocalStorage Hook

Nick Scialli β€’ September 01, 2020 β€’ πŸš€πŸš€ 6 minute read

One tool for storing data browser-side we might reach for is local storage. In this post, we'll use local storage in React by rolling our own useLocalStorage hook.

Using Jest Mocks to Prevent Non-Deterministic or Otherwise Changing Components from Continously Resulting in Snapshot Diffs

Nick Scialli β€’ August 30, 2020 β€’ πŸš€ 3 minute read

Snapshot testing is great until it's not. Today we'll overcome the common problem of seeing snapshot diffs for non-deterministic or frequently changing components.

Schema-Driven React for More Efficient Development

Nick Scialli β€’ August 30, 2020 β€’ πŸš€ 4 minute read

Today we look at schema-driven React development to see if we can streamline our development process a bit

Generate All Possible Combinations in JavaScript Using Combinate

Nick Scialli β€’ June 13, 2020 β€’ πŸš€ 3 minute read

One challenge we often face when creating apps is combinatoric complexity. Today, we're going to use a handy helper npm package I created to list all possible permutations of variables we're interested in.

How I went from 0 to 1,050 Developer Blog Email Signups in 6 Months

Nick Scialli β€’ June 11, 2020 β€’ πŸš€ 4 minute read

After starting my dev email list about 6 months ago, I have been fortunate enough to get over 1000 signups! Here are some of the methods I have used.

There May Not Be a Better Way to Effortlessly Improve Code Quality than Using Prettier Code Formatting

Nick Scialli β€’ June 06, 2020 β€’ πŸš€πŸš€ 7 minute read

We all want higher-quality code. With Prettier, you can achieve this with minimal effort.

10 More JavaScript Quiz Questions and Answers to Sharpen Your Skills

Nick Scialli β€’ June 03, 2020 β€’ πŸš€πŸš€ 9 minute read

Installment 2 of JavaScript quiz questions. Challenge yourselves to get intimately familiar with the language.

10 JavaScript Quiz Questions and Answers to Sharpen Your Skills

Nick Scialli β€’ May 27, 2020 β€’ πŸš€πŸš€ 9 minute read

One way we can challenge ourselves to grow as JavaScript developers is to practice with quiz questions! The following questions are intended to be challenging and _nstructive.

Failing Faster and Iterating with Modern Software Development Practices

Nick Scialli β€’ May 26, 2020 β€’ πŸš€πŸš€ 7 minute read

Using modern software development practices enable us to find and fix bugs faster and iterate. This post offers a primer into some of these modern practices.

Where Can I find Deno Third Party Modules?

Nick Scialli β€’ May 24, 2020 β€’ πŸš€ 1 minute read

As we explore the Deno ecosystem, we need to know where we can locate third party modules.

Programmatically Navigate Using React Router and Hooks

Nick Scialli β€’ May 23, 2020 β€’ πŸš€ 1 minute read

With React Router 5, you can programmatically navigate with using the useHistory hook!

What is the Express.js of Deno?

Nick Scialli β€’ May 23, 2020 β€’ πŸš€ 3 minute read

As first adopters tinker with Deno, many people are trying to figure out tooling that parallels what they're used to in node.

Deep Object Change Handlers in Typescript

Nick Scialli β€’ May 22, 2020 β€’ πŸš€ 1 minute read

In this post, we'll write a deep object change handler that both allows us to specify deep object types and satisfies the Typescript compiler..

Pinning Dependency Versions in Deno

Nick Scialli β€’ May 19, 2020 β€’ πŸš€ 1 minute read

If you're coming from a node background, it may not be obvious how to pin dependency versions in Deno.

Writing Your First Deno Server in 60 Lines

Nick Scialli β€’ May 18, 2020 β€’ πŸš€πŸš€ 6 minute read

Today we're going to write our first Deno API server in 60 lines.

If Your Refactors Break A Lot of Tests, You May Not Be Testing the Right Thing

Nick Scialli β€’ May 14, 2020 β€’ πŸš€ 4 minute read

Testing is supposed to validate that your app works. If you do some refactoring and your app still works but your tests are failing, are you really testing the right thing?

Understanding Express.js: Creating Your Own Node HTTP RequestΒ Router

Nick Scialli β€’ May 04, 2020 β€’ πŸš€πŸš€πŸš€πŸš€ 16 minute read

Express is a terrific JavaScript framework that serves as the backend for a lot of full stack web applications. Today, without diving into the Express source code, we're going to recreate some of the routing functionality!

Interview Practice: Traversing a Linked List in JavaScript

Nick Scialli β€’ April 28, 2020 β€’ πŸš€ 1 minute read

Traversing a linked list data structure is a common interview question. Today, we'll explore how to do so in JavaScript.

The Revealing Module Pattern in JavaScript

Nick Scialli β€’ April 27, 2020 β€’ πŸš€ 1 minute read

Use the revealing module pattern in JavaScript to maintain private information using closures while exposing only what you need.

Using the Fluent Interface Pattern to Build Objects in JavaScript

Nick Scialli β€’ April 26, 2020 β€’ πŸš€ 1 minute read

There are many ways to create new JavaScript objects. In this post, we use the fluent interface pattern.

Your First React Typescript Project: a Todo List App

Nick Scialli β€’ April 24, 2020 β€’ πŸš€πŸš€πŸš€πŸš€πŸš€ 21 minute read

This post will walk you through writing a todo app in React with Typescript.

A React Typescript Change Handler to Rule Them All

Nick Scialli β€’ April 20, 2020 β€’ πŸš€ 3 minute read

In React with Typescript, you may be tempted to roll individual change handlers for each field in a component. Let me show you an easier way!

Writing a Custom useWindowSize React Hook

Nick Scialli β€’ April 18, 2020 β€’ πŸš€ 3 minute read

One of the coolest parts about React Hooks is that you can create your own! In this post, we'll quickly roll our own useWindowSize hook.

Taking Pixel-Perfect Screenshots Every Time Using Chrome Devtools

Nick Scialli β€’ April 18, 2020 β€’ πŸš€ 3 minute read

While most operating systems ship with built-in screenshotting tools, it's often desired to grab pixel-perfect screenshots. In this post, I'll show you how to do so.

Roll Your Own JavaScript Immutability Function Using the Proxy Object

Nick Scialli β€’ April 16, 2020 β€’ πŸš€ 3 minute read

In this post, we roll our own immutable proxy function to prevent object mutation!

Learn the JavaScript Array.every() and Array.some() methods

Nick Scialli β€’ March 28, 2020 β€’ πŸš€ 3 minute read

Array.every() and Array.some() are handy JavaScript array methods that can help you test an array against specified criteria. In this post, we'll quickly learn how to use them.

What is a Higher-Order Function?

Nick Scialli β€’ March 07, 2020 β€’ πŸš€πŸš€ 6 minute read

One term you might hear in the JavaScript world is "higher-order function." Today, we'll explore what it means to be a higher-order function and look at some examples in JavaScript!

The JavaScript Set Object

Nick Scialli β€’ February 19, 2020 β€’ πŸš€ 4 minute read

Set is one of my favorite built-in object types in JavaScript. Today I'll introduce the Set object and discuss some of its use cases.

What is Memoization?

Nick Scialli β€’ February 13, 2020 β€’ πŸš€πŸš€ 6 minute read

One type of programming concept I really like explaining is the type that has an intimidating name but, once you learn it, is actually a pretty simple concept. This is how I feel about memoization.

What is a Thunk?

Nick Scialli β€’ January 31, 2020 β€’ πŸš€ 3 minute read

Thunk is one of those programming terms that sounds intimidating, but many of us are actually familiar with and have used them.

Set Up a Typescript React Redux Project

Nick Scialli β€’ January 23, 2020 β€’ πŸš€πŸš€πŸš€ 12 minute read

A basic setup for using Typescript with React and Redux.

Variable Assignment and Primitive/Object Mutability

Nick Scialli β€’ January 21, 2020 β€’ πŸš€πŸš€ 10 minute read

If you're not familiar with how JavaScript variable assignment and primitive/object mutability works, you might find yourself encountering bugs that you can't quite explain.

What is a Pure Function?

Nick Scialli β€’ January 19, 2020 β€’ πŸš€ 4 minute read

Pure function is one of those terms that might be intimidating at first, but the concept is actually quite simple. In this post, I'll quickly define what pure functions are and why they're good.

Exploring the Symmetric Difference Interview Question in JavaScript

Nick Scialli β€’ January 12, 2020 β€’ πŸš€πŸš€ 6 minute read

The Symmetric Difference interview question is an interesting one because it can be relatively simple to solve if you can think to use the Set object, or, seemingly very challenging or inefficient otherwise.

An Easy Way to Build a Tree in JavaScript Using Object References

Nick Scialli β€’ November 30, 2019 β€’ πŸš€ 4 minute read

Building a tree structure in JavaScript can be easy if you think in terms of references.

An Approach to JavaScript Object Schema Migration

Nick Scialli β€’ November 27, 2019 β€’ πŸš€πŸš€ 7 minute read

An approach to migrating between different versions of a schema that may be foundational to your app.

Random JavaScript Tips

Nick Scialli β€’ November 16, 2019 β€’ πŸš€πŸš€ 6 minute read

Sometimes I find clever, interesting, or overlooked ways to solve certain problems in JavaScript.

Debouncing with Redux Middleware

Nick Scialli β€’ October 20, 2019 β€’ πŸš€πŸš€ 6 minute read

Let's implement debouncing functionality using Redux middleware!

Toggling Light/Dark Theme in React with useContext

Nick Scialli β€’ September 14, 2019 β€’ πŸš€ 4 minute read

Context was always a great option for sharing app-wide state such as theming. With the useContext hook, it became even better!

Callbacks, Promises, and Async-Await

Nick Scialli β€’ September 07, 2019 β€’ πŸš€πŸš€ 6 minute read

JavaScript touts asynchronous programming as a feature. In this post, we explore callbacks, promises, and async-await to handle async programming.

Short-Circuit Evaluation in JavaScript

Nick Scialli β€’ September 07, 2019 β€’ πŸš€ 4 minute read

Short-circuit evaluation offers a clean and simple way to conditionally assign variables and handle control flow.

Writing a Custom React useDebounce Hook with Typescript

Nick Scialli β€’ August 30, 2019 β€’ πŸš€ 4 minute read

Follow along as I write a custom useDebounce React hook with Typescript.

A More Idiomatic Two-Sum Solution in JavaScript

Nick Scialli β€’ August 26, 2019 β€’ πŸš€ 3 minute read

Recently, I posted a way to solve the two-sum problem using an object to cache previous values of the array. This time, I look at a more idiomatic JavaScript approach.

Beware the Reduce / Spread Operator Combination!

Nick Scialli β€’ August 24, 2019 β€’ πŸš€ 1 minute read

It may feel fancy to use them together, but can get quite expensive.

Creating an Object Validator in JavaScript the Test-Driven Development Way

Nick Scialli β€’ August 24, 2019 β€’ πŸš€πŸš€πŸš€ 15 minute read

In this post, we build something useful (an object validator) using test-driven development!

An Introduction to Memoization in JavaScript

Nick Scialli β€’ August 19, 2019 β€’ πŸš€ 4 minute read

Memoization is an optimization technique used in many programming languages to reduce the number of redundant, expensive function calls.

Calculating Derived State in JavaScript Using Selectors

Nick Scialli β€’ August 17, 2019 β€’ πŸš€ 4 minute read

State management is challenging. We can make it less challenging by making sure we don’t store any redundant information in our state.

Exploring the Two-Sum Interview Question in JavaScript

Nick Scialli β€’ August 11, 2019 β€’ πŸš€πŸš€ 9 minute read

The two-sum interview question is interesting to explore because it has both a brute force logical, solution, as well as a more efficient solution that can demonstrate strong CS fundamentals.

First-Class Functions in JavaScript

Nick Scialli β€’ August 01, 2019 β€’ πŸš€πŸš€ 6 minute read

JavaScript has first-class functions. What does this mean and why is it important?

Why We're Looking Forward to Optional Chaining

Nick Scialli β€’ July 28, 2019 β€’ πŸš€ 3 minute read

There was recently a lot of excitement surrounding the TC39 Optional Chaining Proposal. This is why!

Object Assignment vs. Primitive Assignment in JavaScript for Beginners

Nick Scialli β€’ July 27, 2019 β€’ πŸš€πŸš€ 6 minute read

A quick look at object assignment in JavaScript aimed at newcomers to the language.

Avoiding Race Conditions when Fetching Data with React Hooks

Nick Scialli β€’ April 10, 2019 β€’ πŸš€ 4 minute read

Learning how to fetch data the right way with React Hooks.

Debouncing with React Hooks

Nick Scialli β€’ April 09, 2019 β€’ πŸš€πŸš€ 6 minute read

Expermenting with the relatively new React Hooks API to accomplish debounced list filtering.

The Best Whiteboard Interview Advice I Ever Received

Nick Scialli β€’ March 24, 2019 β€’ πŸš€πŸš€ 10 minute read

In this article, I intend to pass along the best advice I ever received for going through a whiteboard interview.

A 100DaysOfCode Front-End Curriculum

Nick Scialli β€’ March 01, 2019 β€’ πŸš€πŸš€πŸš€πŸš€πŸš€πŸš€ 30 minute read

This is a somewhat opinionated curriculum for learning front-end development during 100DaysOfCode.

Fun with React and Git Hooks

Nick Scialli β€’ November 28, 2018 β€’ πŸš€ 3 minute read

One topic I have gotten more and more excited about throughout my software development career is quality!

Subscribe to the mailing list!

If you like what I post here, please sign up to get updates and code insights in your inbox. I won't spam you and you can unsubscribe any time!

Powered by Buttondown.