Skip to content

Open to data & AI platform rolesSoftware Engineer · Lacey, WA

Jonathan Cho

I builddata systems— end to end.

Software engineer with three years building React and TypeScript applications end to end — from relational schema design and REST APIs through the dashboards people make decisions in. Three years of it in production, most recently across two e-commerce platforms and the dashboards their teams ran on.

Track record

2022 — now

3+
Years shipping production React

Two companies, storefronts and the internal dashboards behind them

55%
Sales lift at NightParade

After purchase-flow rework, performance and UX work

6
Systems built end to end

Schema, ETL, API, DSP and interface — four deployed, one self-hosted, one native

01Experience

Three years shipping to people who had to use it on Monday.

  1. Patchapon LLC

    Software EngineerHybrid

    2023 — 2025
    • Led development of a full-stack e-commerce platform, designing and building the customer-facing storefront in React and Next.js from the ground up.
    • Built an internal analytics dashboard surfacing sales, revenue, customer trends and order performance, giving stakeholders a single view to drive marketing, inventory and product-launch decisions.
    • Improved conversion through UI/UX work on the purchasing flow, and maintained a reliable storefront supporting day-to-day sales operations.
    • React
    • Next.js
    • Analytics
    • UI/UX
  2. NightParade LLC

    Software EngineerRemote

    2022 — 2023
    • Delivered a production e-commerce platform in React and Next.js with Shopify API integration for product management and secure checkout, contributing to a 55% increase in sales through improved user experience, site performance and a streamlined purchasing flow.
    • Designed and built an internal sales analytics dashboard surfacing accurate real-time sales, order and revenue metrics, giving stakeholders actionable insight into business performance.
    • React
    • Next.js
    • Shopify API
    • Dashboards
02Selected work

Six systems, built end to end — schema through interface.

Each of these started at the data model and finished at something a person can actually use — four deployed on the web, one self-hosted by design, and one that ships as a plugin.

012026

Self-hosted live JA→EN translator

Kasane

A private Japanese-to-English video translator that subtitles a video as it plays and keeps every Japanese word clickable — speech recognition, translation and dictionary lookup all running in your own containers.

to first playback
12 sto first playback
result reuse window
24 hresult reuse window
hosted model APIs
0hosted model APIs
  • Next.js
  • TypeScript
  • Python
  • FastAPI
  • Celery
  • Redis
  • faster-whisper
  • Docker
Case studyLive interfacePrivate repository — walkthrough on request
022026

Guitar amp plugin & profile browser

NeuralRig

A guitar amp plugin that chains Neural Amp Modeler captures instead of loading one at a time, with a TONE3000 profile browser built into the plugin so you never leave the DAW.

plugin formats
4plugin formats
stages in the chain
8stages in the chain
audio path throughout
64-bitaudio path throughout
  • C++
  • iPlug2
  • NAM
  • AudioDSPTools
  • Eigen
  • VST3
  • AU
  • AAX
Case studySourceDesktop plugin — build from source
032026

Environmental incident platform

SpillSense

An incident data-management and analytics platform for Washington State spill response — validated ETL intake, relational schema, REST API, and a GIS dashboard, built end to end.

API endpoints
12API endpoints
counties seeded
39counties seeded
rejects auditable
100%rejects auditable
  • C#
  • .NET 10
  • ASP.NET Core
  • EF Core
  • SQL Server
  • Leaflet
  • OpenAPI
042026

3D rail network & route planner

Neo Tokyo Transit

An explorable 3D map of Tokyo's rail network built from real geographic coordinates, with trains animated against schedule data and a Dijkstra route planner underneath.

stations
269stations
rail lines
22rail lines
languages searchable
2languages searchable
  • TypeScript
  • Next.js 15
  • React 19
  • Three.js
  • R3F
  • Zustand
  • Vitest
052026

Bilingual lease cost simulator

Tokyo Move-in Cost Calculator

A bilingual simulator for the Japanese lease fee stack — deposit, key money, agency, guarantor, insurance and prorated rent — over a self-healing daily data pipeline.

wards mapped
23wards mapped
map payload
28 KBmap payload
sources cross-checked
2×sources cross-checked
  • TypeScript
  • Next.js
  • Tailwind CSS
  • ISR
  • i18n
  • GeoJSON
062026

Client-side music analysis

ChordLab

A browser music-analysis tool that detects chords, keys, guitar tabs and MIDI from audio or a live mic — on a dependency-free DSP engine that never uploads a byte.

chord states
145chord states
runtime deps
0runtime deps
sample frames
8192sample frames
  • TypeScript
  • Next.js
  • Web Audio API
  • Web Workers
  • DSP
  • Vitest
03About

I like the part of the job where the data model meets a real person.

I'm a software engineer in Lacey, Washington. For three years I built React and TypeScript applications end to end for two small companies — the storefronts customers bought from, and the internal dashboards the people running those companies made decisions in. The second half of that work is the part that stuck with me.

A dashboard is only as honest as the schema underneath it. So the projects I've built since have started further down: designing the relational model, writing the ETL that fills it, keeping imports idempotent and their failures auditable, then exposing the whole thing through an API with filters composable enough that the map, the charts and the table can never disagree.

Right now I'm aiming at data and AI platform work — the systems that make information trustworthy before anyone builds on top of it. Outside that: guitar, which is how ChordLab happened, and Tokyo's rail network, which is how the other two did.

Correctness at the boundary
Constraints belong in the database, not in a comment. Natural keys, restricted deletes and indexes matched to the query paths that actually run.
Failures you can read
A rejected row keeps its raw line and every reason it failed. An import that half-worked should be obvious, re-runnable and auditable.
One filter, every panel
Interfaces are where the data model gets judged. If a filter changes the map but not the chart, the model leaked.
Tests on the invariants
Integration tests against real migrations, contract tests in CI. Cover what breaks silently, not what breaks loudly.

Education

BA, Computer Science & Systems

University of Washington

Aug 2020 — Aug 2023GPA 3.67

Coursework

  • Database Systems Design
  • Data Structures
  • Algorithms
  • Operating Systems

Activity

Officer

HuSCII Coding Club

04The lab

Smaller things, built to learn something specific.

Storefronts, tools, a language-exchange app. Not everything needs to be a platform — some of these exist because the problem was interesting.

Avant Garde

Fashion e-commerce storefront built on the Next.js App Router with a component system on shadcn/ui.

TypeScript · Next.js · shadcn/ui

Academia

Front-end redesign of a PDF analysis tool, rebuilt for responsiveness and a clearer reading experience.

TypeScript · React · Tailwind

LingoRooms

Real-time language exchange rooms pairing learners by target language and level.

TypeScript · Next.js

05Stack

The tools, roughly in the order I reach for them.

Listed by how often they show up in something I shipped, not by how good they'd look on a keyword scan.

Languages

Daily drivers first
  • TypeScript
  • JavaScript
  • SQL
  • C#
  • Python
  • Java
  • C
  • C++

Front End

Interfaces and rendering
  • React
  • Next.js
  • Tailwind CSS
  • Three.js
  • Web Audio API
  • Web Workers

Backend & Data

Schema through API
  • ASP.NET Core
  • .NET
  • Node.js
  • EF Core
  • Prisma
  • PostgreSQL
  • SQL Server
  • SQLite
  • MySQL
  • MongoDB
  • Schema design
  • ETL pipelines
  • REST / OpenAPI

Delivery

Getting it to production
  • Docker
  • AWS
  • Vercel
  • GitHub Actions
  • Git
  • Vitest
  • Integration testing
  • Contract testing
  • Code review
  • Agile delivery
06Contact

Hiring for data, platform or product engineering? Let's talk.

Open to full-time roles and contract work. The fastest way to reach me is email — I answer everything.

jonathancho.jc@gmail.com
Lacey, WA — open to remote(626) 393-0910