Skip to content
Hanna.

Stack

Grouped by what I would reach for on Monday

A flat alphabetical list cannot tell you what someone uses from what they once touched. These are ordered by how current they are, and the domain group is the one that takes longest to learn.

Reach for daily

What I am writing this week, across multiple repositories.

  • TypeScript
  • React Native
  • Expo
  • React 19
  • Next.js 15 (App Router, RSC, Server Actions)
  • NestJS (Fastify)
  • Node 22
  • Bun
  • MySQL
  • Sequelize
  • shadcn/ui
  • Tailwind v4
  • TanStack Query
  • Playwright

Offline-first and on-device

The part that is scarce. Built for crews working where there is no network at all, not where it is slow.

  • WatermelonDB
  • SQLite
  • Versioned local schemas and migrations
  • Sync ownership and conflict resolution
  • Draft persistence and resume
  • Offline batch-write performance
  • EAS build and OTA

Architecture and release quality

Designed so the next change is configuration rather than code, and so a release can be certified without production data.

  • Clean architecture (domain / data / presentation)
  • Dependency injection (Awilix)
  • Monorepos (Lerna, Bun workspaces)
  • Shared contract packages
  • Versioned REST APIs and DTO validation
  • RBAC and permission guards
  • Deterministic fixtures and disposable schemas
  • Permission and authority matrices
  • Visual regression
  • Sentry

Domain

The part that takes longest to learn and is hardest to hire for.

  • Work order management (CMMS, planned maintenance)
  • Asset and component hierarchies
  • Inspections and defect reporting
  • Scheduling and recurrence
  • Inventory
  • Procure-to-pay (requisitions, purchase orders, vendors, cost codes)
  • Multi-tier approvals and spending authority
  • Multi-tenant B2B SaaS
  • Audit trails
  • ERP / SAP integration

AI-assisted delivery

Inside gates written first. The release gate, the permission matrix and the documentation contract all predate the agent work that runs through them.

  • Claude Code and agent orchestration
  • Executable operational runbooks (dry-run defaults, numbered stop conditions, idempotent writes)
  • Prompt-as-spec
  • Agent context engineering (CLAUDE.md / AGENTS.md)
  • Custom skills authoring

Also used, less recently

Shipped with, would pick up again without ceremony.

  • Python
  • R
  • Redux Toolkit
  • Redux Saga
  • Drizzle
  • next-intl
  • MDX
  • three.js
  • GSAP
  • Firebase
  • Figma

Delivery

How it gets delivered

Written before built
Specifications, architecture decision records and acceptance criteria come first, and the decision record outlives the ticket. Named decision owner on the approval ADRs.
Documentation ships with the change
Every user-facing change carries its workflow, screen and permission documentation in the same commit. This is a contract now enforced across the repositories, not a habit.
Customer-facing
Operating procedures turn into configuration by sitting with the people who run them — operations, purchasing and finance. Most of my product decisions came from those conversations, not from a backlog.
Written-first and remote
Four years of distributed delivery across Indonesia and Singapore. Specifications, decision records, runbooks and release notes are how the work is handed over.