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



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.