▲ STACK ▲

TOOLS I'VE
SHIPPED
WITH.

> ls /usr/local/bin/tools
> 8+ years of opinions, sorted

// LANGUAGES

CODE
I WRITE.

TypeScript JavaScript Python Swift SQL Objective-C HTML / CSS

// Daily: TypeScript, Python. For iOS: Swift. For data: SQL.
// Reach: most anything with a C-style syntax.

// FRONTEND

PIXELS
& VIEWS.

React Vue Angular Ionic Stencil Tailwind Bootstrap Next.js

// Heavy: React (web), Ionic + Capacitor (mobile).
// Have shipped production code in all of these.

// BACKEND

SERVERS
& STORES.

Node.js Express Flask Postgres Redis REST GraphQL WebSockets

// Postgres loyalist. Express + Node for most web apps, Flask for Python shops.

// MOBILE

PHONES
& APPS.

iOS Swift Objective-C Capacitor Ionic Cordova App Store Connect

// Native iOS (Swift) for serious apps, Capacitor + Ionic for cross-platform.

// AI & SEARCH

SMART
STUFF.

Vector embeddings Semantic search LLM APIs pgvector RAG pipelines Prompt engineering

// Built PodcastDb's semantic search engine. Knows the difference between demo-ware and production.

// TOOLING

THE
GLUE.

Git GitHub Actions CI/CD VSTS / Azure DevOps Docker AWS Caddy Nginx

// Boring on purpose. If it ain't broke, don't trade it for shiny.

// OPINIONS

TOOLS I LOVE.
TOOLS I HATE.

// LOVE

♥ THIS.

  • Postgres — boring in the best way
  • Capacitor — finally, hybrid mobile done right
  • TypeScript — never going back
  • Tailwind — opinionated CSS for the win
  • Caddy — auto-HTTPS, no config files
  • pgvector — Postgres for AI search
// HATE

× THIS.

  • Yarn — npm won, accept it
  • MongoDB — until you need transactions
  • Serverless — for everything
  • GraphQL — at small scale
  • WebSockets — at small scale
  • JavaScript frameworks — every 18 months

HAVE A SPECIFIC STACK?
I'VE PROBABLY USED IT.

▶ ASK ANYWAY