Johannesburg, South Africa

sachin mohan

Part researcher, part builder, mostly impatient.

21. I started with a soldering iron and a box of my dad's electronic kits, and I never really stopped. Since then: a CNN that diagnoses respiratory disease from sound, an AI product with paying enterprise customers, and now robot foundation models.

21, and mostly just building things.

warp.glsl

what i'm working on

evolutionary-multi-objective-planning

in progress · targeting ICLR

Evolutionary Multi-Objective Planning in JEPA

Can safe behaviour emerge from selection pressure instead of hand-tuned penalties?

Honours research, supervised by Geraud Nangue Tasse (IBM Fellow), in Prof. Benjamin Rosman's group at Wits

Safe reinforcement learning currently runs on hand-tuned penalties. Set them too weak and the agent does unsafe things; set them too strong and you get a policy so conservative it's useless. Constraint-based methods swap the penalty for a cost function, but a cost function is just as hard to specify. You've moved the hand-tuning, not removed it.

So the question is whether black-box optimisation (genetic algorithms, evolution strategies, neuroevolution) can balance reward against the probability of a safety violation directly, and let safe behaviour emerge from selection pressure rather than from manual engineering. If it works, it matters everywhere an agent acts in a human environment: robot navigation, and eventually the same question for language models.

lab-tour.mp4
TRPO min-max, seed 13: success
TRPO Lagrangian, seed 7: safety violation

The through-line with everything else here: as agents take more real actions on our behalf, the question of which actions are safe to take autonomously stops being academic.

in-progress.md

alex, the AI exec

2025–26

Alex

A multi-agent AI executive assistant. Built it as CTO. Real customers, real money.

I sat in 50–60 calls with mid-market South African companies and noticed the same hole every time: half a C-suite. No COO, no CMO, nobody owning reporting. So we built the agents that fill those seats. I took it from idea to paying customers, and hired and led the four engineers who built it with me.

A full boardroom watching a governance session, the slide asking 'What would you need to feel truly prepared for every agenda item?'
Alex presented at the Corporate Governance Conference
  • $24K ARR in subscriptions, $100K+ contracted alongside
  • $57K contract with Juta Law, South Africa's 150-year-old legal publisher
  • 700,000 historical court documents processed
  • Hired, onboarded and led a team of 4 engineers
NodePythonReactLLM agents
alex.app

independence-is-all-you-need

2026 · mechanistic interpretability

Independence Is All You Need

Constraint-based causal discovery recovers SAE feature-circuit structure that attribution patching cannot represent.

University of the Witwatersrand

Sparse autoencoders decompose a model's residual stream into interpretable features. Recovering the *circuits* those features form is still open, and the state of the art scores them with attribution patching, a marginal estimator.

That's a structural blind spot. A chain A → C → B and a collider A → C ← B are indistinguishable to any marginal method, because the difference lives entirely in conditional dependencies. So I brought in the tool built for exactly that: the PC algorithm, which recovers structure through systematic conditional independence tests.

Model
Gemma-2-2B
Task
Indirect Object Identification, N = 5,000
Features
Gemma Scope SAEs, 16k width, layers 18/22/25
Method
PC with χ² CI tests, α = 0.01
Validation
direct do(·) ablation in feature space

explaining-away

explaining-away.mp4

366

edges recovered, 65% cross-layer

599

v-structures found

100%

interventional pass rate (50 edges)

0.000

what AP reads at layers 18 & 22

The structure PC finds sits precisely where attribution patching reads zero. PC doesn't replace AP. AP tells you which features matter; PC tells you how they connect.

video-walkthrough

video-walkthrough.mov
the-paper.pdf

before that

respiratory-cnn

2022

Diagnosing Lung Disease by Sound

A CNN that classifies respiratory disease from a recording. Built at 17, before ChatGPT existed.

Won national gold and the grand prize at the South African science fair, then represented the country at Regeneron ISEF in Atlanta, one of seven South Africans there. First time I found out what it feels like to be measured against the best in the world instead of the best in the room.

Sachin standing at his ISEF poster, titled 'Diagnosis of respiratory ailments through physiological sound analysis'.
the poster, Atlanta 2022
The ISEF Grand Awards Ceremony, with a South African flag held up in the foreground.
grand awards ceremony
Sachin and two other ISEF finalists with the physicist Michio Kaku.
with Michio Kaku
  • National gold + grand prize (~$5K)
  • 1 of 7 South Africans at Regeneron ISEF, Atlanta
  • Built at 17, pre-LLM era
TensorFlowPythonSignal processing
diagnosing-lung-disease-by-sound.app

icon-model.sh

2025HPE Labstraining partner

Running a national weather model

HPE EMEA Labs training: deploying ICON, Germany's operational weather model, on a supercomputer.

ICON is the icosahedral non-hydrostatic model that DWD and MPI-M run for German national forecasting. It's a serious piece of scientific software with a build that fights you. Through online training with HPE's EMEA Labs in Grenoble I got it compiled, configured and running on a cluster at the Pittsburgh Supercomputing Center. Different discipline from the cluster competition: there the hardware was the problem, here it's the software stack.

An ICON model visualisation showing the icosahedral triangular grid at two resolutions over coloured terrain elevation.
ICON's icosahedral grid. © F. Prill, DWD (CC BY-NC-ND)
  • Online training with HPE EMEA Labs, Grenoble
  • Deployed and ran ICON on a cluster at the Pittsburgh Supercomputing Center
  • Toolchain, MPI configuration and domain setup for a real forecasting model
FortranMPILinuxHPC
running-a-national-weather-model.app

cluster.sh

2024

Building a supercomputer that was broken

CHPC Student Cluster Competition: 4th nationally, on hardware that kept failing.

Teams get identical hardware, a power budget, and a set of HPC benchmarks to tune. Ours shipped with faulty RAM. We spent the competition diagnosing and working around memory that would fail mid-run, on top of the actual job of building and tuning the cluster. We came 4th in the country anyway, and I was selected individually for the ISC reserve team in Germany.

The Wits team at their CHPC competition booth, whiteboards behind them covered in network diagrams, a Wits crest and a hand-drawn Linux penguin.
the team, mid-competition
The competition cluster: a rack server on a desk, three monitors of terminal output, and network interface names scrawled on the whiteboard behind it.
the cluster, and the RAM that kept dying
  • 4th nationally, competing on a cluster with failing memory
  • Individually selected for the ISC reserve team, Germany
  • Cluster build, benchmark tuning, and a hard power ceiling
LinuxMPIBashHPC benchmarks
building-a-supercomputer-that-was-broken.app

say-hi.app

want to build
something?