🎨 Frontend

React & Next.js95%
TypeScript93%
Tailwind & CSS architecture92%
Web animation (CSS/JS/Canvas)84%
Accessibility (WCAG 2.2)88%
Vue / Nuxt74%

⚙️ Backend & Data

Node.js94%
PostgreSQL & data modelling89%
GraphQL & REST API design90%
Python76%
Go68%
Rust / WASM61%

☁️ DevOps & Infrastructure

Docker & Compose92%
AWS (ECS, Lambda, RDS)87%
CI/CD — GitHub Actions90%
Kubernetes72%
Terraform / IaC78%
Observability (Prometheus, Grafana)83%

🧪 Quality & Practice

Vitest / Jest / Playwright91%
Web performance (Core Web Vitals)95%
Code review & mentoring94%
Technical writing86%
Product discovery79%
Figma → code fidelity88%

Around the edges

Tools, habits & soft skills

🧰

Daily tools

  • VS Code + Neovim
  • Raycast / terminal
  • Linear & Notion
  • Figma + Tokens Studio
🗣️

Collaboration

  • Async-first written updates
  • Comfortable tech trade-offs
  • Mentoring & pairing
  • Client-facing demos
📊

How I measure

  • Core Web Vitals
  • p95 latency, not averages
  • Error & retention rates
  • Lighthouse budgets in CI
🌱

Currently learning

  • Rust & async runtimes
  • Local-first sync engines
  • SQLite in the browser
  • Passkeys & WebAuthn

Does this match your stack?

Tell me what you’re building and I’ll tell you how I’d approach it.