Desarrollador independiente · Taichung
Cinco apps en el App Store.
Y quince sitios y servicios más que siguen funcionando hoy.
Estudiante de tercer año de Fotónica en Feng Chia University, no de Informática. Esto es lo que realmente terminé y entregué, incluido un producto que cerré yo mismo.
- apps iOS publicadas
- 5
- sitios y servicios en funcionamiento
- 15
- defectos de seguridad corregidos en producción
- 2
Lo que he construido
Las cinco apps se publican bajo la cuenta de mi propia empresa, Gomiigo Games (entidad legal: Tuthome Co., Ltd.); construí cada una de principio a fin. Todos los sitios y servicios de esta lista corren en un único servidor Linux que administro yo mismo.
PublicadoHavenCircle
Convierte unas 10 fuentes gubernamentales y de noticias en alertas de desastre que solo se disparan cuando el evento está realmente cerca de alguien que te importa.
La mayoría de las apps de alertas no fallan por omitir eventos, sino por avisar tanto que la gente las silencia. Esta deduplica los eventos entrantes, los puntúa en tres niveles de confianza y notifica solo cuando un evento intersecta un círculo de vida definido por el usuario: familiares y lugares, cada uno con un radio y una ventana de tiempo. Las direcciones del hogar se guardan cifradas con AES-GCM, y el widget de la pantalla de inicio solo lee instantáneas del App Group, nunca datos de ubicación.
- días hasta el envío
- 19
- líneas de Swift
- 20,867
- fuentes de datos
- ~10
- Swift
- SwiftUI
- SwiftData
- MapKit
- WidgetKit
- Firebase
- APNs
PublicadoGridDay
Organiza el día en una cuadrícula de 3×3: termina algo y se enciende una celda. De cero al envío en ocho días.
Construida sobre un sistema propio de componentes de UI en lugar de los List y TabView del sistema. Sus siete idiomas —871 cadenas— se ensamblan con tres scripts en vez de copiarse a mano, y la ficha de la tienda, la información para revisión y las 84 capturas localizadas se suben todas a través de la App Store Connect API.
- días, de cero al envío
- 8
- pruebas de UI
- 40
- idiomas
- 7
- Swift
- SwiftUI
- SwiftData
- XCUITest
- App Store Connect API
En líneaWanQu Game Box
Un sitio gratuito de juegos de navegador que construí, lleno de juegos que también construí.
La plataforma en sí es Next.js, pero el tiempo se fue en los juegos: cuatro rutas técnicas distintas —Godot, Phaser 3, React y Canvas puro— porque quería saber cuánto cuesta realmente el mismo tipo de jugabilidad en cada motor. Uno de ellos se portó por completo de Godot a Phaser, y ese port se convirtió en un proceso reutilizable que desde entonces he vuelto a seguir.
- juegos
- 12
- motores de juego
- 4
- espacios de juego
- 13
- Next.js 14
- Prisma
- Godot
- Phaser 3
- TypeScript
- Canvas
En cursoAuditoría y correcciones de plataforma educativa
Trabajé como contratista dentro de una plataforma Next.js + Supabase en producción; encontré y corregí dos defectos de seguridad.
No fue un desarrollo desde cero: significó trabajar dentro del código de otra persona, con usuarios reales ya en él. Los dos defectos eran una vía de escalada de privilegios en el modelo de permisos multirrol y una exposición de datos entre tenants. Todo se entregó como pull requests revisados sobre un esquema de Postgres regido por políticas de row-level security. Por acuerdo, el cliente no se nombra aquí.
- defectos de seguridad corregidos
- 2
- commits entregados
- 54
- migraciones de BD
- 44
- TypeScript
- Next.js
- React
- Supabase
- PostgreSQL
- RLS
En cursoSistema de desarrollo
Un conjunto de reglas de trabajo que escribí para mí: cómo se reparte el trabajo, cómo se verifica y cómo cada error se convierte en una regla.
La regla central cabe en una línea: quien produce el trabajo nunca lo verifica. Cuando algo está terminado, abro una sesión nueva sin memoria de cómo se hizo, y solo puede devolver tres respuestas: aprobado, rechazado con evidencia, o «no se puede verificar». Junto a ella hay un registro de 34 entradas de cosas que salieron mal a lo largo de diez meses, cada una reescrita como una regla que se aplica al trabajo posterior.
- skills reutilizables
- 126
- entradas de postmortem
- 34
- del costo recayó en la sesión principal, en 170 sesiones medidas
- 88%
- Claude Code
- Markdown
- Shell
- Node.js
- Python
EntregadoMove On Australia
El CRM de una empresa de mudanzas en Australia, donde construí tres piezas de automatización: asignación de equipos con IA, extracción de pedidos desde el correo y optimización de rutas.
El cliente ya tenía un CRM de bajo código en Base44; mi trabajo era hacer que funcionara solo. La asignación con IA reparte los equipos según disponibilidad y ubicación, el análisis del correo convierte las consultas entrantes en pedidos estructurados, y la optimización de rutas calcula la forma más barata de recorrer el día. Las llamadas a la IA pasan por funciones serverless, con el modelo indicado explícitamente en el código. Entregado y cerrado, con los tres hitos de pago liberados.
- líneas de código
- 30,005
- funciones de automatización
- 32
- entidades de datos
- 15
- Base44
- Serverless Functions
- Claude API
Otras apps en el App Store

CamMenu
PublicadoFotografía un menú que no puedes leer y recibe frases que puedes señalar para pedir.
- 16,229 líneas de Dart
- 5 idiomas

Fooda
PublicadoFotografía una comida y conviértela en la ingesta nutricional del día.

DueBox
PublicadoFotografía una factura; extrae el monto y la fecha de vencimiento.
Sitios y servicios
Todos siguen funcionando y puedes abrirlos directamente. Los marcados con «requiere acceso» tienen sistema de cuentas: llegarás a una página de inicio de sesión, no al producto en sí.

Idea Manager
En líneaBoceta ideas en un lienzo y deja que la IA las expanda siguiendo los enlaces entre nodos.
- 7,064 líneas de código
- 20 rutas de API

Tienda unipersonal
CerradoUn sistema de pedidos para microempresas. Lo ofrecí a ocho tiendas por mensaje directo; en la fecha que había fijado de antemano para evaluarlo: cero ventas. Lo cerré.
La idea era un archivo de configuración por tienda: una página de pedidos de marca blanca que pudiera adaptarse a un comercio nuevo en una hora. Escribí la regla de aprobado/fallido y la cláusula de salida antes de empezar, y luego hice cuentas en la fecha fijada. Fallaron las tres condiciones. Sigue en esta página porque dice más sobre cómo decido que cualquiera de los éxitos: primero definir qué es un fracaso, y después reconocerlo.
- 8 tiendas contactadas
- 0 ventas

Zhi Jian Studio
En líneaEl sitio de mi propio estudio de desarrollo por encargo: conserva tus herramientas, automatiza el flujo de trabajo.
- 6,354 líneas de código
- 4.5 meses de mantenimiento

ChatCal
En líneaLleva tu calendario conversando con él en lugar de rellenar formularios.
- 2,015 líneas de código
- 26 rutas

Threads Filter
En líneaClasifica y filtra publicaciones de Threads para que solo pase lo que quiero leer.
- 2,505 líneas de código
- 4 tablas de BD

Survival Wallet
En líneaUn registro de gastos cuyos datos se quedan en tu propio navegador y nunca se suben.
- 2,696 líneas de código
- 17 pruebas

MathBox
En líneaUna caja de herramientas matemáticas que reúne en un solo lugar los cálculos y gráficas más comunes.
Mentora
Requiere accesoUn compañero de estudio con IA; una sola pregunta encadena cinco o seis pasadas de análisis antes de responder.
- 7,038 líneas de código
- 12 rutas de IA
- Next.js 16
- Clerk
- Supabase
- gRPC
AgentHub
Requiere accesoUna plataforma personal de asistentes de IA; las respuestas se muestran a medida que se generan.
- 4,974 líneas de código
- 13 rutas
SocialAgents
En líneaLleva asistentes de IA a LINE y Telegram; un solo espacio de trabajo gestiona varios perfiles y sus contactos.
- 2,119 líneas de código
- 7 tablas de BD
- Next.js 16
- Drizzle
- PostgreSQL 18
- LINE
- Telegram
Homework Solver
En líneaFotografía o escribe un problema y recibe la resolución paso a paso; la capa de IA tiene seis niveles de respaldo.
- 4,428 líneas de código
- 29 endpoints
KeyStorage
En líneaGuarda claves cifradas en el navegador usando la Web Crypto API integrada.
Worklog
En líneaUna línea al día con lo que se hizo. Corre en el NAS de casa.
Herramientas de desarrollo y backends
Cosas que escribí para resolver mis propios problemas. La mayoría no tiene interfaz pública.
DingDong
En cursoEl proyecto más antiguo de esta lista: un bot de LINE con un backend completo detrás —programación de tareas, colas y modelos de datos, todo construido desde cero.
Este fue mi primer backend de verdad: un bot de LINE al frente y, detrás, FastAPI sirviendo 44 endpoints sobre 18 modelos de datos, Celery ejecutando tareas programadas y asíncronas, MySQL para almacenamiento y Redis como caché, todo en Docker, junto a una instancia de Gitea que alojo yo mismo. No hay IA en ninguna parte; todavía no había empezado con eso.
- 12,618 líneas de Python
- 44 endpoints de API
- 18 modelos de datos
- Python
- FastAPI
- Celery
- MySQL
- Redis
- Docker
- LINE API
Sistema de filtrado de ofertas
Requiere accesoConstruido para resolver mi propio problema: extraer ofertas de trabajo, filtrarlas con un filtro de IA por niveles y llevar registro de las que solicité.
- 195 commits
- 82 endpoints de API
- 11 tablas de BD
- Node.js
- SQLite
- Playwright
- nginx
- systemd
SkillsHub
PrototipoUn servidor Model Context Protocol que permite a una IA leer directamente mi propia biblioteca de skills.
Model Context Protocol permite que una IA lea datos externos directamente. Escribí un servidor MCP en Next.js para que una IA pueda consultar mi propia biblioteca de skills en lugar de que yo se la pegue trozo a trozo. Por debajo, Drizzle y SQLite, más la GitHub API para los datos de los repositorios.
- 3,755 líneas de código
- 4 tablas de BD
- Next.js 15
- Drizzle
- SQLite
- MCP SDK
- Docker
FocusMask
PrototipoUna extensión de Chrome que oculta las partes de una página que me distraen.
Una extensión de Chrome sobre Manifest V3. Hace una sola cosa: oculta las partes de una página que no puedo dejar de mirar —las recomendaciones de la barra lateral, los videos relacionados de abajo, el feed social—. Las reglas viven en el navegador; sin cuenta, sin subir nada.
Aún no públicos
FirstFrame
En pruebasUn asistente de fotografía construido sobre el framework Vision, en ocho idiomas. Actualmente en TestFlight.
Análisis del encuadre en tiempo real con el framework Vision de Apple, con AVFoundation controlando la cámara, de modo que te dice qué falla en la composición antes de presionar el disparador. Ocho idiomas, 114 commits, actualmente en TestFlight y aún sin enviar al App Store.
- 10,955 líneas de Swift
- 114 commits
- 8 idiomas
- Swift
- SwiftUI
- Vision
- AVFoundation
- fastlane
Bloopz
EnviadoUna pequeña app de juego llevada del concepto al envío al App Store en tres días.
La cuestión no era la complejidad: quería saber cuánto tardo en llevar una idea hasta el envío. Tres días, incluidos el arte, la configuración de IAP y los recursos de la tienda.
- 3,659 líneas de código
- 3 días, del concepto al envío
Prototipo de ERP
PrototipoUn prototipo de gestión de inventario: el único proyecto de esta lista escrito en Vue.
Un prototipo de gestión de inventario: nueve tablas que cubren productos, existencias, entradas, salidas y clientes. Es el único proyecto de esta lista escrito en Vue, elegido a propósito para saber en qué se diferencian realmente Vue y React en trabajo real.
- 3,086 líneas de código
- 9 tablas de BD
Cómo trabajo
Quien lo produce no lo verifica
La mayoría usa la IA como una máquina de respuestas: preguntar, aceptar, seguir. El hábito que cambió mis resultados fue separar producir de comprobar. Nunca dejo que la sesión que acaba de terminar algo sea la que lo juzgue. Una sesión que acaba de escribir algo lo defenderá. Una que nunca lo ha visto, no.
Medir antes de confiar en las propias suposiciones
Estaba seguro de que delegar trabajo entre varios agentes de IA era lo que encarecía las cosas, así que lo mantenía todo en una sola conversación. Luego lo medí en 170 de mis propias sesiones: la conversación principal representaba cerca del 88 % del costo, y todos los agentes delegados juntos, alrededor del 12 %. Tenía la causalidad al revés. Lo que se me quedó no fue el número, sino que había sostenido una opinión con total seguridad durante meses sin comprobarla ni una vez, y comprobarla me llevó cerca de una hora.
El criterio sigue siendo mío
La mayor parte de mi trabajo se apoya en IA, y no lo oculto. Pero el reparto es claro: la IA cubre el volumen; el criterio es mío. Qué construir, qué cuenta como terminado y dónde no ceder: eso no se delega.
Sobre mí
Soy Po-Han Hua, estudiante de tercer año de Fotónica en Feng Chia University, en Taichung; me gradúo en la primavera de 2028.
No vengo de la informática: aprendí a hacer software construyendo cosas que quería que existieran. Creo que muchos estudiantes fuera de Informática podrían construir cosas reales así. También la persona que se sienta a mi lado en el laboratorio de óptica; a la mayoría simplemente nunca se lo han dicho.