Java • Python • Swift / iOS • AI/RAG • API • Tests · CI/CD

Open for Software / AI / Data Engineer roles

Published iOS developer · App Store

Engineer building backend systems, AI-enabled apps, and a suite of live iOS apps — across Java, Python, and Swift.

Open across Software, AI, and Data Engineering roles — backed by reproducible projects with tests, CI/CD, run logs, and published iOS apps on the Apple App Store.

Projects shipped
16+ across Backend, Data, AI & Frontend
Published apps
16 live on the App Store
Core stack
Java · Python · Swift · SQL
Recently shipped Stderr (macOS) — Oct 2026 Clean Sheet PDF (iOS + iPadOS + Mac) — Sep 2026 Homefolio: Home Inventory (iOS + iPadOS) — Sep 2026
2-minute recruiter review: open one featured project, check README.md for how to run + what to review, then validate artifacts/, screenshots, and tests.
Portrait of John Doan
John Doan
Software · AI · Data · iOS

Current Focus and Fit

  • Target roles: Software Engineer, AI Engineer, Data Engineer, or iOS Engineer.
  • Primary stack: Java, Python, and Swift / SwiftUI — backend APIs, SQL/data workflows, AI integration, and shipped iOS apps.
  • On the App Store: 16 live apps across education, games, finance, health, shopping, and more — including Streak Rings on Apple Watch and 503020: Budget Coach with on-device Apple Intelligence coaching.
  • Delivery style: clear runbooks, reproducible artifacts, and test-backed implementation.

Now: building live AI agents on Google Gemini, shipping iOS app updates, and exploring on-device AI (Apple Intelligence / Core ML), while open to new opportunities.

On the App Store Live 16 apps

All Apps

Featured Projects (Start Here)

Full Project Index
John's AI Lab — three live Google Gemini agents

John's AI Lab (Gemini Agents)

Google Gemini Agents Angular 22 Vercel

Three live Gemini agents: a tool-calling review analyst with streamed traces, a grounded concierge, and schema-validated playable math missions.

Proof: live demo • streamed tool-call traces • agent loop on GitHub
Job Search Agent — agentic RAG pipeline with a human approval gate

Job Search Agent

Python Claude API RAG / BM25 AWS

Reads a job posting, retrieves matching evidence from a canonical inventory, and drafts tailored bullets — with a human approval gate and grounding enforced in code.

Proof: 33 unit tests • 5 stages • Terraform on AWS ECS
Vela Commerce — Blazor WebAssembly catalog grid of maritime outfitter products

Vela Commerce (.NET 10)

.NET 10 C# Blazor WASM PostgreSQL 18

A storefront where nothing on first paint depends on a resource that sleeps — browse, search, filter and sort all run client-side, so the shop works with the backend switched off.

Proof: 175 tests • invariants enforced in PostgreSQL • CI gates — no hosted demo yet
Job Application Tracker (Java) project preview

Job Application Tracker (Java)

Java Maven SQLite JUnit

Console-to-Swing build with SQLite persistence, search/sort, and baseline tests.

Proof: screenshots by stage • DB file • run steps • tests
AI Lab on GKE — keyless Vertex AI via Workload Identity, provisioned in Terraform

AI Lab on GKE

GKE Autopilot Workload Identity Terraform Vertex AI

The same agents on Kubernetes: the pod reaches Vertex AI through Workload Identity — no API key in the image, the manifests, or the Terraform.

Proof: "auth":"adc" from the pod • 13 resources, one apply • destroyed same day
Customer Metrics Pipeline & API preview

Customer Metrics Pipeline & API

Python FastAPI ETL OpenAPI

ETL produces curated metrics, then FastAPI serves a scoring endpoint with OpenAPI.

Proof: OpenAPI docs • saved artifacts • run steps
Support Ticket Analytics dashboard preview

Support Ticket Analytics

Data DuckDB KPIs Dashboard

Support analytics pipeline with ETL, KPI tracking, lightweight text signals, and dashboards.

Proof: DuckDB mart • KPI outputs • dashboard view
Workflow Board — React drag-and-drop task board preview

Workflow Board (React)

React 19 TypeScript @dnd-kit Vite

Trello-style drag-and-drop board with WIP limits, mock multiplayer, and cross-tab sync.

Proof: live demo • normalized store • custom hooks
Hangman Encyclopedia — Angular word game with a collection meta-game preview

Hangman Encyclopedia (Angular)

Angular 22 Signals TypeScript SCSS

Hangman with a collection meta-game — 434 fact-checked entries across 12 volumes unlock as you solve, in light or dark mode.

Proof: live demo • signals store • curated word banks

AI Career Assistant

Grounded RAG demo

Live demonstration of retrieval-augmented generation (RAG) applied to this portfolio. Ask a recruiter-style question — the assistant grounds every answer in the projects, tools, and credentials on this site. Same pattern I use in RAG Mini Chat and the iOS apps' on-device assistance layer.

Demo note: deterministic client-side sample using portfolio facts (no external AI API call).
Sample response Ready

Backend Services (Java + Python)

Backend services and APIs with validation and documented endpoints (OpenAPI).

Data & Analytics (SQL + DuckDB)

Data marts, ETL pipelines, and dashboards with saved artifacts and reproducible runs.

AI Agents & RAG (Gemini + Grounding)

Live Gemini agents with streamed tool calls, grounding, and schema-validated output — plus retrieval prototypes with run logs and debuggable outputs.

TOOLS & WORKFLOW

Day-to-day tooling across coding, cloud, AI, iOS, and data delivery

Current 2026 toolkit. amber = currently learning / next focus.

Java Python Swift / SwiftUI TypeScript Spring Boot FastAPI Django Angular React SQL Docker Terraform GitHub Actions AWS GCP (Vertex AI) Gemini / Claude APIs

IDEs & Code Editors

Daily coding across general-purpose editing, ecosystem IDEs, and Apple's toolchain.

VS Code IntelliJ IDEA PyCharm Xcode

AI Coding Assistants

Modern AI assistants and agentic coding tools for suggestions, refactors, and paired implementation.

Claude (Sonnet / Opus) Claude Code GitHub Copilot Cursor Aider Codex CLI JetBrains AI

iOS / Swift Ecosystem

Native iOS end-to-end: SwiftUI + modern frameworks, on-device storage and AI, App Store delivery.

Swift SwiftUI Xcode Swift Concurrency SwiftData Core Data Combine AVFoundation App Intents Apple Intelligence Swift Testing TestFlight App Store Connect

Version Control & Collaboration

Source-control workflow for branching, code review, pre-commit hooks, and collaborative delivery.

Git GitHub PR review Conventional Commits pre-commit Dependabot

Databases & Storage

Relational, embedded, and key-value stores for production services and rapid prototyping.

SQLite DuckDB JDBC PostgreSQL Redis MongoDB pgvector

Cloud Platforms

Hosting, serverless, object storage, and managed databases for production workloads.

AWS (Lambda · S3 · RDS · IAM) Cloudflare (Workers · R2 · Pages) GCP (Vertex AI · Cloud Run · BigQuery) Vercel Render

CI/CD & Containers

Containerized development, orchestration, automated delivery pipelines, and infrastructure-as-code.

Docker Docker Compose Kubernetes Helm GitHub Actions Terraform / OpenTofu

Observability & Monitoring

Production telemetry — logs, traces, metrics, and error tracking to keep services debuggable in the wild.

Structured logging Sentry OpenTelemetry Grafana Prometheus

AI / LLM Engineering

Agents, retrieval, grounding, on-device LLMs, and the LLM-app SDK stack — the AI work, not the AI-assisted editor.

Google Gemini (AI Studio · Vertex AI) AI agents (function calling · tool loops) Structured output (responseSchema) Streaming (NDJSON agent traces) Apple Intelligence RAG (Retrieval-Augmented Generation) Embeddings Prompt engineering On-device LLM Anthropic API OpenAI API LangChain / LlamaIndex Hugging Face Ollama Chroma / pgvector MLflow

API Development & Testing

Endpoint design, contract documentation, manual exploration, and automated testing across unit, API, and end-to-end.

OpenAPI / Swagger Postman Bruno (Git-native) pytest JUnit 5 Swift Testing Playwright k6 / Locust

Project Management & Communication

Sprint planning, tracking, async documentation, and team communication around implementation.

Confluence Jira Linear Notion Slack Figma Discord Loom

Languages & Frameworks

Day-to-day languages, backend / data / web libraries, and the modern Python + Java + Swift toolchain.

Python Java Swift C# SQL JavaScript TypeScript React Angular Vite HTML / CSS FastAPI Django Pydantic Pandas scikit-learn JUnit 5 .NET 10 Blazor Spring Boot Ruff + uv dbt Polars