Projects

Every project links to its code. Any number here comes from a benchmark committed in that repo, so you can re-run it yourself.

Built from scratch

FIG. 02 · parallax-kv

DISTRIBUTED SYSTEMS · GO

parallax-kv (opens in new tab)

A three-node Raft key-value store built from scratch: PreVote, ReadIndex, persist-before-send ordering, snapshots, a durable WAL, a gRPC runtime.

GoRaftgRPCPorcupinedeterministic simulation

A deterministic stress harness ran 2.9 million client operations through partitions, crashes, message loss, delays, and snapshot churn. Zero safety or linearizability violations.

The first bug the stress harness found was in my checker, not in the consensus code.

272 w/sdurable writes · c=8
41 msp99 latency · c=8
2.9Mclient operations checked

3 nodes · localhost · c=8 · 4 KiB fsync p50 ≈ 0.89 ms
† The first bug the harness caught was in the linearizability checker, not in consensus. Not built: production snapshot scheduling or chunked streaming.

FIG. 03 · accretion-db

STORAGE ENGINE · RUST

accretion-db (opens in new tab)

An embeddable LSM-tree storage engine: CRC-framed WAL, group commit, memtables, block SSTables, bloom filters, size-tiered compaction. The crate root forbids unsafe code, so the engine has no unsafe blocks by construction.

RustLSM treegroup commitcrash consistencyproptest

Fault-injection and property tests confirm that acknowledged writes survive simulated crashes. Results are benchmarked against sled, including the cases where sled wins.

~29xWAL-bound group commit
878 µsfdatasync p50

16-byte keys / 100-byte values · ext4 on NVMe · Xeon 8488C
† The ~29x group-commit figure is WAL-bound. Compaction runs synchronously under the write lock, which caps full-engine throughput.

FIG. 04 · lodestone

VECTOR SEARCH · RUST

lodestone (opens in new tab)

A vector search engine built from scratch in Rust for embeddings and RAG retrieval. An HNSW proximity graph and an IVF-PQ compressed index sit over hand-written AVX-512 distance kernels with runtime feature dispatch.

RustHNSWIVF-PQAVX-512 SIMDRAG retrieval

On 50,000 128-dimensional vectors on a single core, HNSW reached 0.976 recall@10 at about 31,800 queries per second — about 33x the exact brute-force search at that recall, and 9–33x across the 90%+ recall band.

0.976HNSW recall@10
~31.8Kqueries/sec · 1 core

50,000 x 128-d · k=10 · single core · Xeon 8488C
† IVF-PQ trades accuracy for footprint: 0.975 recall@10 at 16x memory compression. Single machine, single core. Not built: distributed sharding.

More projects

Unsupervised Domain Adaptation for Sentiment (opens in new tab)

MIT

DistilBERT with a gradient-reversal DANN for unsupervised domain adaptation across Yelp, Amazon, Twitter, and Reddit. Labeled source-domain examples train the sentiment head; unlabeled target-domain text trains the domain head.

The committed CSV is a smoke-scale artifact, so this page quotes no accuracy numbers. The full figures live in the linked repo's team report.

PyTorchDistilBERTgradient reversal

Quantum NLP research (FIRE) (opens in new tab)

GPL-3.0

Four-person research project, co-built and open-sourced. My role was dataset preparation, experiment integration, and project documentation.

The repository compares optimizer and ansatz variants in exact noiseless simulation with documented methodology.

PythonJupyterDisCoPyQiskitpytket

Generative AI & LLM experiments (opens in new tab)

MIT

Hands-on generative-AI notebooks. The core is a retrieval-augmented generation (RAG) pipeline built stage by stage in LangChain, from tokenizers through chunking and embeddings to retrieval and QA chat. Alongside it: Streamlit/Gradio LLM apps and GAN/VAE architecture studies in PyTorch.

Each notebook isolates one idea.

LangChainRAGPyTorchStreamlit/Gradio

Professor rating prediction (opens in new tab)

MIT

Predicts a professor's average star rating on PlanetTerp from the text of student reviews (VADER sentiment plus review count), without ever using the star ratings as features.

Two text-derived features in a plain linear regression explain about 79% of the variance in ratings.

Pythonscikit-learnVADERNLP

Survey response analysis (opens in new tab)

MIT

Cleaning and statistical analysis of a multi-wave survey dataset: a reusable cleaning function, then chi-squared hypothesis tests with Bonferroni correction probing what actually shifts people's answers to moral-judgment questions.

PythonpandasSciPyhypothesis testing

Gender perception study (opens in new tab)

MIT

Does swapping the genders in a moral-judgment scenario change how people judge it? Chi-squared hypothesis testing on gender-swapped survey scenarios, with the method written down.

Pythonpandaschi-squared

This site (opens in new tab)

MIT

The page you're reading: a multi-page React + TypeScript + Vite site on GitHub Pages. It prerenders to static HTML, works without JavaScript, and won't build if a fact check or Playwright assertion fails.

React + TypeScript + Vitefact-gate in CIPlaywright-verifiedno trackers

Get in touch

I'm looking for Summer 2027 new-grad software engineering roles. Email is the fastest way to reach me, and I can send a full resume on request.

Email meivanwang8989@gmail.com