Taiwan · Backend systems · AI integration

I turn daily friction into software people keep using.

I’m Yili, a product-minded backend builder. I define the problem, challenge the product assumption, ship the narrowest useful loop, and make it survive real operation.

Projects

Systems built for different kinds of time.

Each project began with a recurring cost in my own workflow: attention lost, knowledge forgotten, or context scattered. I built the smallest useful loop, then let real use decide what deserved to stay.

01 · Minutes

Crypto Flash

Why I built itI was tired of reading every market alert just to find the few that could change risk. Speed without context is still noise. I built Crypto Flash to filter the feed, explain why an event matters to crypto, and keep recent context searchable inside Telegram.

What it became: live alerts, daily digests, search, topic tracking, timelines, and Gemini Q&A.
Current evidence: operated for about two months in a 10-member group; feedback remains founder-led.
  • Python
  • asyncio
  • WebSockets
  • Gemini
  • GitHub Actions
Read the repository
02 · Days to months

Mnemosyne

Why I built itI could understand a new word in seconds, then forget it a few days later. Dictionaries and chat answers solve the lookup, not the review loop. I built Mnemosyne to turn a word into a validated Traditional Chinese card and bring it back when recall should be tested.

What it became: an owner-only workflow with structured generation, durable retries, and recall-graded spaced repetition.
Current evidence: a deployed, self-used alpha with real generation and review interactions—not a claim of public adoption or proven learning outcomes.
  • FastAPI
  • Firestore
  • Cloud Run
  • Cloud Tasks
  • Pydantic
Read the repository
03 · Daily

News Agent

Why I built itI wanted to follow software, AI, and startups without starting every morning inside a pile of feeds. Most updates repeat the headline; they do not earn my attention. I built News Agent to deduplicate the stream and deliver one concise English briefing with the source trail intact.

What it became: a scheduled pipeline that selects one high-signal story, separates reported facts from inference, and connects it to an engineering or product decision.
Current evidence: scheduled ingestion, history-aware deduplication, concise English generation, and Telegram delivery with explicit offline-vs-live verification boundaries.
  • RSS
  • Gemini
  • Telegram
  • Python
  • CI
Read the repository
Real daily briefing
News Agent briefing separating what happened, technical core, founder perspective, and why the story matters
One story, connected to an engineering or product decision.
How I build

Own the ambiguity, not only the implementation.

01

Frame the real problem

Separate the user’s constraint from the first requested feature.

02

Ship the narrow loop

Build the smallest path from input to a result someone can actually use.

03

Design for failure

Treat retries, state, idempotency, and provider boundaries as product behavior.

04

Learn from operation

Observe what survives contact with real workflows, then refine without inflating evidence.

AI is leverage.
The product is the outcome.

I care as much about the unglamorous layer—queues, delayed jobs, state, deployment, and honest validation—as the model call itself. A demo proves possibility. Operation reveals whether the system deserves to stay.

Build something useful.

Open to early-stage product collaboration, technical co-founder conversations, and backend engineering opportunities.

yili.code@gmail.com
Current capacity: 8–16 hours/week. Open to deeper commitment for paid roles.