About

I am a builder who likes end-to-end ownership: from the cron job or BigQuery pull to the operator-facing UI or browser extension. These projects sit at the intersection of messy real-world data and software that has to stay reliable week after week.

Skills I have leaned on—often alongside AI

  • Node & Express for lightweight APIs, dashboards, and glue services that sit between spreadsheets, databases, and external APIs.
  • Playwright for flows where the browser is the source of truth: retail configurators, promo paths, and internal tools that were never meant to ship a public API.
  • BigQuery & SQL for merchant-rate and feed analysis—drafting queries, shaping aggregates, and iterating on audits without losing sight of cost and correctness.
  • Google Sheets & cron so stakeholders get familiar surfaces and scheduled outputs without standing up heavy BI for every problem.
  • PostgreSQL & SQLite when state needs to live closer to the app: dashboards with history, or local run logs for automation suites.
  • Browser extensions to put audits and helpers directly where people already work, instead of asking them to context-switch.

How Cursor and Claude Terminal fit in

I use Cursor and Claude in the terminal to automate day-to-day work that would otherwise eat hours of context-switching: standing up Playwright scripts and browser extensions, wiring release ZIP workflows, drafting regression test plans, syncing READMEs with what actually shipped, and refactoring when Lowe’s DOM or partner API behavior shifts. The loop from “we need a tool for this” to something I can run in Chrome or from the CLI is often same-day—not because I skip review, but because scaffolding, boilerplate, and first-pass docs move faster.

AI is an accelerator, not a substitute for judgment. I still own architecture, security-sensitive paths, compliance sign-off, and what goes to production—but I spend less time on ceremony and more on domain rules, failure modes, and how a tool behaves when a feed is late or a selector changes.