Senior Software Engineer · Full-Stack TypeScript

Josiah Moser

Tulsa, OK · TypeScript · React / Solid · Node · PostgreSQL

Available immediately for full-time or contract work

I spent five years building the LearnCraft Spanish learning platform, the last four of them as Director of Technology, and grew it to over 3,000 monthly learners. I started as the only engineer, made the first hire in 2024, and left behind a codebase my successor now runs on his own.

I built that platform to outlast me. The intent lives in explicit types and schemas instead of in my head, and the build fails when someone works around them.

Josiah Moser

Featured work

LearnCraft Spanish

Director of Technology · 2022–2026

A grammar-based quizzing and student record platform for a language coaching company. I designed and built the web stack and ran it in production for five years.

  • Strangler-fig migration from an untyped JavaScript monolith to strict TypeScript with hexagonal boundaries, carried out under live traffic with no rewrite, relaunch, or downtime.
  • Student data locked down with server-enforced roles, JWT-authoritative auth, and Zod validation on everything crossing the wire.
  • Correctness enforced by tooling rather than by review: a mutation-tested domain core, an architecture checklist that hard-blocks any CI merge that violates it, and lint-enforced boundaries. The patterns are clear enough that AI tools follow them by default.

Open source

Tooling and projects I build in the open. The repos carry the full detail.

eslint-plugin-import-boundaries
ESLint rules that keep imports honest as a codebase grows: architectural boundaries enforced through pure AST evaluation, no filesystem reads. Published on npm and used in all my projects.
Prevail: Ancient Battles
The rules engine for a tabletop-style ancient warfare game I’m designing. Stateless, event-sourced, fully and headlessly replayable, with 1,500+ tests and a ~86% mutation score.
PortableNote
An open spec for portable personal notes: a compliance test suite, a hexagonal Rust core, and a SolidJS client over a Tauri bridge.

How I work

As a lifelong lover of classical music, art, and architecture, I build for continuity and longevity over rapid sprawl. That means encoding human intent in the code itself rather than in documentation that drifts away from it. Whoever reads the code next, human or otherwise, should be able to infer the right pattern by imitation; no amount of prose does the work that a sound pattern does.

I learned this by paying for the alternative. I built LearnCraft fast and untyped, and then spent years undoing the bottlenecks I had inadvertently introduced. Sound architecture outlasts its builders, and I would rather pay for it up front than pay for it twice.

I work in TypeScript end to end. I care about UI and accessibility, but architecture and systems design are where I do my deepest work.

Stack & tooling
The tools I reach for most.

TypeScript · Node · React · Solid · Vite · PostgreSQL · Zod · TanStack Query · Vitest · Stryker · GitHub Actions · Netlify · Cloudflare · Auth0


Connect

If you're hiring, looking for a contractor, or just curious about the LearnCraft work, send me an email. I'm available immediately and happy to share what I've learned.

Résumé (PDF)typeset in Typst, view the source.

josiah@classicalmoser.dev

© 2026 classicalmoser.dev