Works

Open-source tools, a diary app, nine iOS apps, and the jobs behind them.

Open source

Tools I built for my own daily use and published with their source. Each has a small website, and all but Orrery install with Homebrew.

Portway

A local proxy that cuts a coding agent's upload to the size of what changed.

The Portway browser console: 47 requests, 204.6 MB of upload saved, the upstreams in use, and a per-turn request size chart.
The browser console during a Claude Code and Codex session: 96 percent of the upload saved.
The Portway terminal dashboard: turns of 10.9 MB sent as a few kilobytes each, beside the upstreams and a socket throughput chart.
The terminal dashboard showing the same session.

A coding agent resends its whole conversation on every turn: the system prompt, every earlier message, and every tool result. Turn N is turn N-1 plus a few kilobytes, yet the entire body is uploaded again, so the upload volume of a session grows with the square of the number of turns. Portway sits between the agent and the LLM API, and with portway receive running at the other end, each request crosses the network as the difference from the previous one. On a 1 MiB context, a turn that would upload about 1 MiB uploads about 1 KiB.

The delta is a Dictionary-Compressed Zstandard frame as specified in RFC 9842, keyed by the SHA-256 of the body the receiver confirmed it stored. A lost dictionary falls back to plain zstd, a refused zstd body to an uncompressed one, and application errors are never retried. Around the compression sit model-based routing, a record of every request with its tokens and cost per model and service tier, and two live views of all of it: a terminal dashboard and a browser console.

  • Delta compression that both ends must take part in; pointed at a provider that runs neither, Portway forwards unchanged.
  • Routing by model across upstreams, with no provider, endpoint, credential, or price built in.
  • Token and cost records per model and tier, including long-context rates, with reports from the CLI.
  • A terminal dashboard and a browser console with the same themes: Catppuccin, Tokyo Night, Nord, Dracula, and Gruvbox.
  • portway-core, an embeddable Rust library, beside the CLI; a reproducible benchmark script.
Started
Sep 2026
First release
Sep 2026
Built with
Rust
Runs on
macOS, Linux
License
MIT

portway.told.megithub.com/rath/portway brew install rath/tap/portway

vtamp

A music player for the terminal that keeps playing after you detach.

vtamp in Catppuccin Mocha: album art and the current track above the Library and the Queue, side by side in a wide terminal.
A wide terminal: album art and the current track above Library and Queue.
A short terminal pane keeps the album cover and playback controls on the left, with the queue on the right.
A short pane keeps the cover and playback on the left and the queue on the right.

There used to be a little player in the corner of the desktop: a playlist, an album cover, a green display. vtamp brings a little virtual terminal and a little Winamp spirit together. Playback runs in a persistent server; the interface attaches and detaches like a tmux session, so closing a pane or pressing q never stops the song, and the next vtamp picks up the same queue where it is.

Local files and live radio share one queue. Album art is drawn in the terminal through Sixel or Kitty graphics, macOS media keys and Now Playing keep working after the interface is gone, and the CLI answers in JSON so scripts and agents can read what is playing, edit the queue atomically, and follow an event stream.

  • One persistent playback server, any number of terminal and command-line clients.
  • AAC, ALAC, MP3, FLAC, WAV, and Ogg Vorbis; HLS, MP3, and AAC radio streams; optional YouTube imports with 480p video played inside the terminal.
  • Album art via Sixel or Kitty graphics with a halfblock fallback, an audio spectrum in six styles, and nine colour themes.
  • macOS media keys, Now Playing metadata, and a tmux status-bar plugin.
  • Headless Linux servers that cast Ogg Opus to remote listeners, and a relay mode that plays a remote server through the local device.
Started
Sep 2026
First release
Oct 2026
Built with
Rust
Runs on
macOS; Linux headless
License
MIT

vtamp.told.megithub.com/rath/vtamp brew install rath/tap/vtamp

iotap

See what a process is really doing with your files and your network.

The iotap terminal UI, Files tab: per-second and total throughput, then the files written by a replayed curl download with bytes, calls, and failures per file.
The terminal UI's Files tab after replaying a recorded download.

Give iotap a process ID or a name and it reports every read and write that process makes as it happens: the file or the remote address, how many bytes were asked for and how many moved, how long the call took, and whether it failed. When you stop, it sums the trace up per file and per endpoint. The usual tools each show a piece: lsof lists what is open but not what moves through it, Activity Monitor counts bytes but not where they went, a packet capture has no process behind it, and strace or fs_usage leave the adding up to you.

It works from the kernel's own record of system calls, kdebug on macOS and an embedded eBPF program on Linux, so no debugger is attached to the program and no code is injected into it. iotap keeps only metadata, never the data that moves.

  • Trace by PID or by name, follow the processes a traced one starts, and filter file or network traffic and interfaces.
  • An event stream, a per-target summary, JSON Lines for jq or a log, or a terminal UI with files, endpoints, and the latest 10,000 events.
  • Record a trace and replay it later, in any of those forms, without root.
  • On macOS, OS-measured TCP and UDP traffic including Skywalk, kept separate from the syscall byte counts.
Started
Sep 2026
First release
Oct 2026
Built with
Rust, C, eBPF
Runs on
macOS, Linux
License
MIT

iotap.told.megithub.com/rath/iotap brew install rath/tap/iotap

Vimdow

Your windows, in Vim's vocabulary.

Two windows tiled into the left and right halves of a display after Control-W H and Control-W L in Vimdow's command mode.
From the demo on vimdow.told.me: a terminal and an editor tiled into halves with Control-W, then H and L.

A keyboard-driven window manager for macOS. One shortcut enters command mode; then h, j, k, and l move the focused window, Option and Shift resize it, a count repeats, 0 and $ go to the edges, gg and G to the top and bottom, zz centres, u undoes, and / searches by application name. The mouse stays where it is.

The first version, in 2013, was a small Objective-C app that fixed exactly that for exactly one user. In 2026 it was rewritten in Swift 6 with a tested command engine, signed and notarized, and published for anyone whose hands have the same habits.

  • Move, resize, snap to halves, fill the display, or send a window to the next display, with per-window undo and redo.
  • Numbered window selection, marks that survive Spaces, and application-name search.
  • Eased glides that end exactly where the steps put the window; Reduce Motion is respected.
  • Settings for steps, animation, display edges, and the global shortcuts.
Started
Jun 2013
Rewritten
Sep 2026
Built with
Swift 6, AppKit
Runs on
macOS 14 or later
License
BSD-3-Clause

vimdow.told.megithub.com/rath/Vimdow brew install rath/tap/vimdow

Orrery

Saju, Zi Wei Dou Shu, and Western natal charts, computed entirely in the browser.

An open-source astrology calculator that computes three chart systems with no backend. The planetary ephemeris is Moshier's analytical theory implemented in TypeScript, with no WASM and no external data files, plus a full solar-to-lunar calendar conversion with leap months for the Four Pillars and Purple Star calculations. Available in Korean, Chinese, Japanese, and English; the core engine is published on npm as @orrery/core.

  • Four Pillars of Destiny: the sixty-year stem-and-branch cycle with Ten Gods, twelve life stages, hidden stems, elemental interactions, ten-year luck periods, and transits.
  • Zi Wei Dou Shu: fourteen major stars across the palace grid, with brightness, the Four Transformations, and decade and annual forecasts.
  • Natal chart: ten planets, Chiron, and the lunar nodes across twelve houses, ten house systems, five major aspects, and an interactive SVG wheel.
  • A combined text export of all three charts for AI agents; profiles, dark and light themes.
Started
Feb 2026
Released
Feb 2026
Built with
TypeScript, React
Runs on
Any browser
License
AGPL-3.0

sky.told.megithub.com/rath/orrerynpmjs.com/package/@orrery/core

Apps

A diary app I ran as a business in 2025, and nine side projects from 2015 to 2023 with designer Eui-Hyung Jung.

Mouton Journal

A private diary with a cute AI companion.

  • Mouton Journal's home timeline on an iPhone.
  • Notifications from Mouton, the AI companion.
  • Full-text search across entries.
  • The calendar view.

A subscription-based iOS app, developed from January to April 2025. Ideation, planning, design, the app, the API, and the back-office tools were all mine. Entries are stored locally in SQLite with full-text search and synced to the server with change tokens and conflict resolution, so writing works offline. Mouton, the companion, likes your posts and writes empathetic comments on them, generated from the entry and its photos with content moderation and emotion matching. Available in eight languages.

  • Offline-first: SQLite with FTS5 on the device, a sync protocol with change tokens, automatic conflict resolution, and retries.
  • Photo resizing in Rust through flutter_rust_bridge, so several high-resolution photos stay smooth.
  • Link previews with OpenGraph parsing, quoting other entries or comments, calendar view, search, and PDF export.
  • iPhone and iPad, and macOS on Apple silicon.
Started
Jan 2025
Released
Mar 2025
Commits
1,653
Built with
Flutter, Django, Rust
Languages
8

mouton.told.meApp Store

Nine iOS apps, 2015–2023

Eui-Hyung Jung designed, I was the sole developer: Objective-C and Swift at first, Flutter from 2019.

  1. Daygram : My Secret Diary

    E-ink Style Simple Diary with Password

    Minimal diary app designed to capture thoughts and feelings with intuitive interface. Features password protection and cloud sync.

    May 2015 · Swift · 771 commits · $1.99

    “There is an elegance to DayGram. It allows me to have the timeline benefits of a journal without running into a plethora of interface distractions.”

    “This app is the best, it has a minimalist feel to it. Other apps were too busy and this one is so easy to write a quick note!”

    App Store

    • Daygram screenshot
    • Daygram screenshot
    • Daygram screenshot
  2. Otter - Diet Diary

    Easy Calorie Counter

    Simple food diary app to track daily calories with minimalist design and easy food entry system.

    Feb 2021 · Flutter · 277 commits · $0.99

    “The app is clean, simple and I like the general idea. The UI is just perfect.”

    “Great app. Just what I needed. I was looking for a plain and easy-to-use app!”

    App Store

    • Otter screenshot
    • Otter screenshot
    • Otter screenshot
  3. Tables - Grid Planner

    Designed for Simple Scheduling

    Grid-based planner app for organizing life with customizable layouts and visual task management.

    Oct 2020 · Flutter · 174 commits · $0.99

    “Wonderful! This app has a nice minimal UI and fits my needs. Looking forward to future updates!”

    “Awesome. Finally a simple planner. Worth the money. Sometimes simple is best.”

    App Store

    • Tables screenshot
    • Tables screenshot
    • Tables screenshot
  4. fews - Habit Starter

    Well begun is half done

    Build habits with minimal friction. Simple habit tracker focused on getting started rather than complex systems.

    Sep 2019 · Flutter · 130 commits · $0.99

    “This is a really good app. It helps me see what I should be doing in a clear list!”

    “Simple and clean habit tracker”

    App Store

    • Fews screenshot
    • Fews screenshot
    • Fews screenshot
  5. kipkam

    Take a deep breath

    Breathing exercise app with visual guides and calming animations for stress relief and mindfulness.

    May 2020 · Flutter · 30 commits · $0.99

    “This app is so pretty and useful. I highly recommend it. Hope to see new updates!”

    “Great app - simple to use with a clean layout. Works as it should.”

    App Store

    • Kipkam screenshot
    • Kipkam screenshot
    • Kipkam screenshot
  6. CampNight - Sleep Sounds

    Nature sounds for better sleep

    Natural sleep sounds app featuring campfire, rain, and nature ambience for better sleep quality.

    May 2020 · Flutter · 70 commits · Free

    “Simple, minimalist, and effective. I appreciate that the rain actually sounds like rain!”

    “Nice, simple interface. Would love to see a timer function added.”

    App Store

    • CampNight screenshot
    • CampNight screenshot
    • CampNight screenshot
  7. Haru : Daily calendar & Memo

    Have a good day!

    Elegant calendar app with memo features combining scheduling and note-taking in minimalist design.

    May 2023 · Flutter · 116 commits · $0.99

    “Seamless iCloud sync and very clean app! Cheers to the developer!”

    “Beautiful calendar app!”

    App Store

    • Haru screenshot
    • Haru screenshot
    • Haru screenshot
  8. Tabatach

    Interval workout timer

    Tabata interval training timer with customizable workouts and visual progress tracking for fitness enthusiasts.

    April 2015 · Obj-C · 236 commits · $0.99

    “Great timer for working out. It does its job simply, nothing more and nothing less.”

    “Has all the options I need in a Tabata timer without being overly complicated.”

    App Store

    • Tabatach screenshot
    • Tabatach screenshot
    • Tabatach screenshot

Experience

Where I have worked since 1999.

  1. Dec 2025 – present

    Software Architect

    AI3

    Served as the sole architect and engineer for BizRouter, an LLM gateway for the Korean enterprise market, designing, building, and maintaining it through June 2026 before handing its ongoing development and maintenance over to another developer. At its core is a high-performance Rust API proxy handling streaming responses, tool calling, multimodal inputs, and provider-agnostic routing across OpenAI, Anthropic, Google Gemini, and more, behind a single OpenAI-compatible interface. Includes GCRA-based rate limiting, token-level usage metering, BYOK encryption, and PII masking for Korean data privacy compliance (PIPA).

    Shipped and continue to maintain three customer-facing AI applications, AI Image Generation, AI Video Generation, and AI Meeting Notes, each taken from initial product planning and UX design through full-stack implementation to production deployment and ongoing operations, entirely solo.

    Since July 2026, focused on experimenting with open-weight models and exploring agent architectures and harnesses.

  2. Sep 2025 – Dec 2025

    Software Architect

    Everest Systems

    Built and optimized an AI-powered coding agent with Python and TypeScript, focusing on maintenance, feature delivery, and Claude Code-driven development workflows.

  3. Jun 2025 – Aug 2025

    Software Architect

    AI3

    Served as the sole architect and engineer for BizRouter, an OpenRouter-compatible B2B LLM gateway for the Korean market, delivered end-to-end with React 19, Django, and a Rust API server.

  4. Dec 2024 – Jun 2025

    Product Owner & Engineer

    Self-Employed

    Architected and launched Mouton Journal for iOS, built Django-Ninja and PostgreSQL APIs, integrated LiteLLM-powered diary comments, and used Rust for performance-critical photo resizing.

  5. Jan 2024 – Aug 2024

    Senior Software Engineer

    Mediquitous

    Architected APIs and infrastructure for the Japanese e-commerce platform nugu.jp, built product and back-office systems with Next.js, TypeScript, Django, and Svelte, and mentored the team on Django practices.

  6. Jun 2022 – Dec 2023

    Chief Technology Officer

    TooEasy

    Led company-wide API architecture with Django, React, and PostgreSQL, cut AWS infrastructure costs by 75 percent, and managed a fully remote engineering team across time zones.

  7. Oct 2019 – May 2022

    Chief Technology Officer

    LikeStudio

    Led development of a Flutter-based K-pop fandom app to 10K+ users, built scalable Django and PostgreSQL APIs, and engineered real-time video broadcasting with WebRTC, RTMP, FFmpeg, and CUDA.

  8. Mar 2017 – Oct 2019

    Senior Software Engineer

    Kakao Corp

    Architected the chatbot engine for Kakao's smart speaker, built an Angular management console for internal teams, and ported a high-traffic KakaoTalk server from Linux to macOS for faster local development.

  9. Jun 2016 – Feb 2017

    Chief Technology Officer

    MataCompany

    Co-founded the company, shipped a native iOS app in Swift, built a Flask and SQLAlchemy backend on AWS, and mentored two junior developers through launch.

  10. Nov 2015 – May 2016

    Senior Software Engineer

    Electronic Arts

    Designed a UI test automation platform for Need for Speed Edge with Angular, Node.js, TypeScript, and Docker, reducing QA time by 70 percent.

  11. Oct 2013 – Mar 2015

    Senior Software Engineer

    BeatPacking Company

    Developed a social music player for Android and maintained a high-traffic Python API server handling more than 1 million daily requests.

  12. Oct 2012 – Aug 2013

    Senior Software Engineer

    Thingd (Fancy.com)

    Optimized AWS infrastructure to save about $200K per month, improved Django performance for 10M+ daily requests, and built Java-based sharding middleware for horizontal scaling.

  13. Nov 2011 – Oct 2012

    Professional Consultant

    SK Planet

    Prototyped a Node.js comment backend, researched a CloudFoundry-based PaaS, and developed a custom Nginx extension in C and GLib for request handling.

  14. Jul 2009 – Oct 2011

    Independent Software Engineer

    Self-Employed

    Built an Android MSN Messenger clone that reached 2M+ downloads and generated more than $100K in ad revenue while handling the full product lifecycle alone.

  15. Feb 2007 – Apr 2009

    Software Engineer

    NCsoft

    Developed SpringNote messaging integrations, implemented an OpenID-based private messaging service, and built a Firefox extension for content collection and metadata extraction.

  16. Dec 1999 – Jan 2007

    Software Engineer / Lead Software Engineer

    Various Companies

    Worked across CyberImagination, Linux Korea, Tri-D Communication, and National Grid, building Java financial systems, RFC-based network authentication modules, Oracle-backed web services, and Java grid middleware while leading small engineering teams.