I've landed fixes in PyTorch and LangChain. These days I build the environments that AI agents train inside. About a year and a half ago I couldn't have opened any of those PRs. I was trading stocks, options, and futures on the Indian market.
Around January 2025 I pivoted to building software. I already used AI heavily and wanted to make things with it. Think of it as a second internet moment. I rode it hard.
How a trader ended up here ▾
I learned by shipping. An invoice tracker, my first web app. A VC deal-flow tool that sorts startups by what they do. Celer AI, which turns voice into structured medical reports. Alongside that, freelance work for local businesses and friends: websites, feedback trackers, landing pages, small automations.
Open source happened almost by accident. My first PRs landed in LangChain, back in November 2025. Then PyTorch, Kubernetes, LangGraph. A few months later a random fix to Andrej Karpathy's autoresearch got merged, and that was the turning point. People started reaching out. A referral turned into a short gig with a Cambridge professor building benchmarks for rendering efficiency in games. Then Polymath, where I found the work I love.
Landed and merged, all confirmed in main.
| Project | Landed work | |
|---|---|---|
| PyTorch | Silent max_autotune BMM correctness bug under dynamic OpenMP threads, and an efficient_conv_bn_eval crash. Approved by core maintainers jansel and eellison. · #169128 #169126 |
|
| LangChain | Provider-prefix decoupling in init_chat_model, kwargs override for Groq structured output, unsupported-arg fix in ChatOllama. · #34046 #34053 #34114 |
|
| LangGraph | Generic type-argument support for ToolRuntime injection. · #6509 |
|
autoresearch ★ 90.9k |
Fixed an agent crash blindspot by forcing it to read the traceback before retrying. The turning point. · #17 | |
Google Workspace CLI ★ 26.4k |
Closed a TOCTOU race in atomic writes, added Meet to calendar insert, propagated auth errors on token-dir failure. · #500 #506 #542 | |
NVIDIA/NemoClaw ★ 20.6k |
Five security fixes hardening file permissions across deploy, startup, migration, and auth. · #174 #183 #186 #187 #188 | |
| Prime Intellect verifiers | Made usage tracking tolerate providers that omit cache_write_tokens. · #2019 |
PyTorch lands work by rebase, so those two show as "closed" on GitHub. The commits are in main. Worth knowing when you scan the profile.
Also 17 merged fixes to clawmetry (556k+ PyPI downloads): proxy and dashboard concurrency, security, caching.
In review across PyTorch (Inductor and CUDA), vLLM, LangGraph, Kubernetes, Supabase, and the Anthropic Claude Agent SDK. Full PR list →
At Polymath we build the gyms where AI agents train. Simulated worlds for teaching agents real digital work.
I got asked to build one. I built several. Couldn't stop.
Here's the craft, learned through fast feedback. Make the verifier behavioral, so it grades what the agent actually does. A good environment sits at the exact edge of what a model can do. Tune the difficulty so a strong model lands mid pass-rate. That's where GRPO has signal to climb. The same way people learn at the edge of what they can already do.
first principles Feynman technique Pareto efficient frontier unknown unknowns
First principles is the one I lean on most. I learn broadly and fast by going deep on whatever grabs me.


