Low-latency C++ engineering · independent personal project
Reviewed version
Passing CI
A single-instrument, price–time priority matching core built around a flat price ladder,
two-level bitmap, pooled intrusive FIFO queues, and an open-addressing order-ID map.
A separate std::map reference supports differential testing across 1.6 million
messages; regression tests cover reserved IDs, invalid configurations, and order lifecycle edge cases.
Apple M4 · single thread · 5M synthetic messages · median of 7 runs
| Flat ladder engine | 91.3 M | messages/s |
| Map reference | 16.1 M | messages/s |
In-process synthetic replay excludes parsing and network I/O. This measures the matching core,
not production exchange throughput or end-to-end latency. The LOBSTER adapter has synthetic-fixture
coverage, not validation against a real exchange dataset.
- C++20
- Cache-aware data structures
- Differential testing
- ASan / UBSan
Quantitative research · independent personal project
Research report
Passing CI
A reproducible ten-factor study of the CSI 300 point-in-time universe, covering 2018–2025 H1.
Factor selection uses 2018–2021 only; 2022–2025 H1 is held out. The pipeline includes size
neutralization, next-open execution, drift-adjusted turnover, and a survivorship-bias comparison.
Locked dependencies, SHA-256 data manifests, and a frozen 100-stock sample make the evaluation testable in CI.
Composite factor · out-of-sample 2022–2025 H1 · 5-day horizon
| Mean RankIC | 0.0324 | Spearman |
| Annualized ICIR | 1.44 | annualized |
| Q5 − Q1 annualized return | 14.0% / 5.2% | gross / net |
Historical A-share research, not a demonstrated live strategy. The long–short spread is hypothetical:
shorting restrictions, borrow costs, and market impact are not modeled. Results are not evidence of
transferability to U.S. equities. The linked report includes the reviewed turnover correction.
- Python
- pandas / NumPy
- Point-in-time universe
- Regression testing
Inference engineering · personal practice project
Systems extensions on top of
MiniMind:
a preallocated static KV cache, request batching, and an observable FastAPI serving
path with Prometheus metrics. Equivalence tests pin the cache to the reference
implementation; the benchmark harness emits JSON reports rather than screenshots.
Exploratory runs · Apple Silicon CPU · 532,864-parameter model
| Static cache vs. no cache |
+74.10% |
tokens/s |
| Static cache vs. existing dynamic cache |
+0.11% |
tokens/s |
| Batched serving batch 8 vs. batch 1 |
+155.20% |
requests/s |
Short local runs on a CPU micro-model — not GPU results, statistical guarantees,
or model-quality claims. The +0.11% row is reported precisely because it is not
evidence of a robust speedup.
- PyTorch
- FastAPI
- Static KV cache
- Dynamic batching
- Prometheus
Interpretable modeling · validated reporting API
Live demo
three precomputed companies — Pages cannot run the model
A leakage-aware modeling benchmark, a SHAP evidence bundle, and a FastAPI service
that returns a risk estimate alongside the strongest positive and negative
contributions behind it. Encoding, imputation, and scaling are fitted inside each
training fold, so the comparison below is not flattered by the validation split.
430 eligible companies · 5 shared folds · seed 42 · lower is better
| Model | OOF RMSE | OOF MAE |
| Training-fold mean (baseline) | 6.890 | 5.615 |
| CatBoost | 4.870 | 3.728 |
| ElasticNet | 5.913 | 4.812 |
| LightGBM | 6.003 | 4.709 |
| Equal-weight blend | 5.331 | 4.232 |
Internal cross-validation estimates on a historical cross-sectional dataset —
not future-period or external validation. The blend did not beat CatBoost in this run.
Grand Prize
2025 Zhixiang Cup — national university economics and management case competition.
The award applies to the original competition case; the repository documents the later engineering release.
- CatBoost
- SHAP
- scikit-learn
- FastAPI