[007] / WHAT I USE

THE
STACK.

Tools, languages, and services I reach for day-to-day. Opinions are mine, defaults are mostly the same as everyone else's.

[01]

LANGUAGES

What I reach for first.

  • TYPESCRIPT

    DEFAULT FOR EVERYTHING

    The single biggest productivity multiplier. Strict mode on, `any` is a smell.

  • PYTHON

    SCRIPTS, DATA, ML GLUE

    When something needs to happen once, or there's a pandas dataframe in the way.

  • C / C++

    WHEN I NEED TO UNDERSTAND THE MACHINE

    Mostly reading, occasionally writing. Keeps the mental model honest.

[02]

FRONTEND & MOBILE

Where visitors actually meet the product.

  • REACT NATIVE (EXPO)

    MOBILE

    Ships cross-platform in weeks, not months. EAS + OTA updates close the native gap.

  • NEXT.JS (APP ROUTER)

    WEB

    Server components + file routing + static export is the fastest way I know to ship a fast, crawlable site.

  • TAILWIND CSS

    STYLING

    Co-located, deletable, and impossible to drift. v4's `@theme inline` is elegant.

  • LUCIDE

    ICONS

    Tree-shakable, stylistically consistent, no sprite headaches.

[03]

BACKEND & DATA

The part recruiters pretend to care about.

  • NESTJS

    LONG-RUNNING SERVICES

    Opinionated structure pays off the moment a service crosses ~5 modules. DI for free.

  • SUPABASE EDGE FUNCTIONS

    SERVERLESS GLUE

    Deno + Postgres in one place. Perfect for tight, stateless endpoints next to user data.

  • POSTGRESQL + PGVECTOR

    PRIMARY STORE

    Relational *and* vector, same DB. No sidecar retrieval service.

  • PRISMA

    ORM

    Schema-first, type-safe, and the migration story actually works.

  • UPSTASH QSTASH

    SERVERLESS JOB QUEUE

    HTTP-based, no Redis to operate. Powers Euno's hourly heartbeat loop with durable retries and deadlines.

[04]

AI & OBSERVABILITY

Where the LLMs actually live.

  • ANTHROPIC SDK

    PRIMARY LLM

    Claude for reasoning-heavy generation. Behind a thin service abstraction so I can A/B against OpenAI per call.

  • OPENAI SDK

    EMBEDDINGS + FALLBACK

    text-embedding-3-small (1536d) for semantic memory; GPT models when Anthropic isn't the right shape.

  • LANGFUSE

    LLM OBSERVABILITY

    Every call logged with tokens, latency, userId, and prompt. Makes regressions visible before users notice.

  • PGVECTOR

    RETRIEVAL

    Same Postgres that holds the rows. No sidecar retrieval service — semantic search lives where the data does.

[05]

SECURITY & CRYPTO

Boring choices on purpose.

  • WEB CRYPTO (AES-GCM)

    SYMMETRIC ENCRYPTION

    Browser-native, audited, fast. Per-user keys + biometric gates mean I can't read your data.

  • ARGON2ID

    PASSWORD HASHING

    Current best default. Tune parameters for the host, then forget about it.

[06]

INFRA & TOOLING

The stuff between `git push` and prod.

  • VERCEL

    FRONTEND HOSTING

    Preview deploys per PR closes the feedback loop to seconds.

  • RAILWAY

    BACKEND & REDIS

    Deploys a NestJS + Redis stack without needing a DevOps detour.

  • DOCKER

    LOCAL PARITY

    If it boots in compose, it boots on the host.

  • GITHUB ACTIONS

    CI

    Cheap, scriptable, and the logs are where everyone already lives.

[07]

EDITOR & DAILY DRIVERS

What's actually on my screen.

  • VS CODE + CURSOR

    EDITOR

    VS Code for everyday work, Cursor when the task is 'read this large thing first'.

  • CLAUDE CODE

    PAIR PROGRAMMER

    Best when pointed at a tight, well-scoped task with a clear verification step.

  • ARC / CHROME DEVTOOLS

    BROWSER

    DevTools is underrated. Most of my hardest bugs died in the Network tab.

  • OBSIDIAN

    NOTES

    Plaintext markdown in a folder. Outlives every proprietary tool.