Astrophysicist · AI Engineer · Machine Learning Engineer · Data Scientist
Astrophysicist by training and ML/AI engineer by practice, I build local-first developer tools and Claude Code plugins — the layer between a coding agent and the work it claims to have finished.
| Project | What it does | Stack | Latest |
|---|---|---|---|
| CodeEraser |
Write-time guard against LLM-induced code and document entropy — Rust measures, Haskell judges, no model in the loop | Rust · Haskell | |
| AutoShade |
AI-assisted RAW developer — an AI proposes a bounded edit recipe, a deterministic Rust engine renders it; Lightroom-compatible XMP | Rust | |
| cc-memory | Persistent memory for Claude Code across compaction and sessions — reconcile-on-write, forced handoff file, FTS5 search, MCP tools; pure stdlib | Python | |
| cc-enforcer | Hooks that deny the tool call and block the reply — twelve rules the agent cannot skip; also an LLM-agnostic rule pack | Python | |
| sci-paper | Scientific writing and source-traced review — twelve skills, calibrated de-AI rewriting, no single "% AI" score | Python | |
| rag-your-code | Local, explainable code-retrieval index for coding agents — no network, no runtime dependencies, fifteen languages; on PyPI | Python | |
| keel | Native-capability floor for Haskell data science — runtime dynamic loading, Arrow C ABI + DLPack, ONNX Runtime, CBLAS/LAPACKE; on Hackage | Haskell | |
| PhotoManager | Safety-first photo library manager — Copy / Rename / Quarantine only, intent journaled before every landing, no delete primitive | Haskell · Rust |
zhezhang.me · LinkedIn · open to collaboration on AI tooling and scientific computing — an issue on any repo above is the fastest way to reach me.
