- 🧩 I build iOS apps and enjoy going deep on modularization and architecture
- 🛠️ When I need a tool, I build it myself — from developer CLIs to full products
- 🤖 I prototype fast with AI and turn ideas into shipped software
- ✍️ I like to write down and share what I learn along the way
Things I designed, built, and shipped on my own.
Static analysis tools that turn a codebase into a queryable dependency graph — dead code, cycles, layering rules, and architecture metrics as queries over one graph.
| Tool | Platform | Description |
|---|---|---|
| cartograph | Queryable dependency graph for Swift / iOS codebases, built on IndexStoreDB | |
| kartograph | Explainable dependency graphs and dead-code analysis for Kotlin / Android | |
| dartograph | Evidence-backed dependency graph analysis for Dart / Flutter codebases | |
| isthmus | Joins the graphs above across language boundaries — catches Flutter MethodChannel calls (Dart ↔ Swift) that per-language tools miss; React Native support planned |
|
| vecdiff | Diffs two embedding-index snapshots for vector-DB migrations and index audits — local, numpy-only, CI-gateable |
More tools · 8 more — for AI coding agents and iOS engineering, click to expand
🤖 For AI coding agents — deterministic, local, no LLM in the loop
| Tool | Platform | Description |
|---|---|---|
| joinery | The linker for agent skill stacks — extracts each skill's implicit CLI / MCP / client-feature dependencies, dry-fits them against your machine, locks and compiles per-agent configs | |
| riskgate | One YAML policy that decides what your coding agent may do — allow, prompt, or deny every tool call, portable across agent CLIs, zero dependencies | |
| yield-audit | Outcome accounting for AI coding agents: what survived, what it cost, what was wasted — includes an AI rework-rate lens for phantom productivity | |
| epitaph | A repo-scoped ledger of rejected agent attempts — structured tombstones for rolled-back patches, consulted before the next agent retries the same path | |
| agent2perfetto | Converts Claude Code session logs into Perfetto trace JSON — view agent sessions as timelines, tool slices, and context / cost counters |
📱 For iOS engineering
| Tool | Platform | Description |
|---|---|---|
| locus | Where every UI element lives in source — a static traceability map from iOS accessibility elements to Swift code; CLI + MCP server | |
| strictmigrate | Delegates a Swift 6 strict-concurrency migration to agents — the compiler is the judge, a journal is the single source of truth; spans the KMP boundary | |
| coroner | Local post-mortem triage for iOS telemetry (.ips + MetricKit) — symbolicate, cluster, version-journal, and expose it to coding agents over MCP |
Native macOS apps, built together with AI. Distributed at coden.kr.
| App | Description |
|---|---|
| Storage Medic | Find and clean up what's eating your disk space |
| Nits | Fine-tune display brightness and color temperature |
Side projects I've shipped · click to expand
| Service | Description |
|---|---|
| PickMeJobs | Job postings, aggregated in one place |
| Oneul Buffet | Map of buffets and company cafeterias |
| EVCar | EV charging station map |
| PyeonDeal | Convenience store deals and promotions |
| PolicyHanun | Government policies at a glance |
| Hansan | Real-time crowd density map of Seoul |
| Mosquito Index Map | Map of mosquito and pest activity |
| Observed | Real-time status monitoring for AI tools and infrastructure |




