— the garden
notes and ideas,
at various stages of growth.
seedlings are rough. budding notes are half-worked. evergreens are things i've returned to, edited, and now trust enough to share. filed under whatever i was thinking about when i planted them.
●evergreen
trusted, revisited- jul 2026→
Track Core Web Vitals in a Google Sheet, without BigQuery
A small Apps Script recipe that pulls Chrome UX Report data into a spreadsheet on a schedule. Real field data, no BigQuery, no Looker, about eighty lines.
#apps-script#core-web-vitals#crux#google-sheets - jul 2026→
One source, two artifacts: shipping an Apps Script tool as copy-paste and a library
People consume Apps Script code two ways, pasting it or adding it as a library, and those want different shapes. Here is how to serve both from a single source of truth, including the exposure rule that trips everyone up.
#apps-script#google-workspace#packaging#developer-experience - jul 2026→
Hosting a Static Site on Private S3 + CloudFront
The exact pattern behind this site. Private S3 bucket, CloudFront in front, OAC-locked, two-pass cache strategy, one-command deploy.
#aws#s3#cloudfront#terraform - mar 2026→
Running AI Code Review in CI With Gemini and Claude
We run two AI reviewers (Gemini Flash + Claude) on every PR via GitHub Actions. They catch real bugs, enforce conventions, and cost us nothing.
#ci-cd#code-review#ai#github-actions - mar 2026→
Self-Hosting Infisical for Local Development
We replaced .env files with a self-hosted Infisical instance behind a VPN. Developers run infisical run and secrets are injected at runtime. No .env files to manage, share, or accidentally commit.
#devops#secrets-management#docker#developer-experience - mar 2026→
Building an Analytics Toolkit with LLMs, CLI, and Google APIs
How we combined Claude AI, Node.js CLI scripts, and six Google APIs into a single analytics toolkit. Lessons on authentication, security, and surviving Google's API ecosystem.
#google-apis#analytics#ai#cli - oct 2025→
Deploying a Turborepo Monorepo to AWS App Runner
From Amplify failures to App Runner success: our journey deploying multiple Next.js frontends and a NestJS backend
#aws#turborepo#deployment#nextjs
◐budding
half-worked, iterating- may 2026→
Letting External Google Accounts Through IAP
External Gmail accounts kept getting Error 11 from IAP despite correct IAM. The issue wasn't permissions, it was IAP's service-managed OAuth client, which is Workspace-locked. The fix is a custom OAuth client, External and Published.
#gcp#iap#oauth#auth - oct 2025→
The Persistence High: Where Deep Work Meets Neurochemical Reward
Exploring how sustained effort in challenging tasks triggers neurochemical rewards, bridging Kelly McGonigal's persistence high with Cal Newport's deep work
#neuroscience#productivity#flow#deep-work
○seedling
rough, thinking out loud- mar 2026→
The Strategy Pattern That Let Our Worker Scale to Zero
How we used the strategy pattern to run the same NestJS worker on BullMQ locally and Pub/Sub in production, and why Cloud Run forced the decision.
#nestjs#cloud-run#pubsub#bullmq - nov 2025→
How We Built a Distributed Pipeline to Process 1 Crore Records Daily
How we built a custom distributed pipeline to process 1 crore (10M+) real estate records daily with 99.9% reliability using NestJS, BullMQ, and the Producer-Worker pattern
#nestjs#bullmq#distributed-systems#data-pipeline - oct 2025→
Monte Carlo Pi: Learning Through Randomness
Using random dart throws to calculate pi and learning the fundamentals of distributed computing along the way
#monte-carlo#distributed-computing#rust#webassembly - oct 2025→
Building My First Browser Game in the Pre-LLM Era
How a young developer built a fast-paced browser game using Phaser 2, Stack Overflow, and pure determination in 2016
#phaser#game-dev#javascript#stackoverflow