Edward Shen

Backend & Distributed Systems Engineer

0%

Lifecycle campaigns repeatedly combined latest user traits, historical events, and expiring assets. Operations initially assembled those audiences manually; the platform already had transactional services and a TiDB/TiCDC/Kafka/Flink data path, but marketing needed reusable audience definitions and automated email tasks rather than campaign-specific filters.

I wrote the design document and early core demo for predicate expansion, SQL compilation, segment refresh, and the reach handoff. A colleague implemented the production services with my guidance.

Read more »

The Go backend platform had been established earlier in 2025 and eventually carried eighteen Go domain services. Product teams could ship features, but operational questions still required ad-hoc production queries. Dashboards were slow, and linked views could not be trusted to refresh from a consistent snapshot.

Four Go engineers had to build the data platform alongside feature delivery. We could not operate a separate OLAP database, sync pipeline, and dedicated data engineering function, so we built TiCDC → Kafka → Apache Flink → analytical tables in TiDB, served by QueryHub, a self-developed SQL-template service.

Read more »

Four Go engineers built eighteen domain services for a consumer transaction platform with weekly live-ops releases — time-boxed in-game events and promotions whose cadence set the delivery rhythm. To keep integration work manageable, we used a single API DSL to generate service conventions, Protocol Buffers contracts, and Swagger/OpenAPI documentation.

Read more »