Sequoia McDowell

Computer Programmer

My name's Sequoia, and you can find out a bit about what I do here on this website!

Out of respect for your privacy I do not use google analytics or other third party scripts that track you on my site, so if you read an article and liked it, please tell me via the contact page or in the comment form on posts.

I'm trying out goat counter for analytics. I still respect your privacy! Block at your discretion, and please still contact me. Thanks in advance and happy coding!

Blog Posts

Keep Callm and Cairry On

ChatGPT: please write a blog post on the perils of LLM misuse from the perspective of a crotchety tech-skeptic. Incorporate the theme 'Invent the disease and you can sell the cure.' Add a hopeful reflection at the end so it's not too negative-sounding.

Kubernetes Resource Optimization: Just The Basics

How do you write about optimizing Kubernetes clusters without getting into the weeds? The whole thing is just weeds. Nonetheless, there are things you can do to reduce your kubernetes spend and maintain performance without an advanced degree in Kubernetology, and I'll go over some of those things in this post!

Reducing Docker Image Size (Particularly for Kubernetes Environments)

While a few hundred megabytes in an application image seems a small concern in this day and age, when you're running scores or hundreds of instances in a cluster environments such as Kuberenetes, those megabytes start to add up. This can lead to spending more than needed on infrastructure, CI builds taking longer, and performance issues during cluster scaling. Read this post for a few simple tricks to slim down your docker image.

Parsing JSON at the CLI: A Practical Introduction to `jq` (and more!)

JSON is everywhere you look these days. The `jq` tool makes it easy to slice, dice, and transform JSON from the command line. It can be hard to map the official manual to real-world applications, so let's look at some practical examples of `jq` and its cousins that handle YAML & HTML!

A Fond Farewell to My Greatest Fans

I am removing the comment forms from my website due to spam. But are spam comments all bad? Not necessarily! Some of my best comments have been spam.

Two Painful Ways to Misuse JavaScript's Symbol Descriptions

ES2019 introduced a new way to access the (non-unique) description property of (unique) Symbol objects. As with any new JS feature, every developer's first question is "how can I shoot myself in the foot with this?" Read and find out!

Avoiding Ticket Scope Creep While Improving Code

We all want to "improve as we go" when writing code, but how do we do this while also getting the feature development task at hand done and keeping our PRs small?

When to Use a Programming Framework

Frameworks are good when they speed up stuff you already know how to do; if they are just magic incantations and you have no idea what they’re actually doing, that’s when you run into trouble.

The Rabbi and the Open Source Project

A rabbi, an élite open source project maintainer, and a workaday developer walk into a tech conference...

Conference Tips

Some thoughts on getting the most out of tech conferences.

Session Management with Microservices

Microservices make some tasks easier and introduce some challenges where they didn't exist before. In this post we'll look at sharing sessions across microservices on the `now` platform.

What is "JavaScript?" Part 2: Solutions

"Bleeding edge" is all well and good, but can't we at least opt-in? Here's one weird trick to bring some transparency into the JavaScript module ecosystem with regard to new language features…

What is "JavaScript?" Part 1: The Problem

In the age of Babel, babel-plugins, and widespread transpilation, what does it mean for something to be JavaScript, and why does that question matter?

Let's Code It: Static Site Generator with Rx.js

Watching a filesystem for changes and building an input (markdown) file to output (HTML) on each change? This sounds like a job for... Observables!

Let's Code It: Static Site Generator

Markdown in, HTML out... do we really need a framework for this? I Don't Think So!!

Interactive Debugging with Node.js

Interactive Debuggers are familiar to every Java developer, but they are much less well known in the JavaScript world. If you're a JavaScript developer who hasn't experienced the power of step-thru debugging, read this post to find out what you're missing!

The Node.js Debug Module: Advanced Usage

So you're familiar with the `debug` node module. Let's take a look at some more advanced uses and useful tricks!

Let's Code It: The `debug` Module

What if, instead of commenting out or deleting our useful log statements when we're not using them, we could turn them on when we need them and off when we don't? The `debug` module lets us do that-- but how does it work? Let's find out!

Type Hinting in JavaScipt

What type is this object, what properties does it have, what arguments does this function take... there's a lot I don't miss about writing Java full-time, but boy do I miss this! Can we get these type hints in JavaScript? Let's find out!

Techniques to Avoid Live Coding, Part 1

The demo-gods are unmerciful and typing is hard with hundreds of people looking on. Learn to write code without writing code and your presentations will go off without a hitch!

Migrating a Legacy System to a Modern API Framework

LoopBack makes it easy to develop greenfield APIs, but in real business environments, data isn’t always tidy & cooperative. In this case study we'll see what it takes to migrate a complex legacy application to LoopBack.

Higher Order Functions in ES6: Easy as a => b => c;

New language features can make an expression that was cumbersome to write in ES5 easy in ES6, enabling and encouraging the use of this type of expression. We’re going to look at one such case here: how arrow functions make it easier to write higher-order functions in ES6.

Building to Github Pages with Grunt

Wherein I document my Grunt+github-pages+bookmarklet build which required templating, switching branches, rebasing, commit, and all sorts of craziness.

Fun With Toilet

Shell feeling shabby? Spice things up with Toilet, the ASCII generator!

LoLshield Sequencer

How do you encode animations for a 9x14 LED matrix? By building a web-app, of course!