Open to internships

Sahil Menon

First-year Computer Engineering student at UNSW. This year I took part in Jane Street’s First-Year Trading and Technology Program in Hong Kong and finished in the top 10% of 22,000+ teams in IMC Prosperity 4. I build low‑latency C++ systems and tools for AI safety. Looking for quant, trading and software internships in Sydney and Singapore.

  • Top 10% of 22,000+ teams, IMC Prosperity 4
  • Top 200 in Australia, IMC Prosperity 4
  • Jane Street First-Year Trading & Technology Program

About

Who I am

I’m Sahil, a first-year Computer Engineering student at UNSW. Most of what I build sits close to the machine: a C++ matching engine, a SIMD maze generator, a probe that reads tampering out of a language model’s activations.

I like work I can check: latency against a baseline, a solver against a closed-form answer, a number against the page it came from. I’m looking for internships in software, systems, and AI, and I’m building toward robotics and physical AI next.

Outside of engineering, I led BuildingBloCS, Singapore’s largest student-led computing outreach program, which reached 3,000+ students across 70+ institutions.

Sydney, Australia · Australian permanent resident · Singapore citizen

Education

BE (Computer) (Honours)

University of New South Wales, Sydney

2026 – 2029

Raffles Institution

Singapore, 96th percentile

2024 – 2025

Open to

Quant & trading · software · systems internships

Sydney or Singapore · remote also fine

Summer 2026–27: from late Nov · full-time 11 Dec – 12 Feb

Part-time during term, 2027

Summer 2027–28

Technical Skills

  • C / C++ / Python
  • TypeScript / JS / Java
  • React / Astro / FastAPI
  • PyTorch / Hugging Face
  • NumPy / Pandas / SciPy
  • AWS / Kubernetes / Terraform
  • Docker / Redis / CI-CD
  • SQL / Git / Linux

GitHub activity · last 6 months

Highlights

  • Jane Street First-Year Trading & Technology Program, Hong Kong: top 5 of 15 teams, Estimathon
  • Top 10% worldwide of 22,000+ teams, IMC Prosperity 4
  • Jane Street monthly puzzle solved, four months running
  • UNSW CSESoc Flagship Hackathon finalist
  • Battlecode (Jump × HRT): 1st of 50 UNSW first-year teams, #53 of 1,003 overall, solo

Experience

Jane Street

First-Year Trading & Technology Program, Hong Kong

Sep – Oct 2026
Top 5 of 15 teams, Estimathon
Top 5 of 20 teams, Widget Factory

Selected for a fully funded program for first-year students across Asia-Pacific. Placed top 5 of 15 teams in the Estimathon and top 5 of 20 in a round of the Widget Factory market-making game, pricing each decision by expected value and repricing as new information came in. Attended talks and panels with Jane Street traders and developers on how trading and technology teams work together.

Market Making Expected Value Estimation

BuildingBloCS

Overall-In-Charge

2023 – 2025
3,000+ Students Reached
$200K+ Sponsorships Secured
70+ Institutions

Led Singapore’s largest student-led Computing Advocacy Program, personally overseeing annual conferences of 1,000+ participants from 60+ schools. Secured $200,000+ from 30+ partners to fund industry expert talks, hackathon judging, and national-scale mentorship programs. Designed and delivered technical workshops, including AI Safety & LLM Prompting for 200+ participants and an advanced PyTorch deep-learning session.

Leadership Technical Workshops Sponsorship

Walled AI

AI Safety Researcher

2024 – 2025
50,000+ Benchmark Entries
6 months Research Engagement

Investigated LLM hallucination failure modes in context-based QA over a 6-month engagement under guidance from a research lead, finding blind spots in leading detectors such as Lynx when the evidence conflicts with what the model already knows. Built a 50,000+ entry knowledge-conflict benchmark from Wikipedia and Wikidata: each fact becomes a true claim and a perturbed one across 3 conflict types (misinformation, temporal, semantic), with supporting evidence generated by Llama 3.1 8B on vLLM.

AI Safety LLM Evaluation Python

Featured projects

median per-order latency, 538 → 344 ns
C++20WebAssemblyLow-LatencyNASDAQ ITCHGoogleTest

Jul 2026

Limit Order Book & Matching Engine

A stock-exchange matching engine in C++, checked against 2.8 million real NASDAQ messages. It also runs in your browser.

How it works

Cut latency without changing a single matched trade, and prove the book still matches the naive version byte for byte.

A flat O(1) price-ladder array and intrusive free-list order pool (64-byte cache-aligned levels) replace std::map + std::list, cutting median latency 538→344 ns (~1.5×) and lifting throughput to 4.0 M ops/s. The rewrite stays byte-for-byte identical to the naive book and holds up against 2.8M replayed NASDAQ ITCH messages. Compiled to WebAssembly for a live in-browser demo.

quote both sides of a moving fair value
PythonAlgorithmic TradingMarket MakingStatistics

Apr 2026

IMC Prosperity 4: Algorithmic Trading

My solo entry in IMC’s algorithmic trading competition, which finished in the top 10% of 22,000+ teams and the top 200 in Australia.

How it works

Keeping a market-making engine profitable as volatility regimes change, without overfitting to any one of them.

Built a three-tier market-making engine (take/clear/make) using Welford online mean, online AR(1) on price deviations, z-score tiered sizing, and asymmetric bid/ask anchoring. Built a separate trend-following MM with hardcoded-slope discovery, online OLS blending (70/30), and full-book order imbalance microprice adjustment.

Kuhn poker value −1/18, matched to 4×10⁻⁷
PythonGame TheoryCFR / CFR+pytestCloudflare Pages

Jul 2026

CFR Poker Bot

A poker solver that learns near-optimal play from self-play and checks itself against the known mathematical answer. You can play against it.

How it works

Kuhn poker has a closed-form solution, so a correct solver must reproduce its game value of −1/18. This solver checks itself against it.

CFR and CFR+ solvers built from the original papers drive exploitability to 9×10⁻⁴ / 1.5×10⁻³ chips/game on Kuhn and Leduc, recovering Kuhn’s closed-form value of −1/18 to within 4×10⁻⁷. CFR+ converges ~10× faster; the solved strategy wins +38 to +72 bb/100 vs fixed baselines. Playable in-browser, with JS/Python info-set-key parity self-checks.

ablate one direction: refusal 92.5% → 0%
PyTorchHugging FaceMechanistic InterpretabilityLoRARunPod / Docker

Aug 2026

The Refusal Stack

Finds where Llama-3.1-8B decides to refuse, removes it, then catches a model whose refusal was quietly trained away.

How it works

Refusal can be stripped from an open-weight model by a quiet fine-tune. Whether that leaves a readable signature depends on where you look, and the obvious place, the prompt, reads chance.

Refusal in Llama-3.1-8B-Instruct is a single linear direction at layer 10: ablate it and refusal falls 92.5% → 0% with benign behaviour intact. A covert LoRA fine-tune strips it (98.8% → 0%), and a generation-time probe detects that tampering at AUROC 0.956 where a prompt-side probe reads chance. It holds at 1.000 against an adaptive attacker that jailbreaks the model 94% of the time. The same detector transfers unchanged to sleeper-agent backdoors (0.965) and emergent misalignment.

Have an internship, research role, or project in mind?

Contact me

Contact

Send a message