echo "Hi, I'm Daniel"
Daniel Tran. I build fast, accessible web apps.
Senior Frontend Engineer at Shopify, based in Singapore. Seven years shipping React, TypeScript, and Next.js to production. I care about Core Web Vitals, accessibility, and code that future-me won't curse at.
Selected work
Things I've built lately
A handful of side projects, libraries, and experiments. Most of my day-job code lives in private repos at Shopify; this is the part of my work I can show in public.
shader-garden
A small collection of GLSL fragment shaders rendered with Three.js, with a Vite + React harness for live editing. Started as a notebook, became a thing.
next-typed-routes
Type-safe routing helpers for Next.js App Router. Compile-time checked links and router calls. Because string-typed routes haunt my dreams.
react-overlay-stack
Headless modal/drawer/popover stack manager for React. Focus traps, ESC-to-close stack semantics, scroll lock — done right, no styling opinions.
webgl-perf-budget
A lightweight runtime perf budget for WebGL scenes. Logs to console when you're past your draw-call or frame-time budget. Production-friendly.
Stack
What I work with
The tools I've earned strong opinions about. Daily drivers in the first column; comfortable enough to ship in the others.
Daily drivers
- React 18+
- TypeScript
- Next.js
- Node.js
- NestJS
Comfortable with
- Three.js / WebGL
- GLSL
- Vue 3
- GraphQL
- Tailwind
Cloud / infra
- AWS Lambda
- S3 / CloudFront
- Docker
- GitHub Actions
- PostgreSQL
Tools
- Vite
- Vitest
- Playwright
- Storybook
- Sentry
Writing
Recent posts
Whatever I just spent two weeks debugging usually ends up here.
Why TypeScript strict mode should be your default (and how to migrate without tears)
An opinionated case for strict mode, plus a migration playbook that won't blow up your sprint.
Three.js performance: how I cut WebGL frame time by 40%
Real techniques that moved real numbers on a real production scene. Not "put everything in InstancedMesh".
How we migrated to React 18 in production
A frontend tech lead's notes on shipping React 18 across a 200k-line codebase without taking the site down.
Get in touch
Open to interesting work
Especially anything involving performance, design systems, or WebGL. Less interested in CRUD admin panels — sorry.