Portfolio

Everything in production.

21 products, each with the platforms it ships on, the stack behind it and the systems it talks to. The link opens the live product.

Stack

What I actually build with.

Not a list of everything I have opened once. These are the tools that carry production systems, grouped by what they are for.

Languages

  • Swift
  • Kotlin
  • TypeScript
  • JavaScript
  • Python
  • Java
  • Objective C
  • SQL

Mobile

  • SwiftUI
  • UIKit
  • Jetpack Compose
  • Wear OS
  • Core Data
  • GRDB
  • Android kiosk
  • TestFlight

Backend

  • NestJS
  • Node.js
  • Express
  • Fastify
  • FastAPI
  • Prisma
  • REST
  • GraphQL
  • BullMQ

Data

  • PostgreSQL
  • Cloud SQL
  • Firestore
  • Redis
  • MongoDB
  • MySQL
  • Data warehouse
  • PgBouncer

Cloud

  • Google Cloud
  • Cloud Run
  • Firebase
  • Docker
  • Kubernetes
  • Vercel
  • Cloudflare
  • Secret Manager

Artificial intelligence

  • Multi provider LLM
  • RAG
  • Cloud Vision OCR
  • Forecasting
  • TensorFlow
  • PyTorch
  • Core ML
  • Ollama

Web

  • Next.js
  • React
  • TanStack Query
  • TailwindCSS
  • Vite
  • Three.js
  • Static generators
  • Web Components

Security

  • OWASP
  • Burp Suite
  • Nmap
  • Wireshark
  • Metasploit
  • Kali Linux
  • Splunk
  • Permission audits

How it is built

  1. Strict types

    TypeScript in strict mode with no escape hatch, Swift 6 concurrency checking, schemas validated at every boundary.

  2. Permission by default

    Every route declares the permission it needs and a continuous integration script fails the build when one is missing.

  3. Offline first

    A local database and an idempotent sync queue, because a till cannot stop when the line drops.

  4. One data model

    Products talk to each other through signed contracts rather than exports, so the same number never has two versions.

  5. Built for seven languages

    Interface strings live outside the markup, with a fallback that keeps the page readable when a key is missing.