Skip to content
View drewthomas00's full-sized avatar
⛰️
⛰️

Block or report drewthomas00

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
drewthomas00/README.md

Drew Thomas

I write software, and I'm a licensed cosmetologist in Georgia. I'm still behind the chair every week — the license was meant to be a career change, but after working a salon floor I got obsessed with fixing the software I was fighting there every day. So I'm building it.

Seven years professional, most of them inside a mortgage lender's legacy codebase: the kind of system where an outage costs real money and a compliance mistake costs more. I came up on C# and .NET; these days I prefer Node and React.

That's the thread through the four packages pinned below. Each one guards a failure that is silent and expensive — a marketing text that goes out an hour too early in the recipient's timezone, a webhook that rejects real traffic because a proxy rewrote the URL Twilio signed, a cron job that fires in all three replicas and charges the card three times, a ZIP parser confident enough to turn a date into coordinates in Washington DC. They came out of a production system and were general enough to release on their own.

The other two pins are a debugging tool and my personal site. vscode-memory-watch came from answering "which of these 38 processes is eating 20 GB?" with a measurement instead of a guess.

Under 1% of my commits are public, and that isn't going to change — so the contribution graph is a poor proxy for the work. Those four packages are a better one: all on npm, three with no dependencies at all, each with a real test suite and CI across Node 18 through 24.

Building with — Node · React · TypeScript · PostgreSQL · Docker · AWS · PWAs Kept alive — iSeries/AS400 · ColdFusion · SQL Credentials — Licensed cosmetologist (GA) · AWS Certified Developer · AI/ML, UT Austin · BS MIS, Alabama '19

More at drewthomasbuilds.com, and the salon platform I'm building is elovarra.com.

Off the clock: a homelab of ARM and x86 boxes running containers, a NAS, and a long habit of putting custom ROMs on phones that didn't ask for them.

Pinned Loading

  1. drewthomasbuilds drewthomasbuilds Public

    My personal site — drewthomasbuilds.com. Static, self-contained, deployed on Cloudflare Pages.

    HTML

  2. vscode-memory-watch vscode-memory-watch Public

    Find out which VS Code process is eating your RAM. Per-tier PSS sampling of the Electron process tree, with a snapshot captured at peak.

    Shell

  3. pg-cron-lease pg-cron-lease Public

    Make an in-process cron job a singleton across replicas using the Postgres you already have. One atomic conditional upsert per tick — no advisory locks, no Redis, no coordination service.

    JavaScript

  4. tcpa-quiet-hours tcpa-quiet-hours Public

    Is it legal to send this marketing message right now? TCPA quiet-hours evaluation in the recipient's local time — federal 8am–9pm plus seven state overrides and six Sunday blackouts. Zero dependenc…

    JavaScript

  5. twilio-signature-verify twilio-signature-verify Public

    Verify X-Twilio-Signature on inbound webhooks, including behind a reverse proxy — TLS-terminated schemes, chained forwarded headers, rewritten Hosts, stripped path prefixes, signed query strings.

    JavaScript

  6. us-zip-centroids us-zip-centroids Public

    Offline US ZIP code to latitude/longitude. Bundled Census ZCTA Gazetteer — no geocoder, no API key, no network call, and the address never leaves your infrastructure.

    JavaScript