Start with the research summary or the full CV. For collaboration, roles or funded doctoral study, get in touch.

Available from March 2027

Projects & code

I build research tools, language pipelines and systems that connect software to physical devices. These are selected implementations, with source code and examples of their output.

Selected builds

Industrial data gateway · cloud-hmi

Engineering

Collect machine readings, keep them through network outages, and upload them when connectivity returns.

  • I built the gateway end to end: Modbus TCP polling, SQLite buffering on a USB key, batch uploads and service orchestration on a Raspberry Pi.

  • Demonstrated against machines and test benches. Operators start and stop the workflow by inserting or removing the labeled USB key.

Service diagram connecting USB-triggered start and stop events to mounting, database initialization, network configuration, status LEDs, polling and cloud synchronization.
Service orchestration from the project documentation. Open the diagram for a full-size view.
PythonBashDebian 12Raspberry Pi 4SQLite
Services & failure handling

Eight systemd unit templates and udev rules coordinate mounting, database initialization, polling and synchronization. Readings remain buffered locally while uploads retry, so collection and network availability are separate concerns.

Recipe DSL · recipe graphs

Research software

Turn written cooking instructions into an explicit graph of ingredients, actions, intermediate states and timing.

  • I built the Python pipeline for LLM extraction, deterministic graph compilation, validation and interactive rendering, extending our published recipe ontology.

  • Output: 21 worked cases with validation records and unit tests.

PythonTyped schemasGraph compilationHTML / SVG
Compilation & validation

The DSL represents iteration, alternatives, optional bodies and coordinated decisions. The model supplies a typed extraction; the compiler derives the graph and checks its local structural and relational contracts, including source grounding. A failed extraction gets one bounded repair attempt. The worked cases check the graph contract; extraction accuracy on unseen recipes is not yet established.

Example artifact, source and validation record

Reduction test bench · dd-lab

Research software

Compare input reducers on real failures, measuring both their cost and the outputs they produce.

  • I built the test bench used to evaluate Dr. DD against ddminY, ProbDD and CDD across ffmpeg, XML, binutils and crashjs inputs.

  • Output: a frozen replication package. Both code and data received Available, Reviewed and Reproducible artifact badges.

PythonBenchmark harnessesOracle checksReproducible experiments
Measurements & correctness checks

Each evaluation records oracle calls, runtime and output size, with independent checks for 1-minimality. A small output is not necessarily 1-minimal: the latter means that no remaining single element can be deleted while preserving the failure. Keeping those measures separate makes the tradeoffs between reducers visible.

More builds

Adaptive image approximation · Lagrima

Numerical methods

For an individual Numerical Algorithms and Optimization project, I implemented adaptive triangular meshes and higher-order Lagrange interpolation, refining regions with greater reconstruction error.

Original grayscale emu photograph on the left and its mesh-based reconstruction on the right.
From the project report: original (left), reconstruction using approximately 3,000 vertices and degree-eight interpolation (right).
PythonBarycentric interpolationSpatial indexing

Browser passphrase generator · Passenger

Development paused

I designed and built a browser app that regenerates a passphrase from a vault key and an app ID, with locally encrypted app-ID storage, import, export and clipboard workflows.

JavaScriptWeb CryptoPBKDF2 / HKDFAES-GCM

Grammar fuzzers

Performance engineering

I implemented depth-limited C fuzzers and Python grammar-to-fuzzer compilers, then profiled the recursive and iterative variants with string and integer tokens.

Replacing repeated auxiliary-buffer copies with in-place prepending made the token variant the fastest implementation measured on the example grammar.

CPythonperf

Other projects & earlier work

Category relationships in Yelp

Primary contributor in a two-person course project. I built the Neo4j analysis end to end: rating-adjusted affinities, co-listing correction, FastRP embeddings and 75 clusters. The resulting associations are exploratory hypotheses.

Regional health analytics · Novo Nordisk hackathon

I co-led a five-person team and independently built district-level diabetes proxy scores and interactive maps from NFHS-5 aggregates. The scores support exploratory regional analysis, not validated patient classifications.

Connect-4 through local Q-learning

An individual course project: a sliding-window agent combines learned 4×4 subgame evaluations into full-board decisions, with training routines and evaluation against a random opponent.

Playfair cryptanalysis · Cheshire

My IB mathematics essay explored simulated annealing with n-gram scoring. All five trials improved the language objective, but none recovered the plaintext: a useful illustration of a proxy objective's limits.