Joonhwan Jeon

Cross-platform developer working across mobile, web and backend — Flutter, Swift, React and Laravel. I take products from planning to release on my own, with the user experience at the center.

About

I started out in purchasing and production management, then spent two years backpacking through 40+ countries and worked in the travel industry. When COVID-19 stopped travel, I moved into software through the SeSAC iOS developer program and have been building apps ever since. That multicultural background shows up in my work: multi-language, RTL and global-market products.

Experience

ICU Company

2024.08 – present

Sole developer for KoreHalal, a travel service for Muslim travelers (~3,500 active installs, mainly Singapore, Malaysia, Indonesia and Korea). The team went from frontend + backend + designer to one developer + one designer, and I took over the backend to own the whole stack.

  • Mobile app (Flutter): took over a legacy app, then led a full rebuild in 2025 into a 13-domain layered architecture with Riverpod + Freezed; PayPal payments, social login, halal barcode-scanner OCR, real-time 1:1 chat, 5 languages incl. Arabic RTL
  • Admin / partner console (Flutter Web) with a three-role permission system
  • User web app (React 19, TypeScript, Zustand, Tailwind CSS 4)
  • Backend (Laravel 10 on AWS Lambda via Vapor, Aurora MySQL, DynamoDB, SQS, S3/CloudFront): recommendation engine, presigned-upload image server, chat domain
  • Internal sales tooling: overseas travel-agency discovery pipeline across 20 countries, quote builder with PDF output, segmented push campaigns

MarkCloud

2022.11 – 2024.01

An AI-for-intellectual-property startup. I built the mobile apps for its trademark search and attorney-matching products.

  • MarkView — AI image & text trademark search. Led the Swift → Flutter migration (MVVM, Provider, go_router), improved image search performance by 50%, shown at CES 2023
  • MarkTong — patent-attorney matching iOS app (Swift, UIKit, Firebase), real-time 1:1 chat with MessageKit, identity verification; released on the App Store

Stack

Mobile
Flutter / Dart (Riverpod, Freezed, go_router, Drift, home widgets, deep links), Swift (UIKit, SwiftUI)
Web
React 19, TypeScript, Next.js (App Router), Vite, Zustand, Tailwind CSS, Flutter Web
Backend & data
Laravel / PHP on AWS Lambda, Supabase (Postgres, RLS, Edge Functions, PostGIS), Firebase, Neon, Node.js Cloud Functions, Python data pipelines
DevOps
GitHub Actions + Fastlane (TestFlight / Play Store auto-release), Firebase Hosting, Vercel, PHPUnit, Jest, Vitest
AI
Gemini structured output, LLM pipelines with server-side evidence verification, multi-agent automation with the Claude Agent SDK

Personal projects

Built and run solo — design, development, release and operations.

Nureongso (누렁소검은소)

Web · open source

Puts Korean elected officials' campaign pledges next to their public record: bills, votes, attendance and asset disclosures. Python pipelines collect official government data and PDFs, an LLM pipeline extracts 21k+ pledges, and pledge fulfillment is judged by published rules with server-side checks against the model's cited evidence.

  • Next.js 16
  • Supabase
  • Python
  • LLM
  • Vercel

Gilmok (길목)

Flutter · iOS / Android / Web

An offline-first map archive. Drift (SQLite) is the primary store with Supabase as an optional sync layer; Google My Maps KML import, offline tile caching, and supercluster clustering that renders up to 2,800 markers on one map.

  • Flutter
  • Drift
  • Supabase
  • flutter_map

Yeowun (여운)

Flutter · iOS / Android

Leave photos and notes at real places for others to open nearby. Background geofencing designed around iOS's 20-region limit, journeys rebuilt from photo EXIF GPS, PostGIS spatial queries, and Gemini-generated travel badges and recaps.

  • Flutter
  • Supabase
  • PostGIS
  • Geofencing
  • Gemini

Time with Me

Flutter · iOS / Android

A shared calendar for couples and families. Share a booking confirmation message and a Supabase Edge Function uses Gemini structured output to pre-fill the event; home-screen widgets and invite links via App Links / Universal Links.

  • Flutter
  • Supabase
  • Gemini
  • home_widget

Pick and Go

Flutter · iOS / Android

Random trip courses you can actually reach: a filter-then-draw engine over distance ranges per transport mode, subway line and transfer-station normalization, plus roulette / ladder / card-draw game UI and a couple mode.

  • Flutter
  • Riverpod
  • Neon
  • Next.js (site)

Color of Days

Flutter · iOS / Android

A mood diary that records each day as a color, in 5 languages with home widgets. Its marketing runs on a multi-agent pipeline built with the Claude Agent SDK, publishing to Threads and Instagram via Supabase pg_cron.

  • Flutter
  • Supabase
  • Firebase
  • Claude Agent SDK

joon-dev-web

Web · infrastructure

The pnpm monorepo behind the app sites above: Vite and Next.js apps merged into one Firebase Hosting site, sitemaps / rewrites / Remote Config generated from a single config file, and GitHub Actions with lint, typecheck, PR preview channels and post-deploy smoke checks.

  • pnpm workspaces
  • Vite
  • Next.js
  • Firebase Hosting
  • GitHub Actions

Team project

moit (모잇)

Flutter · iOS / Android / Web · 2024.10 – present

A marketplace for local classes and small-group meetups. I co-develop the app in a two-person shared codebase and build the web client solo.

  • Flutter
  • Riverpod
  • Supabase
  • Next.js 16