I am a Researcher at Carnegie Mellon University (remote), working on LLM post-training, reinforcement learning, reasoning, distillation, agentic RL, and RL environments โ with research problems centered on improving the reasoning and agentic capabilities of large language models through scalable training and evaluation methods.
My research spans the full stack around reasoning models โ post-training methods that build reasoning (RLVR, preference optimization, reasoning distillation), the test-time strategies that make it efficient (compute allocation, deciding when to stop deliberating), and the empirical/evaluation work needed to trust any of it. Right now I'm going deeper into mechanistic interpretability โ studying the internal circuits and representations behind multi-step reasoning in large language models, to understand failure modes like reward hacking and unfaithful chain-of-thought well enough to actually fix them, not just detect them. A specific thread I'm pulling on: disentangling memorization from genuine reasoning mechanistically โ which circuits are doing lookup versus computation โ and using that understanding to work toward guiding reasoning safely, so models can be steered away from unfaithful or unsafe reasoning traces rather than just penalized after the fact.
I build and release everything in the open โ training/eval systems, checkpoints, and datasets โ in lieu of formal publications, via GitHub and Substack.
๐Publications
Beyond Fixed Directions: Adaptive Representation Analysis of Reasoning and Memorization in LLMsPreprint ยท 2026An empirical study of whether reasoning and memorization can be characterized by a single representation direction and whether that geometry remains stable after GRPO.
Open Post-TrainingPython ยท PyTorch ยท Transformers ยท TRL ยท vLLM ยท SGLang ยท 2026A single reusable system that takes a base model through the full post-training recipe, stage by stage, rather than one-off scripts per experiment: evaluation, preference tuning, reasoning distillation, and RLVR training all share the same components. I use it as a research testbed โ running hypotheses through the pipeline and producing demos/proof-of-output for specific ideas. One such run: a GRPO ablation on a base model (64.0% MATH-500) dropped to 48.0% at a 5-step checkpoint before recovering to 60.0% at 50 steps, with response length shrinking from 303 โ ~220 tokens โ evidence that sparse binary-correctness reward is a weak signal without more steps and better reward shaping.
Olmo-3 From ScratchPython ยท PyTorch ยท Hugging Face ยท 2026From-scratch implementation of AllenAI's Olmo-3 (7B/32B) โ GQA, YaRN-scaled RoPE (8Kโ65K), sliding-window attention with periodic global refresh, SwiGLU, RMSNorm โ plus a custom KV-cache module with unrotated key/value storage for RoPE compatibility, reducing cache memory via GQA while supporting bfloat16 inference.
Reinforcement Learning: Zero to Hero2025A maintained RL repository spanning MDPs through PPO and DDPG, with clean implementations and math annotations for practitioners moving into post-training research.