Engineer · builder · curious observer

I make invisible systems visible.

I’m Xinyi. I build analytics SDKs, prototypes, and small products that turn fuzzy behavior into something we can inspect, question, and improve.

LIVE SIGNALcapturing
ENGAGEMENT
TIME →
page_view.completed47.8s
ANALYTICS SYSTEMS BROWSER SIGNALS PRODUCT EXPERIMENTS LEARNING TOOLS ANALYTICS SYSTEMS

Selected experiments · 2026

Work in public

Proofs of concept are how I think: make the mechanism tangible, expose the trade-offs, and give people something they can poke.

01Observability POC
RAW EVENTS
same cause01 issuenew fingerprint → Slack

Grouping first. Notification last.

One fingerprint per underlying SDK problem

A Datadog-native pipeline that normalizes uncaught Browser SDK errors, groups repeated occurrences by stable identity, and alerts only when a genuinely new issue appears.

  • Datadog
  • Error Tracking
  • Fingerprinting
02Systems explainer
MEMORY+1sPERSIST+5mPOST
tagcounterhistogramevent
3 runtimes · 1 contract

From an SDK call to a durable signal and a dashboard.

One diagnostics language across three SDK runtimes

An interactive, source-linked guide to the shared Browser, iOS, and Android diagnostics contract—plus sampling, aggregation, persistence, flushing, crash recovery, and failure semantics.

  • SDK diagnostics
  • Cross-platform
  • Interactive explainer
03Analytics POC
heartbeat01.0s
flush after10.0s

A useful prototype—with known semantic gaps.

Earlier delayed-events exploration

Solution 2 demonstrates replaceable delayed snapshots and terminal-page delivery, but measures visible dwell and emits a separate completion event. It is exploratory, not shippable.

  • Prototype
  • Known limitations
  • Delayed events
04Analytics architecture
PAGE VIEWED · PENDINGHEARTBEATFINALIZEengaged_time: 11.9s

Proposed Solution 3: active attention on the original event.

One page view. Completed later.

The SDK holds Page Viewed in a delayed service, replaces its cumulative snapshot on heartbeats, and finalizes that same event with engaged time. Open pageviews remain unavailable to ordinary queries—a deliberate unresolved trade-off.

  • Proposed design
  • Active attention
  • Delayed Page Viewed
05Analytics POC
event
path

What breaks in shadow trees—and how to recover the signal.

AutoCapture beyond the light DOM

A slide walkthrough and interactive test bench for click and form tracking across open, closed, and nested Shadow DOM boundaries.

  • AutoCapture
  • Shadow DOM
  • Web platform
06Systems explainer
installadsignal

A visual model of a deliberately opaque ecosystem.

Mapping iOS mobile attribution

An interactive explainer for reasoning about the actors, hand-offs, and constraints inside the iOS mobile attribution network.

  • iOS
  • Attribution
  • Interactive explainer
07Side project
ชอบตัวเองchɔ̂ɔp dtua-eengI like myself
▂▄▆█▆▃▅▇▅▂

From passive listening to line-by-line practice.

Learn Thai through the songs you love

A language-learning playground with synchronized lyrics, word-level meanings and pronunciation, KTV mode, quizzes, memory lessons, and vocabulary coverage.

  • Language learning
  • Product design
  • JavaScript

Notes from the workbench

Working thoughts

Short essays about measurement, system behavior, and what changes once an idea meets a browser.

About

I like the layer where product questions become engineering constraints.

My work sits around analytics SDKs and the browser: lifecycle edges, event semantics, automatic capture, and the places where “obvious” data becomes surprisingly hard to measure.

This site is my public workbench—part demo shelf, part notebook. Everything here is built to make a technical idea easier to see and discuss.

github.com/Mercy811 ↗