Nick Scialli is a software engineer at the U.S. Digital Service.
How to Serve a Static App with nginx in Docker
Nick Scialli β’ March 07, 2021 β’ π 4 minute readLet's create a static site and learn how to serve it in a Docker container using nginx.
How to Execute a Function After the User Stops Typing in JavaScript
Nick Scialli β’ March 04, 2021 β’ π 4 minute readExecuting a function after the user stops typing is called debouncing. In this post, we learn how in JavaScript.
Your First Svelte Project: A Todo List App
Nick Scialli β’ March 02, 2021 β’ πππππ 21 minute readLet's use the ubiquitous todo list app example to learn how to write Svelte apps.
How to Test Your React App Effectively with React Testing Library
Nick Scialli β’ March 01, 2021 β’ ππππ 16 minute readFrontend testing is hard. React Testing Library makes it a whole lot easier.
Some Good Interview Questions for Experienced Frontend Developers
Nick Scialli β’ February 24, 2021 β’ ππ 9 minute readI think a lot about the state of interviewing in software and web development. Here are a few ideas I have for good, meaningful frontend developer interview questions.
Fix the "Uncaught TypeError: destroy is not a function" Error in React
Nick Scialli β’ February 21, 2021 β’ π 1 minute readThis React error seems particularly cryptic, but ends up making a lot of sense when you get the hang of the useEffect hook.
Fix the "Cannot read property 'map' of undefined" Error in React
Nick Scialli β’ February 21, 2021 β’ π 4 minute readThis is one of the more common errors you will run into when starting out with React. In this post, we'll learn how to fix it.
Adding Apollo GraphQL to Your React Project
Nick Scialli β’ February 18, 2021 β’ ππ 9 minute readIf you're integrating your React frontend with a GraphQL API, you may want to check out the Apollo client.
Mocking Apollo GraphQL Queries in React Testing
Nick Scialli β’ February 17, 2021 β’ ππ 7 minute readWhen testing our frontend code, we might find ourselves needing to mock GraphQL query responses. Here's how to do it.
Setting Up a Svelte Project with Typescript
Nick Scialli β’ February 14, 2021 β’ π 4 minute readSvelte is awesome. Typescript is awesome. Let's create a project that combines the two!
How to Set Up a Svelte App with Rollup
Nick Scialli β’ February 10, 2021 β’ πππ 15 minute readThis post gives the basics on how to build Svelte apps for development and production using Rollup.
How to Serve an Angular App with nginx in Docker
Nick Scialli β’ February 09, 2021 β’ π 4 minute readLet's create a website using the Angular framework and learn how to serve it in a Docker container using nginx.
How to Split an Array Into a Group of Arrays in JavaScript
Nick Scialli β’ January 24, 2021 β’ π 1 minute readSometimes we have one array that we might want to split into multiple arrays. Here's a quick and easy way to do that.
Your First Node Express App with Typescript
Nick Scialli β’ January 18, 2021 β’ πππππ 24 minute readExpress is the most ubiquitous framework for nodejs. In this post, we learn how to add Typescript to the mix.
Is It Too Late To Be a Software Engineer?
Nick Scialli and Ross Jacobson (The Disciplined Rebel) β’ January 16, 2021 β’ π 4 minute readA lot of people ask me βis it too late to be a software engineer.β In this post, we are going to examine this question, and determine at what age it is too late to get into software development.
How to Perfectly Fit an SVG to its Contents Using JavaScript
Nick Scialli β’ January 15, 2021 β’ πππ 13 minute readUsing the SVG tag on websites is handy, but its interface can be different than we're used to. Here's a handy way to fit the viewport of an SVG to its contents every time.
Generating Random Human-Readable Slugs in JavaScript
Nick Scialli β’ January 13, 2021 β’ ππ 6 minute readHow to generate random human-readable slugs (e.g., brave-purple-penguin) in JavaScript.
A useLocalStorage React Hook for JavaScript and Typescript
Nick Scialli β’ January 10, 2021 β’ π 3 minute readI have created and open-sourced a useLocalStorage hook I use under the npm module name, uselocalstorage.
Writing Your Own useFetch Hook in React
Nick Scialli β’ January 04, 2021 β’ ππ 7 minute readReact Hooks have been all the rage for a little over a year. Let's see how we can roll our own useFetch hook to abstract fetch request logic out of our components.
How to Capture Between Two Characters in JavaScript using Regular Expressions
Nick Scialli β’ January 01, 2021 β’ π 3 minute readRegular Expressions are extremely powerful but their syntax can be pretty opaque. Today we'll use regex to capture all content between two characters.
How to Add a Thousandths Place Comma (Every Three Digits) in JavaScript
Nick Scialli β’ December 29, 2020 β’ π 1 minute readLet's do some basic number formatting for really large numbers.
Turning a Callback Function Into a Promise
Nick Scialli β’ December 29, 2020 β’ π 1 minute readMany utilities in JavaScript are readily available as functions that take callbacks. How easy is it to turn these into promises?
Programming Languages and Frameworks to Learn in 2021
Nick Scialli β’ December 26, 2020 β’ ππ 7 minute readA lot of these lists are based on hype, but I like to base this analysis on hard data.
How to Serve a Vue App with nginx in Docker
Nick Scialli β’ December 25, 2020 β’ π 4 minute readLet's create a website using the Vue framework and learn how to serve it in a Docker container using nginx.
How to Stop All Docker Containers
Nick Scialli β’ December 24, 2020 β’ π 1 minute readThere are certain things I find myself googling over and over again. How to stop all Docker containers is one of those things!
What is The Difference Between Server Side Rendering (SSR) and React Server Components?
Nick Scialli β’ December 22, 2020 β’ π 3 minute readIn December 2020, the React team introduced an experimental feature called React Server Components. This may leave you wondering how exactly these "server components" differ from SSR.
Creating a Recursive List Menu Any Number of Levels Deep in React
Nick Scialli β’ December 17, 2020 β’ π 4 minute readRecursion can be a tricky concept in programming. The challenge seem greater in a view library like React.
How to Abort Multiple Fetch Requests in JavaScript using AbortController
Nick Scialli β’ December 08, 2020 β’ π 3 minute readWe might want to use AbortController to abort multiple fetch requests in JavaScript. How might we accomplish this?
Using Cookie-Based CSRF Tokens for Your Single Page Application
Nick Scialli β’ December 05, 2020 β’ ππ 9 minute readThe CSRF attack vector is often misunderstood. Today we'll gain a better understanding of CSRF and why cookie-based CSRF tokens are a good option for Single Page Applications.
Modernizing Your Application and Processes with Modernizing.dev
Nick Scialli β’ December 01, 2020 β’ π 1 minute readI'm excited to announce I have started working on a new project to help organizations embrace tech modernization!
How Does Async-Await Work in JavaScript
Nick Scialli β’ November 30, 2020 β’ π 4 minute readIf you're familiar with callbacks and promises, you'll want to get familiar with async/await.
Why is My Recursive Function Returning Undefined in JavaScript?
Nick Scialli β’ November 13, 2020 β’ π 1 minute readOne common frustration when getting the hang of recursion is not understanding why your recursive function is returning undefined.
How to Wait for Multiple Promises to Resolve in JavaScript Using Promise.all
Nick Scialli β’ November 11, 2020 β’ π 3 minute readAfter getting the hang of async programming in javascript, you might quickly find you need to wait for multiple async tasks to happen. Enter Promise.all!
How to Abort a Fetch Request in JavaScript using AbortController
Nick Scialli β’ November 10, 2020 β’ π 3 minute readSometimes it's necessary to abort a fetch request. In this post, we explore how to quickly do so using AbortController!
How to Select or Omit Properties From an Object in JavaScript
Nick Scialli β’ October 18, 2020 β’ π 1 minute readSelecting or omitting properties from a JavaScript object is a fairly common problem without a built-in solution.
How to Serve a Node App in Docker
Nick Scialli β’ October 17, 2020 β’ π 4 minute readIn this post, we'll serve a node application in a Docker container.
Creating Your Own DeepPartial Type in Typescript to Allow Any Subset of Object Properties Deeply
Nick Scialli β’ September 26, 2020 β’ π 3 minute readYou 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 readSometimes 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 readWriting 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 readOne 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 readLet'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 readLet'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 readLet'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 readTypescript 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 readOne 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 readSnapshot 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 readToday 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 readOne 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 readAfter 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 readWe 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 readInstallment 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 readOne 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 readUsing 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 readAs 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 readWith 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 readAs 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 readIn 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 readIf 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 readToday 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 readTesting 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 readExpress 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 readTraversing 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 readUse 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 readThere 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 readThis 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 readIn 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 readOne 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 readWhile 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 readIn 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 readArray.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 readOne 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 readSet 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 readOne 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 readThunk 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 readA basic setup for using Typescript with React and Redux.
Variable Assignment and Primitive/Object Mutability
Nick Scialli β’ January 21, 2020 β’ ππ 10 minute readIf 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 readPure 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 readThe 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 readBuilding 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 readAn 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 readSometimes I find clever, interesting, or overlooked ways to solve certain problems in JavaScript.
Debouncing with Redux Middleware
Nick Scialli β’ October 20, 2019 β’ ππ 6 minute readLet's implement debouncing functionality using Redux middleware!
Toggling Light/Dark Theme in React with useContext
Nick Scialli β’ September 14, 2019 β’ π 4 minute readContext 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 readJavaScript 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 readShort-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 readFollow 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 readRecently, 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 readIt 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 readIn 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 readMemoization 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 readState 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 readThe 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 readJavaScript 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 readThere 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 readA 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 readLearning how to fetch data the right way with React Hooks.
Debouncing with React Hooks
Nick Scialli β’ April 09, 2019 β’ ππ 6 minute readExpermenting 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 readIn 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 readThis 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 readOne topic I have gotten more and more excited about throughout my software development career is quality!