Jay Heo
Building streaming experiences for web, mobile, and 30,000 feet in the air.
I build Ecco's cross-platform streaming app across web, mobile, and an airline in-flight entertainment build — frontend in React and React Native, backend in Go and Node. I built the analytics pipeline that surfaced an AI Search discoverability problem, then moved the feature into the navigation and more than doubled repeat engagement. I also led the IFE build now in front of 18 airlines including Lufthansa and Etihad.
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 across web, mobile, and an airline in-flight entertainment build.
- Moved AI Search, the product's most differentiated feature, into a permanent navigation tab on mobile web and the mobile app, after event tracking I built showed how few users were finding it. First-month reach went from 20% to 25% of active users, repeat engagement more than doubled (24% to 54% returning 3 or more times), and daily core-area engagement climbed from 9.5% to 34% — holding after marketing spend dropped to zero.
- Ported the web app to airline in-flight entertainment hardware (an old Qt browser with barely any CPU or memory to spare) and built an MQTT-based remote so a separate device could drive it. Demoed at the Aircraft Interiors Expo, leading to follow-up meetings with 18 airlines including Lufthansa, Etihad, and Saudia.
- Led the React Native upgrade from 0.76 (past end-of-support) to 0.84 alongside React 19 and Expo 55, driven by Android 16 KB page-size requirements for Google Play and a native dependency stack (expo-video, FlashList v2, Reanimated v4) moving New-Architecture-only — 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.
- Diagnosed and fixed a rare race condition in the video feed that only reproduced under rapid scrolling, where the index from user events and the one TanStack Virtualizer managed internally could drift apart and play the wrong video. Fixed by centralizing feed state in Zustand.
- Built the Go backend and Redis-based session logic for the analytics event pipeline (events that require a user_id vs. ones fired pre-login), and shipped the app's first monetization path: a Stripe subscription flow covering checkout, subscription status, and webhook-driven entitlements.
ShineResumes
Team ProjectFull-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.
Preps AI
Y Combinator S2024 — Final RoundFront-End Engineer & Project Lead
Dec 2023 – Jun 2024
Fullerton, CA
- Cut AI response latency from 5–10 seconds to near real-time: the original pipeline recorded full audio, transcribed it with Whisper, then called the OpenAI API. Rebuilt it to stream audio over WebSockets in chunks and stream responses back token by token, after benchmarking faster inference like Groq.
- Built the real-time mock interview flow with Next.js dynamic routes talking to the AI backend over WebSockets, and split coding questions from general prompts before they hit the AI so responses came back more relevant.
- Coordinated project timelines and sprint planning with a Kanban workflow to hit each milestone ahead of Y Combinator's application deadline.
Mustadd
ContractSoftware 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 and polling on refresh to stay under a low API rate limit.
- Added QR-code actions tied to the user's wallet address, with options depending on what the scanned code was.
Featured Projects
A selection of things I've built end to end — from AI products to mobile apps.
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.
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.
PDF Uploader
Upload a PDF and listen to it — text-to-speech powered by PlayAI, with Supabase storage and dynamic routes per document.
Giverr
Social media app for sending & receiving gifts — Lottie-animated onboarding, SMS auth with Firebase, and Firestore-backed user data.
Mellow
Single-page product landing with infinite scroll animation and Git LFS-managed media assets.
Bags Trade Tracker
Mobile app for tracking trades — built with React Query and tested with React Native Testing Library against a reverse-engineered API.
Technical Skills
The stack I work with day to day.
Languages
Frontend & Mobile
Backend & Infra
Tools & Platforms
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.
The work I'm proudest of started with instrumentation: I built the analytics event pipeline, saw in the data that almost nobody was finding AI Search, and moved it into a permanent navigation tab — repeat engagement more than doubled and held after marketing spend went to zero.
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 Technical Management Program 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.
Get In Touch
Have a role or a project in mind? I'd love to hear from you.