ellen.chen

Frontend Engineer building complex web products.

Frontend engineer with 4 years of React, TypeScript, and Next.js, owning product frontends end to end across AI-native SaaS and Web3. Uses Claude Code and Cursor daily, encoding architecture decisions in project rules so AI-generated code arrives review-ready.

extraction_review

6/6 verified

  • nameChia Lin (Ellen) Chen
  • roleFrontend Engineer
  • stackReact · Next.js · TypeScript
  • experience4 yrs · AI-native SaaS / Web3
  • locationTaipei · UTC+8
  • statusopen_to_work

case_study / qlo

An underwriting workstation, inherited demo to production beta in four months

Jan 2026 – May 2026

Qlo — AI-native insurtech (YC S26)

Commercial insurance carriers process submissions across legacy tools and spreadsheets; Qlo consolidates that work into one AI-native workstation. As the sole frontend engineer, I inherited a demo-stage frontend with no handover and took it to a production beta.

demo → beta

in ~4 months

quote → bind

end-to-end workflow

sole

frontend engineer

The hard part

Underwriting ends in documents that carry legal weight: quotes, binders, invoices. Every carrier client wants its own variation of the quote form, a single field change can reprice the policy, and what reaches the broker has to match exactly what was priced.

What I built

Extended the submission workflow from quote to bind, adding custom quote options, binders, and invoices. Designed a schema-driven quote form (React Hook Form + Zod) that handles per-client variations, and improved the premium calculation behind it. Outside the core workflow, I redesigned the login flow with 2FA and built broker management.

Decisions that mattered

Per-client quote schemas lived in the frontend; I proposed serving them from the backend as a contract, so onboarding a new client becomes configuration rather than a frontend release. I also proposed rendering quote letters as PDF instead of HTML, so every recipient sees the same fixed document and the issued version can be retained as-is for compliance — and the team shipped it that way. Separately, I brought engineering into design reviews before spec sign-off, so implementation constraints surfaced while the spec was still cheap to change; the team adopted it.

Outcome

From an inherited demo to a production beta in roughly four months, tested by a design partner whose feedback informed ongoing iterations. The product is internal and non-public, so this page shows the architecture rather than screenshots — the diagram below is the shape of the submission workflow.

submissionAI extractionquoteform + premiumquote letterPDFbinderissued at bindinvoicebillingper-client schemas → validation + typesproposed: backend-served schema contractbuilt by meupstream / proposed
Highlighted: what I built. Values arrive pre-filled from an upstream AI extraction step; each carrier client gets its own quote schema, and I proposed moving those schemas to a backend-served contract.

case_study / lootex

Trading, claims, and a game economy on-chain

Jul 2022 – Dec 2025

Lootex — Web3 marketplace

Three and a half years shipping consumer-facing Web3 products where a frontend bug can cost users real money — an NFT trading platform, a no-code NFT launch platform, and the frontend for a Web3 game.

$1M+

transaction volume

100K+

on-chain claims

39%

D1 retention (3–4x avg)

Trading platform

Developed the NFT trading platform that processed over $1M in transaction volume and 100K+ on-chain claims, integrating smart contracts directly with wagmi and viem. Wallet interactions demand exactness: precise price and balance calculations with BigNumber precision end to end, defensive error handling around every signature and transaction state, and UIs that never show a user a number the chain would disagree with.

No-code NFT launch platform (Lootex Studio)

Solely built the creator studio that let projects launch NFT collections without writing code — asset upload, sale rules, and a four-step on-chain publish flow: contract deploy, IPFS sync, lazy mint, claim conditions. The interesting work was failure recovery. Any step can die mid-flight — gas spikes, dropped wallets, closed tabs — so the flow re-derives its progress from chain state on load, and creators resume instead of starting over. Shipped in production campaigns, including an official collaboration with Soneium, Sony's blockchain.

Design system & delivery

Co-built the team's Storybook design system of accessible, responsive Tailwind components, and reviewed code to keep usage consistent. Built and maintained the frontend deployment and release pipeline, with preview environments so other teams could validate changes independently before release.

FizzPop

Led frontend for the Web3 game FizzPop, focusing on rendering performance for smooth gameplay; the game reached 39% Day-1 retention, roughly 3–4x the category average.

Lootex marketplace showing faceted attribute filters, collection offers, and batch sweep purchasing
Multi-chain marketplace: faceted attribute filters, collection offers, and batch “sweep” purchasing across 10,000-item collections.
Lucky Mint NFT limited-edition mint flow with quantity presets and bundle pricing
Limited-edition mint flow with quantity presets, bundle pricing, and post-mint activity routing — built for launch-hour traffic spikes.
FizzPop match-3 game on Soneium, centered game board UI
FizzPop, a mobile-first match-3 game on Soneium (L2) — most players arrived via in-wallet browsers, so rendering was optimized for constrained webviews; that work contributed to 39% Day-1 retention (3–4x category average).

Screenshots via official Lootex / Biru blog archives — the platform ceased operations in 2026.

side_project / music-recs

Music recommendations that have to beat random

Nov 2026

Music Recs — personal project

Pick 1–3 artists you love and get recommendations you can preview, then dig deeper from any record. A blind "Taste Check" asks whether the picks actually beat random songs from the same genre. Built in under a week, test-driven.

< 1 week

to build and ship

264

tests, written test-first

95% CI

on the blind Taste Check

Ranking

Each seed artist brings its own similar-artist list from Last.fm. The lists are merged with Reciprocal Rank Fusion, so an artist that several seeds agree on rises, and no single seed dominates the results. Previews and artwork come from the iTunes Search API.

Staying up on free APIs

External calls go through a Postgres cache-aside layer that caches "no preview" but never "API down", so an outage can't poison the cache. Per-IP rate limiting uses atomic counts in Postgres, backed by site-wide API budgets and a circuit breaker. CSP, a CSRF origin check, and clickjacking protection cover the rest.

Measuring whether it works

The Taste Check is a blind comparison against random same-genre songs. It counts each visitor once and reports the result with a 95% confidence interval, written in plain language rather than statistics jargon.

How it was built

Nuxt 4 (Vue 3, strict TypeScript), Pinia, Tailwind CSS v4, Motion for Vue, Postgres with Drizzle ORM, and zod, deployed on Vercel + Neon. Written test-first with Vitest unit tests, DB tests against real Postgres, and component tests.

Music Recs: pick 1–3 artists you love, get recommendations you can preview

skills / education

Frontend
React · Next.js · TypeScript · JavaScript · Tailwind CSS
Forms & state
TanStack Query · React Hook Form · Zod · Zustand
Web3
wagmi · viem · smart contract integration
Deployment
GitHub Actions · Vercel
Tools
Git · Figma · Storybook · Claude Code · Cursor
Spoken languages
Mandarin (native) · English (professional working proficiency)
  • AppWorks School — Frontend Engineer Program

    1,000+ hrs immersive training · Jan – Jun 2022

  • UNSW Sydney — Master of Public Relations & Advertising

    Jul 2015