Full-Stack Software Engineer

Jay Heo

Building streaming experiences for web, mobile, and 30,000 feet in the air.

I build Ecco's cross-platform streaming app — web, mobile, and an airline in-flight entertainment build — working in React, React Native, Next.js, and Go. I shipped a guest-mode rework that raised Day-1 retention from 25% to 75%, and led the IFE build now in front of 18 airlines including Lufthansa and Etihad.

Scroll Down

Experience

Where I've worked and what I actually shipped.

Ecco, Inc.

Software Engineer

Apr 2025 – Present

Irvine, CA

Building Ecco's cross-platform streaming app — web, mobile, and an airline in-flight entertainment build.

  • Rebuilt the app's auth model around a guest state so browsing, search, and playback work without an account — removing the signup wall raised Day-1 retention from 25% to 75%.
  • Ported the web app to airline in-flight entertainment hardware (a legacy Qt browser with minimal CPU and memory) and built an MQTT-based remote control to drive it from a separate device. Demoed at the Aircraft Interiors Expo in Germany, leading to follow-up meetings with 18 airlines including Lufthansa, Etihad, and Saudia.
  • Led the React Native upgrade from 0.76 to 0.84 alongside React 19 and Expo 55, driven by Android 16 KB page-size requirements and a New-Architecture-only dependency stack — using ~490 existing tests to catch regressions across iOS and Android.
  • Rebuilt voice search around a proper speech-recognition state machine — stable vs. interim transcripts, intentional stops vs. dropped connections, rate-limited auto-restart — driving a 30% increase in searches after launch.
  • Built the Go backend and Redis-based session logic for the analytics event pipeline, and shipped the app's first monetization path: a subscription paywall with full Stripe integration for checkout, subscription status, and webhook-driven entitlements.
ReactReact NativeGoNode.jsMQTTZustandStripeRedis

ShineResumes

Team Project

Full-Stack Engineer

Jul 2024 – Nov 2024

Tustin, CA

  • Migrated the backend from REST to GraphQL/Apollo so the frontend fetches exactly what each resume section needs instead of over-fetching across multiple endpoints.
  • Built the AI resume generation flow — calculating available line space before generation, with keyword tracking so bullets don't repeat across a resume.
  • Moved resume file storage off the database and onto S3 with pre-signed URLs for previews and downloads.
Next.jsGraphQLApolloPrismaAWS S3OpenAI

Preps AI

Y Combinator S2024 — Final Round

Front-End Engineer & Project Lead

Dec 2023 – Jun 2024

Fullerton, CA

  • Built the real-time mock interview flow — Next.js dynamic routes talking to the AI backend over WebSockets.
  • Cut AI response latency from 5–10 seconds to near real-time by streaming audio over WebSockets in chunks and streaming AI responses back token by token.
  • Advanced to the final round of Y Combinator's S2024 selection process out of thousands of applicants, and coordinated sprints to ship a polished app ahead of the application deadline.
Next.jsWebSocketOpenAIWhisperZustand

Mustadd

Contract

Software Engineer

Aug 2022 – Aug 2023

Los Angeles, CA

  • Built a portfolio view pulling a user's on-chain holdings and calculating average cost basis, current value, and unrealized gains/losses against live prices — caching CoinGecko responses to work around a low API rate limit.
  • Added QR-code-based actions tied to the user's wallet address, surfacing different options depending on what the scanned code represents.
React NativeExpoTypeScriptCoinGecko API

Featured Projects

A selection of things I've built end to end — from AI products to mobile apps.

ShineResumes

ShineResumes

An app that generates resumes tailored to a job description in seconds — AI generation flow with line-space calculation, keyword dedup, and S3-backed file storage.

TypeScriptNext.jsGraphQLExpress.jsPrismaAWSDocker
Preps AI

Preps AI

Real-time AI mock interview platform for software engineers — YC S2024 final round. Streams audio and AI responses over WebSockets for near real-time conversation.

TypeScriptNext.jsZustandWebSocketWeb Speech API
PDF Uploader

PDF Uploader

Upload a PDF and listen to it — text-to-speech powered by PlayAI, with Supabase storage and dynamic routes per document.

TypeScriptNext.jsTailwindSupabasePlayAI
Giverr

Giverr

Social media app for sending & receiving gifts — Lottie-animated onboarding, SMS auth with Firebase, and Firestore-backed user data.

TypeScriptReact NativeExpoLottieFirebaseFirestore
Mellow

Mellow

Single-page product landing with infinite scroll animation and Git LFS-managed media assets.

Next.jsTailwind AnimationGit LFS
Bags Trade Tracker

Bags Trade Tracker

Mobile app for tracking trades — built with React Query and tested with React Native Testing Library against a reverse-engineered API.

TypeScriptReact NativeExpoReact QueryRN Testing Library

Technical Skills

The stack I work with day to day.

Languages

JavaScript
TypeScript
Go
Python
Java
SQL

Frontend & Mobile

React
Next.js
React Native
Expo
Zustand
Redux
Tailwind CSS
Framer Motion
TanStack Virtualizer

Backend & Infra

Node.js
Express
GraphQL
Apollo
REST APIs
WebSocket
MQTT
PostgreSQL
Prisma
Redis
AWS S3
Stripe

Tools & Platforms

Docker
AWS
Firebase
Datadog RUM
Amplitude
GitHub Actions
NGINX
Figma
Jira

About Me

Full-stack engineer who cares about what happens after the code ships.

I'm a full-stack engineer at Ecco in Irvine, where I work across the streaming app's React web client, React Native mobile app, and Go backend — plus an in-flight entertainment build that runs on airline seat-back hardware at 30,000 feet.

Before Ecco, I led frontend at Preps AI, which reached the final round of Y Combinator's S2024 batch; built the AI resume generation flow at ShineResumes; and shipped a React Native crypto portfolio app at Mustadd.

I studied Sociology at UC Santa Barbara with a Technology Management certificate, trained at CodeSmith's software engineering immersive, and hold the IBM AI Developer Professional Certificate. Fluent in Korean. Off the clock: golf, pickleball, and a long-running search for the best tacos in Orange County.

Jay Heo

Full-Stack Software Engineer

Get In Touch

Have a role or a project in mind? I'd love to hear from you.

Get in Touch