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.

En curso

Auditorí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 curso

Sistema 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
Entregado

Move 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

CamMenu

Publicado

Fotografía un menú que no puedes leer y recibe frases que puedes señalar para pedir.

  • 16,229 líneas de Dart
  • 5 idiomas

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

Idea Manager

En línea

Boceta 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
  • Next.js
  • TypeScript
  • Prisma
Tienda unipersonal

Tienda unipersonal

Cerrado

Un 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
  • Web
Zhi Jian Studio

Zhi Jian Studio

En línea

El 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
  • Web
ChatCal

ChatCal

En línea

Lleva tu calendario conversando con él en lugar de rellenar formularios.

  • 2,015 líneas de código
  • 26 rutas
  • Web
Threads Filter

Threads Filter

En línea

Clasifica y filtra publicaciones de Threads para que solo pase lo que quiero leer.

  • 2,505 líneas de código
  • 4 tablas de BD
  • Node.js
Survival Wallet

Survival Wallet

En línea

Un registro de gastos cuyos datos se quedan en tu propio navegador y nunca se suben.

  • 2,696 líneas de código
  • 17 pruebas
  • PWA
  • sql.js
  • vitest
MathBox

MathBox

En línea

Una caja de herramientas matemáticas que reúne en un solo lugar los cálculos y gráficas más comunes.

  • 4,420 líneas de código
  • Node.js
  • Express

Mentora

Requiere acceso

Un 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 acceso

Una plataforma personal de asistentes de IA; las respuestas se muestran a medida que se generan.

  • 4,974 líneas de código
  • 13 rutas
  • Next.js
  • SSE

SocialAgents

En línea

Lleva 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ínea

Fotografí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
  • Bun
  • Web

KeyStorage

En línea

Guarda claves cifradas en el navegador usando la Web Crypto API integrada.

  • 1,159 líneas de código
  • Web Crypto API

Worklog

En línea

Una línea al día con lo que se hizo. Corre en el NAS de casa.

  • 971 líneas de código
  • Bun

Herramientas de desarrollo y backends

Cosas que escribí para resolver mis propios problemas. La mayoría no tiene interfaz pública.

DingDong

En curso

El 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 acceso

Construido 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

Prototipo

Un 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

Prototipo

Una 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.

  • 960 líneas de código
  • Chrome Extension MV3

Aún no públicos

FirstFrame

En pruebas

Un 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

Enviado

Una 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
  • Swift
  • SwiftUI

Prototipo de ERP

Prototipo

Un 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
  • Vue 3

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.

Contacto

Abierto a trabajo por contrato y colaboraciones, o simplemente cuéntame qué estás construyendo.