XY

Xingji Yan — Software Engineer

I build systems people actually use.

On-call for tenants, retries, and agents that fail closed.

Now / Looking for

The next system should matter after the demo ends.

I’m looking for software engineering teams building reliable backend platforms, developer infrastructure, or applied AI products where correctness and product judgment share the same roadmap.

How I work
I turn ambiguous workflows into typed contracts, small releases, measurable outcomes, and failure paths the team can operate.
Where I own
I’m most useful when I can follow a problem from the product surface through the service boundary, data model, rollout, and on-call feedback loop.

If your team needs that kind of end-to-end ownership, let’s talk.

Start a conversation →Read résumé ↓

01

Selected work

01

CrawlForge

A careers page in. Structured job intelligence out.

JobPosting extractionJSON / CSV20 tests

Live · 20 tests · Updated 2026

Java 21Spring BootSpring JDBCH2jsoup

Problem
Company and ATS careers pages expose the same job data through inconsistent markup and link graphs.
Result
One Careers URL becomes structured title, location, skills, and experience with JSON/CSV export and optional AI matching.
Verified
20 passing tests · bounded persistent BFS · SSRF-safe redirects · robots-aware retrieval

Render may need up to ~60s to wake. View instant proof →

Static proof One Careers URL becomes structured title, location, skills, and experience with JSON/CSV export and optional AI matching.

20 passing tests · bounded persistent BFS · SSRF-safe redirects · robots-aware retrieval

Open full case study →
02

Catalog Order Service

One last unit. One winning order.

Atomic stockIdempotentRace-tested

Live · 44 tests · Updated 2026

Java 21Spring BootSpring JDBCH2JUnit 5

Problem
Concurrent buyers and client retries can oversell stock or create the same order twice.
Result
With stock = 1, exactly one order wins; a repeated idempotency key replays the original order.
Verified
44 passing tests · real two-thread race · transactional rollback · bounded webhook retry

Render may need up to ~60s to wake. View instant proof →

Static proof With stock = 1, exactly one order wins; a repeated idempotency key replays the original order.

44 passing tests · real two-thread race · transactional rollback · bounded webhook retry

Open full case study →
03

Clearbay

Financial workflows that stay correct under retries.

IdempotentMulti-tenantRetry-safe

Live · 10 integration tests · Updated 2026

Java 21Spring BootPostgreSQLRedisMCP

Problem
Retries, spoofed tenant context, and concurrent releases can double-bill or leak warehouse data.
Result
Invoice retries replay safely, JWT tenant context wins, and stale concurrent updates return 409.
Verified
10 passing integration tests · tenant-isolated cache · unique idempotency · optimistic locking

Render may need up to ~60s to wake. View instant proof →

Static proof Invoice retries replay safely, JWT tenant context wins, and stale concurrent updates return 409.

10 passing integration tests · tenant-isolated cache · unique idempotency · optimistic locking

Open full case study →
06 more projects

More systems

052026

Durable Brief

AI workflows that can wait.

Live · durable workflow · Updated 2026

TypeScriptNext.jsVercel Workflows

092026

ResuMatch

Deterministic resume/JD scoring with an optional grounded LLM layer.

Live · deterministic scoring · Updated 2026

ReactFastAPINLPTypeScript

02

Experience

  1. JASCI Software Software Engineer 2023 — 2026

    A smart WMS used by 20+ 3PL customers and 500+ concurrent users. I took an LLM action layer from a sketch to production — JSON Schema, idempotent writes, audit trails — and I still carried on-call.

    • 20+Production customer organizations
    • 10s → <1sSearch latency
    • ~95%Fewer DB round trips

    The same contracts, public: Clearbay

  2. Sonos Software Engineer Intern

    Universal Search — Kafka indexing, Redis query cache, search speed +30%.

    2022
  3. Tencent Software Engineer Assistant

    WeChat identity and payments. Redis −30% DB load. JMeter at 8k users, P99 −30%.

    2020
03

Writing

Collection 01 · Projects show what I built. These notes show how I decide—and link every claim back to code.

View all writing →

Failure modes

Happy paths are easy.

I design the other paths.

Four production guarantees, made visible: concurrency stays correct, authority expires, retries stop, and model output is never trusted by default.

04

What I care about

I ship the unglamorous systems that keep operations alive — then I put an agent on top of them, with guardrails, so people can talk to the warehouse instead of clicking through twelve screens.

Java/Spring · React/TypeScript · AI systems · M.S. ECE · Carnegie Mellon