RSSAmplifier

Blog

NDP Software Blog

Thoughts on day-to-day software craftsmanship.

blog.ndpsoftware.comRSS feed ↗10 posts

Latest posts

Using Branded Types to Track String Encodings in Typescript

Have you ever caught yourself coding by trial and error, randomly tweaking properties until something works? Perhaps adding CSS font properties without understanding why, or appending wildcards to a regular expression hoping it will match? You’re not alone.

Take-home Code Challenge for Employers

Welcome, and congratulations on reaching this exciting stage of the hiring process! I’m thrilled that you’re considering having me join your team. To help me understand your team, and its problem-solving skills, technical proficiency, creativity, and collaborative dynamics, I’ve designed a take-home code challenge for your team. This challenge is your chance to showcase your team’s coding…

A type-narrowing Typescript isPromise

On a recent project, I needed to detect whether I was given a promise or not. This seems like a weird requirement, but I was writing a “makeRetryable” function that I wanted to work for both synchronous or asynchronous code. Trust me, it was real.

Open Source Built Technology Stacks

I was engaged in the banal activity of revising my resume, when I innocently created the janky piece of modern art. It shows the number of technologies I use in my jobs (and would include on my resume), grouped by year. As it clearly shows, the number of technologies started slow, and is now huge. Perhaps the specific tools are no longer important? To explain, let me go back.

Technology Cleanse: GoToMyHead.site Case Study

I recently spent a few hours building gotomyhead.site, which is an MVP app to find lead sheets in the popular fake (aka real) books. (You can read more about it here.) It’s a “mini-project”, and even if the project domain itself doesn’t interest you, my development approach gave me what I think are interesting insights to share. [ { songName: string, books: { [book_title]: number

Quick Review: Weird in a World That’s Not: A Career Guide for Misfits, F*ckups, and Failures

I just finished listening to Weird in a World That’s Not by Jennifer Romolini. She takes you from her being a misfit in high school to college experiences, all the way through a meandering path to high-tech start-up/Brooklyn/kids/mom/psychics nivana.

Add Types to RegExp Matches in Typescript

I’ve been diving into advanced Typescript, hoping to grow less befuddled when encountering complex type definitions. I’ve converted several projects to Typescript, explored writing typed routers and database adapters, and then, a few days ago, thought of this challenge. I’m a bit of a RegExp nerd, so I wondered if I could make Typescript provide me with type-ahead for the results of a regular…

Testing React is Testing Me

While helping a student at @techtonica write a test for a React component, I encountered a mess just under the surface of React testing.

10 Ways to Cheat at Wordle

When I first came across Wordle, I accidentally glanced one of my kid’s screen while walking down the stairs. After I was explained the game by them, I then proceeded to show my prowess by getting my first Wordle right in 1 guess. My family was surprised, but obviously onto me. But this got me started down a bad path of cheating on Wordle.

Why not use * version numbers?

Am I the only one that prefers to use * for my version specifiers in my package.json file?