Skip to main content
Skip to content

SELECTED WORK & ENGINEERING

From everyday problems to working software

Three inspectable examples of my work: native Mac apps, shortcut diagnostics, and production web delivery. Each case explains the problem, the implementation, and what is available to try today.

This page holds the case narratives. The full product list — iPhone/Mac apps, sites, mini-programs — lives at apps.tianli.cyou →

01 / Native macOS apps

Initials · Switch apps by letter

macOS 14+ · Apple Silicon · English and Chinese UI · Developer ID signed and Apple notarized. Image: offscreen render of the real interface.

Initials · Switch apps by letter

The problem
Moving repeatedly between a small set of apps means searching the Dock or cycling through Command-Tab.
What I built
An event-driven Swift and AppKit utility with key decisions separated from app actions, and one configuration shared by the app and CLI.
What you can inspect
Try the notarized download, inspect the source, and watch the demonstrations. Configure hold and double-tap behavior independently for each Command key.

02 / Native macOS apps

KeyScope · Evidence-led shortcut diagnostics

macOS 14+ · Apple Silicon · Chinese UI today · App and DMG signed and notarized. Source is private; documentation and release packages are public.

KeyScope · Evidence-led shortcut diagnostics

The problem
When a shortcut stops working, finding a keyboard listener does not establish which app actually receives or blocks it.
What I built
Correlates system dispatch, system shortcuts, and supported app configurations, with distinct evidence levels for each finding.
What you can inspect
A released installer, real-key demonstrations, and a manual query workflow. An inconclusive result stays explicitly unconfirmed.

03 / Web engineering

Web delivery · From source to a live service

Public sites can be browsed directly. Admin tools and private content remain access-controlled. Image: architecture illustration.

Web delivery · From source to a live service

The problem
Sharing infrastructure across sites makes it easy for content, navigation, access rules, and deployed assets to drift apart.
What I built
Next.js apps in a shared workspace, a registry linking domains to deployments, and separate sources for content and access controls.
What you can inspect
The portfolio, blogs, and product sites are live deliverables. Release checks cover HTTP responses, static assets, and runtime logs, beyond a successful build.