Projects
Selected things I've built, most recent first.
-
paraphrasing — DeepSeek-R1-Distill-Qwen-7B + LoRA
Reasoning-model fine-tune for paraphrase generation. Multi-domain LoRA training across literary, technical, and academic text. BERTScore 0.9521 beats BART and T5 on the same evaluation set.
-
3D-BlockGen — Diffusion Models for Brick-Compatible 3D Generation
Two-stage diffusion pipeline generating buildable LEGO models from text. Transformer-based UNet3D conditioned on CLIP, 542k voxelized Objaverse samples, greedy LegoLization converts voxel output to physical bricks.
-
Are We Playing Wikispeedia All Wrong?
Mixed Linear Model over 76k+ Wikispeedia gameplay paths (n=50,138) identifies semantic-similarity navigation as the dominant strategy: β=−21.3 s, p<0.001.
-
EPFL-TA-Meister — LLM as a Teaching Assistant
Llama-3-8B fine-tuned as an EPFL teaching assistant: SFT, DPO alignment, RAG over coursebooks, then 4-bit/8-bit/GPTQ/AWQ quantization. Five models shipped to HuggingFace.
-
Reinforcement Learning on MountainCar-v0
DQN, DQN+auxiliary rewards, and DQN+RND benchmarked on Gymnasium's MountainCar-v0. A direction-aware throttle reward cuts training from 300 to 200 episodes.
-
Large-Scale Movie Recommender — Spark + Scala
Distributed recommender in Scala 3.3 + Spark 3.5. ALS collaborative filtering, LSH/MinHash similarity search, biased baseline predictor across a 25-partition HashPartitioner.
-
Generalizable Yeast Cell Segmentation
StarDist + HoVerNet fine-tuned for yeast microscopy. F1 = 0.96 on the held-out test set. Ships training scripts and a `predict.py` CLI.
-
Cloud-Based Schedulers for Mixed Workloads
Co-scheduling memcached against PARSEC batch workloads on a Kubernetes cluster. Ibench interference profiling across CPU/L1d/L1i/L2/LLC/membw. Exponential anti-burst regression policy.
-
Static Analyzer for Java — Apron + Soot
Java bytecode verifier using abstract interpretation. Soot for IR and control-flow graphs, Apron for numerical abstract domains.
-
ACME Client (RFC 8555)
Standards-compliant ACME certificate-issuance client. Full HTTP-01 and DNS-01 challenge flows against the Pebble test CA.
-
CryptKVS — Encrypted Key-Value Store in C
Client-side-encrypted key-value store in C with both local-file and HTTP-server modes. HMAC-SHA256 password hardening, per-entry random salt. The server cannot decrypt.
-
Nios II Multicycle Processor + FPGA Stopwatch
VHDL hardware-timer peripheral with IRQ generation, Nios II assembly ISRs, integrated into a multicycle Nios II processor: building blocks for an FPGA stopwatch on the Gecko4Education board.
-
Snake on Nios II Assembly
Snake game in pure Nios II assembly on the Gecko4Education FPGA. 96-LED display, memory-mapped button input, checkpoint save/restore every 10 points.
-
tCHu — Ticket to Ride Online
Java + JavaFX online multiplayer Ticket to Ride with sockets, observer-pattern UI updates, immutable game state, and a spectator extension.
-
SuperPacman
Pac-Man clone on a hand-written Java 2D area-game engine: actor system, signal framework, RPG layer, super-pacman game on top.