Unabhängiger Entwickler · Taichung

Fünf Apps im App Store.

Und fünfzehn weitere Websites und Dienste, die bis heute laufen.

Photonik-Student im dritten Jahr an der Feng Chia University, kein Informatikstudium. Hier steht, was ich tatsächlich fertiggestellt und abgeliefert habe — darunter ein Produkt, das ich selbst eingestellt habe.

iOS-Apps veröffentlicht
5
Websites und Dienste in Betrieb
15
Sicherheitslücken in Produktion behoben
2

Was ich gebaut habe

Die fünf Apps erscheinen unter meinem eigenen Firmenkonto Gomiigo Games (juristische Person: Tuthome Co., Ltd.); jede davon habe ich von Anfang bis Ende selbst gebaut. Alle Websites und Dienste unten laufen auf einem einzigen Linux-Server, den ich selbst administriere.

Laufend

Audit und Fehlerbehebung einer Bildungsplattform

Als externer Entwickler in einer laufenden Next.js + Supabase-Plattform gearbeitet; zwei Sicherheitslücken gefunden und behoben.

Kein Neubau — sondern Arbeit in der Codebasis eines anderen, mit echten Nutzern bereits im System. Die beiden Lücken: ein Pfad zur Rechteausweitung im Mehrrollen-Berechtigungsmodell und eine mandantenübergreifende Datenoffenlegung. Alles wurde als geprüfte pull requests gegen ein Postgres-Schema geliefert, das durch row-level security abgesichert ist. Der Kunde wird vereinbarungsgemäß nicht genannt.

Sicherheitslücken behoben
2
Commits geliefert
54
Datenbank-Migrationen
44
  • TypeScript
  • Next.js
  • React
  • Supabase
  • PostgreSQL
  • RLS
Laufend

Entwicklungssystem

Ein Satz Arbeitsregeln, die ich für mich selbst geschrieben habe: wie Arbeit verteilt wird, wie sie geprüft wird und wie jeder Fehler zu einer Regel wird.

Die Kernregel ist ein Satz: Wer produziert, prüft nie selbst. Ist etwas fertig, öffne ich eine neue Sitzung ohne jede Erinnerung daran, wie es entstanden ist, und sie darf nur drei Antworten geben — bestanden, durchgefallen mit Belegen oder „nicht prüfbar“. Daneben steht ein Protokoll mit 34 Einträgen aus zehn Monaten: Dinge, die schiefgegangen sind, jeweils umgeschrieben zu einer Regel für spätere Arbeit.

wiederverwendbare Skills
126
Postmortem-Einträge
34
der Kosten lagen in der Hauptsitzung, über 170 gemessene Sitzungen
88%
  • Claude Code
  • Markdown
  • Shell
  • Node.js
  • Python
Geliefert

Move On Australia

Das CRM eines Umzugsunternehmens in Australien, für das ich drei Automatisierungen gebaut habe: KI-Einsatzplanung der Teams, Auftragserfassung aus E-Mails und Routenoptimierung.

Der Kunde hatte bereits ein Low-Code-CRM auf Base44; meine Aufgabe war, es von selbst laufen zu lassen. Die KI-Planung teilt die Teams nach Verfügbarkeit und Standort ein, das E-Mail-Parsing macht aus eingehenden Anfragen strukturierte Aufträge, und die Routenoptimierung ermittelt die günstigste Fahrt durch den Tag. Die KI-Aufrufe laufen über Serverless-Funktionen, das Modell ist explizit im Code benannt. Geliefert und abgeschlossen, alle drei Zahlungsmeilensteine freigegeben.

Zeilen Code
30,005
Automatisierungen
32
Datenentitäten
15
  • Base44
  • Serverless Functions
  • Claude API

Weitere Apps im App Store

CamMenu

CamMenu

Veröffentlicht

Eine Speisekarte fotografieren, die man nicht lesen kann — und Sätze zurückbekommen, auf die man beim Bestellen zeigen kann.

  • 16,229 Zeilen Dart
  • 5 Sprachen
Fooda

Fooda

Veröffentlicht

Eine Mahlzeit fotografieren und in die Nährwertaufnahme des Tages umrechnen lassen.

DueBox

DueBox

Veröffentlicht

Eine Rechnung fotografieren; Betrag und Fälligkeitsdatum werden ausgelesen.

Websites & Dienste

Alle laufen noch und lassen sich direkt öffnen. Die mit „Login nötig“ markierten haben ein Kontosystem — dort landet man auf einer Anmeldeseite, nicht im Produkt selbst.

Ideen-Manager

Ideen-Manager

Online

Ideen auf eine Leinwand skizzieren und sie von der KI entlang der Verbindungen zwischen den Knoten erweitern lassen.

  • 7,064 Zeilen Code
  • 20 API-Routen
  • Next.js
  • TypeScript
  • Prisma
Bestellseite für Kleinstläden

Bestellseite für Kleinstläden

Eingestellt

Ein Bestellsystem für Kleinstläden. Acht Läden per Direktnachricht angeboten; am vorab festgelegten Stichtag: null Verkäufe. Ich habe es eingestellt.

Die Idee war eine Konfigurationsdatei pro Laden — eine White-Label-Bestellseite, die sich in einer Stunde für einen neuen Laden umgestalten lässt. Die Kriterien für Bestehen und Scheitern sowie die Ausstiegsklausel habe ich vor dem Start geschrieben und am festgelegten Stichtag abgerechnet. Alle drei Bedingungen waren nicht erfüllt. Die Seite ist noch online, weil das Projekt mehr darüber sagt, wie ich entscheide, als jeder der Erfolge: erst definieren, wie Scheitern aussieht, und es dann auch so benennen.

  • 8 Läden angesprochen
  • 0 Verkäufe
  • Web
Zhi Jian Studio

Zhi Jian Studio

Online

Die Website meines eigenen Studios für Auftragsarbeit: die eigenen Werkzeuge behalten, den Arbeitsablauf automatisieren.

  • 6,354 Zeilen Code
  • 4.5 Monate gepflegt
  • Web
ChatCal

ChatCal

Online

Einen Kalender führen, indem man mit ihm chattet, statt Formulare auszufüllen.

  • 2,015 Zeilen Code
  • 26 Routen
  • Web
Threads-Filter

Threads-Filter

Online

Klassifiziert und filtert Threads-Beiträge, sodass nur durchkommt, was ich lesen will.

  • 2,505 Zeilen Code
  • 4 Datenbanktabellen
  • Node.js
Survival Wallet

Survival Wallet

Online

Eine Ausgabenverwaltung, deren Daten im eigenen Browser bleiben und nie hochgeladen werden.

  • 2,696 Zeilen Code
  • 17 Tests
  • PWA
  • sql.js
  • vitest
MathBox

MathBox

Online

Ein Mathe-Werkzeugkasten, der die gängigen Berechnungen und Diagramme an einem Ort bündelt.

  • 4,420 Zeilen Code
  • Node.js
  • Express

Mentora

Login nötig

Ein KI-Lernbegleiter; eine Frage durchläuft fünf oder sechs Analyseschritte, bevor sie beantwortet wird.

  • 7,038 Zeilen Code
  • 12 KI-Routen
  • Next.js 16
  • Clerk
  • Supabase
  • gRPC

AgentHub

Login nötig

Eine persönliche Plattform für KI-Assistenten; Antworten erscheinen als Stream, während sie entstehen.

  • 4,974 Zeilen Code
  • 13 Routen
  • Next.js
  • SSE

SocialAgents

Online

Bringt KI-Assistenten auf LINE und Telegram; ein Arbeitsbereich verwaltet mehrere Personas und ihre Kontakte.

  • 2,119 Zeilen Code
  • 7 Datenbanktabellen
  • Next.js 16
  • Drizzle
  • PostgreSQL 18
  • LINE
  • Telegram

Hausaufgabenhilfe

Online

Eine Aufgabe fotografieren oder eintippen und Schritt für Schritt durch die Lösung geführt werden; die KI-Schicht hat sechs Fallback-Stufen.

  • 4,428 Zeilen Code
  • 29 Endpunkte
  • Bun
  • Web

KeyStorage

Online

Speichert Schlüssel verschlüsselt im Browser, mit der eingebauten Web Crypto API.

  • 1,159 Zeilen Code
  • Web Crypto API

Worklog

Online

Eine Zeile pro Tag für das, was erledigt wurde. Läuft auf dem NAS zu Hause.

  • 971 Zeilen Code
  • Bun

Entwicklerwerkzeuge & Backends

Dinge, die ich geschrieben habe, um eigene Probleme zu lösen. Die meisten haben keine öffentliche Oberfläche.

DingDong

Laufend

Das früheste Projekt hier: ein LINE-Bot mit einem vollständigen Backend dahinter — Zeitplanung, Task-Queues und Datenmodelle, alles von Grund auf gebaut.

Das war mein erstes richtiges Backend: vorne ein LINE-Bot, dahinter FastAPI mit 44 Endpunkten über 18 Datenmodelle, Celery für geplante und asynchrone Jobs, MySQL als Speicher und Redis als Cache — alles in Docker, neben einer Gitea-Instanz, die ich selbst hoste. KI kommt darin nirgends vor; damit hatte ich damals noch nicht angefangen.

  • 12,618 Zeilen Python
  • 44 API-Endpunkte
  • 18 Datenmodelle
  • Python
  • FastAPI
  • Celery
  • MySQL
  • Redis
  • Docker
  • LINE API

Job-Screening-System

Login nötig

Gebaut, um ein eigenes Problem zu lösen: Stellenanzeigen automatisch sammeln, durch einen gestuften KI-Filter sieben und verfolgen, worauf ich mich beworben habe.

  • 195 Commits
  • 82 API-Endpunkte
  • 11 Datenbanktabellen
  • Node.js
  • SQLite
  • Playwright
  • nginx
  • systemd

SkillsHub

Prototyp

Ein Model-Context-Protocol-Server, über den eine KI meine eigene Skill-Bibliothek direkt lesen kann.

Das Model Context Protocol erlaubt einer KI, externe Daten direkt zu lesen. Ich habe einen MCP-Server in Next.js geschrieben, damit eine KI meine eigene Skill-Bibliothek abfragen kann, statt dass ich sie ihr stückweise einfüge. Darunter Drizzle und SQLite, dazu die GitHub API für Repository-Daten.

  • 3,755 Zeilen Code
  • 4 Datenbanktabellen
  • Next.js 15
  • Drizzle
  • SQLite
  • MCP SDK
  • Docker

FocusMask

Prototyp

Eine Chrome-Erweiterung, die die Teile einer Seite ausblendet, die mich ablenken.

Eine Chrome-Erweiterung auf Manifest V3. Sie tut genau eines: die Teile einer Seite ausblenden, von denen ich nicht wegschauen kann — die Empfehlungen in der Seitenleiste, die verwandten Videos darunter, den Social-Feed. Die Regeln bleiben im Browser; kein Konto, nichts wird hochgeladen.

  • 960 Zeilen Code
  • Chrome Extension MV3

Noch nicht öffentlich

FirstFrame

Im Test

Ein Fotografie-Assistent auf Basis des Vision-Frameworks, in acht Sprachen. Derzeit auf TestFlight.

Echtzeit-Bildanalyse mit Apples Vision-Framework, die Kamera läuft über AVFoundation — so sagt die App, was an der Komposition nicht stimmt, bevor man den Auslöser drückt. Acht Sprachversionen, 114 Commits, derzeit auf TestFlight und noch nicht im App Store eingereicht.

  • 10,955 Zeilen Swift
  • 114 Commits
  • 8 Sprachen
  • Swift
  • SwiftUI
  • Vision
  • AVFoundation
  • fastlane

Bloopz

Eingereicht

Eine kleine Spiele-App, in drei Tagen vom Konzept bis zur Einreichung im App Store.

Es ging nicht um Komplexität — ich wollte wissen, wie lange ich brauche, um eine Idee bis zur Einreichung durchzuziehen. Drei Tage, inklusive Grafik, IAP-Einrichtung und Store-Material.

  • 3,659 Zeilen Code
  • 3 Tage, Konzept bis Einreichung
  • Swift
  • SwiftUI

ERP-Prototyp

Prototyp

Ein Prototyp für Lagerverwaltung — das einzige Projekt hier, das in Vue geschrieben ist.

Ein Prototyp für Lagerverwaltung: neun Tabellen für Produkte, Bestand, Wareneingang, Warenausgang und Kunden. Es ist das einzige Projekt hier, das in Vue geschrieben ist — bewusst gewählt, damit ich weiß, wo sich Vue und React bei echter Arbeit tatsächlich unterscheiden.

  • 3,086 Zeilen Code
  • 9 Datenbanktabellen
  • Vue 3

Wie ich arbeite

Wer produziert, prüft nicht

Die meisten nutzen KI als Antwortmaschine: fragen, annehmen, weiter. Die Gewohnheit, die meine Ergebnisse verändert hat, war die Trennung von Produzieren und Prüfen. Die Sitzung, die etwas gerade fertiggestellt hat, darf nie dieselbe sein, die es beurteilt. Eine Sitzung, die etwas gerade geschrieben hat, verteidigt es. Eine, die es noch nie gesehen hat, nicht.

Messen, bevor man den eigenen Annahmen traut

Ich war mir sicher, dass die Verteilung von Arbeit auf mehrere KI-Agenten das Teure daran war, also habe ich alles in einer einzigen Konversation gehalten. Dann habe ich es über 170 meiner eigenen Sitzungen gemessen: Die Hauptkonversation machte rund 88 % der Kosten aus, alle delegierten Agenten zusammen etwa 12 %. Ich hatte die Kausalität verkehrt herum. Hängen geblieben ist nicht die Zahl, sondern dass ich monatelang eine feste Meinung vertreten hatte, ohne sie ein einziges Mal zu prüfen — und dass die Prüfung etwa eine Stunde gedauert hat.

Das Urteil bleibt bei mir

Der Großteil meiner Arbeit entsteht mit KI-Unterstützung, und das verberge ich nicht. Aber die Aufteilung ist klar: Die KI übernimmt die Menge, das Urteil bleibt bei mir. Was gebaut wird, was als fertig gilt und wo nicht nachgegeben wird — das wird nicht delegiert.

Über mich

Ich bin Po-Han Hua, Photonik-Student im dritten Jahr an der Feng Chia University in Taichung, Abschluss voraussichtlich im Frühjahr 2028.

Ich komme nicht aus der Informatik — Software bauen habe ich gelernt, indem ich Dinge gebaut habe, die ich haben wollte. Ich glaube, viele Studierende außerhalb der Informatik könnten auf diesem Weg echte Dinge bauen. Auch die Person neben mir im Optiklabor; den meisten hat es nur nie jemand gesagt.

Kontakt

Offen für Auftragsarbeit und Zusammenarbeit — oder erzählen Sie mir einfach, woran Sie gerade bauen.