Machine-learning engineer focused on the parts that actually decide whether ML works in production — evaluation, calibration, thresholds, drift, identity/fraud signals, serving, and the tooling around them. Also building production agentic systems: tool loops, MCP servers, streaming parsers, and agent memory.
Bug fixes shipped to production ML/LLM libraries. Open PRs tracked at PORTFOLIO.md. Table below updates automatically each day — merged PRs appear here once landed.
| PR | Repository | Description | Merged |
|---|---|---|---|
| (none merged yet — 10 open PRs in review) |
Technical posts on production ML/LLM systems.
| Post | Tags |
|---|---|
| Your Fraud Model's Scores Are Not Probabilities | calibration · production ML · fraud |
| RAG Retrieval Isn't a Similarity Problem | RAG · IR metrics · NDCG · MRR |
| Running an LLM Gateway in Production | LLM · rate limiting · cost · caching |
| Streaming LLMs in Production: The Edge Cases That Break Your App | streaming · SSE · LangChain · production |
| Fine-Tuning vs. Prompting: A Decision Framework That Doesn't Lie to You | fine-tuning · LoRA · RAG · prompting |
Also on LinkedIn.
| Repo | What it does |
|---|---|
| tool-loop | Correct agentic tool-use loop: parallel dispatch, error isolation, auto-schema from Python functions |
| mcp-quickserver | MCP server template: tools, resources, and prompts with stdio and SSE transports |
| stream-parse | Parse streaming LLM output: incremental JSON, markdown blocks, tool-call deltas, SSE events |
| agent-scratchpad | Persistent vector memory for agents: embed, store, retrieve by cosine similarity |
| prompt-cache-bench | Benchmark prompt caching: cache hit rate, latency delta, cost savings with real measurements |
| llm-eval-lite | Assertion-based eval harness for LLM/agent outputs; composite checks (AllOf, AnyOf) |
| rag-eval | RAG pipeline evaluation: chunking strategies, retrieval quality, answer faithfulness |
| llm-gateway | Production Anthropic API proxy: token-bucket rate limiting, retry with backoff, cost tracking |
| rag-demo | End-to-end RAG demo: BM25 + tool-loop agent + faithfulness eval + persistent memory |
| Repo | What it does |
|---|---|
| ml-eval-report | Binary-classifier eval: metrics, ROC/PR + AUC, threshold sweep, Brier score, ECE |
| calibrate-ml | Probability calibration: Platt scaling, isotonic regression, ECE, reliability diagram |
| thresholdkit | Pick operating thresholds under precision / FPR / cost / expected-value constraints |
| rankeval | NDCG, MRR, AP@K, P@K, R@K — ranking metrics for search, recommendation, RAG |
| Repo | What it does |
|---|---|
| featurecheck | Feature drift (PSI/KS/chi-squared) + schema/null/dtype validation |
| idgraph | Identity/entity graphs from shared signals; surface synthetic-identity rings + risk scoring |
| pii-redactor | Detect & redact PII (email, phone, SSN, IP, Luhn-validated cards); custom patterns |
| capture-qa | Image capture-quality gates (sharpness, exposure, resolution) |
| modelcard-gen | Generate Model Card markdown from a JSON config |
| Repo | What it does |
|---|---|
| tps-bench | HTTP throughput & p50/p90/p99 latency benchmark for serving endpoints; warmup + JSON output |
| cmsketch | Count-Min Sketch: approximate counts over high-cardinality streams; merge + serialization |
20+ years across devices, cloud, and ML — biometrics & sensing at Motorola/Google/Lenovo, real-time services at Amazon Alexa scale, ML-platform work at SpotHero and Apple (feature pipelines, scoring infrastructure, model monitoring, data-science tooling). ~50 granted patents.


