I build systems that run on supercomputers — ML pipelines, parallel algorithms, and production APIs that hold up under load.
Most of my work lives somewhere between ML and systems — training pipelines that actually run fast, parallel code that doesn't embarrass itself on a supercomputer, APIs that hold up under load.
Currently finishing my MSc in High Performance Computing with Data Science at the University of Edinburgh. Previously built production ML systems at ISRO's National Remote Sensing Centre — real meteorological data, real users, real constraints.
I care about the stuff underneath the model — memory, scheduling, latency. If it runs on a cluster, I've probably optimised it.
Live from GitHub — filtered to performance-critical systems & ML pipelines
End-to-end ConvLSTM prediction system built during my internship at ISRO's National Remote Sensing Centre. Deployed to active meteorologist workflows.
A measurement study profiling KV-Cache memory dynamics across Frontier LLMs on H100. Discovered systematic GPU memory retention in Gemma 4.
An interactive Raft Consensus Cluster visualising elections, replication, partitions, and state recovery.
package raft
import "sync"
type State int
const (
Follower State = iota
Candidate
Leader
)
type LogEntry struct {
Term int
Command string
}
type Raft struct {
mu sync.Mutex
id int
peers []int
state State
// Persistent consensus state
currentTerm int
votedFor int
log []LogEntry
commitIndex int
}
// AppendEntries RPC handles log replication & heartbeats
func (rf *Raft) AppendEntries(args *AppendEntriesArgs, reply *AppendEntriesReply) {
rf.mu.Lock()
defer rf.mu.Unlock()
// Reject outdated leader terms
if args.Term < rf.currentTerm {
reply.Success = false
return
}
// Reset election timer
rf.heartbeatCh <- true
// Truncate logs if conflict exists & append new entries
if len(args.Entries) > 0 {
rf.log = append(rf.log[:args.PrevLogIndex+1], args.Entries...)
}
// Commit and apply to state machine
if args.LeaderCommit > rf.commitIndex {
rf.commitIndex = min(args.LeaderCommit, len(rf.log)-1)
}
reply.Success = true
}
Pulled from GitHub in real time — updates as I push new code
Scores derived from public GitHub repositories. Reference benchmarks based on common ML Engineer job requirements.
University of Edinburgh · EPCC
Specialising in data science, parallel programming on ARCHER2 (UK National Supercomputer), MPI/OpenMP, GPU computing, and large-scale machine learning systems.
ISRO — National Remote Sensing Centre
Built a ConvLSTM lightning prediction system end-to-end in PyTorch. 92% accuracy on live data, deployed to active meteorologist workflows. Cut training time 35% by optimising on 500 GB WRF datasets with VAE. Also built the React dashboard they used to monitor it.
Clustor Computing
Stock price models with 94% directional accuracy. Built data pipelines and Tableau dashboards for investment teams.
Develoscope Software Solutions
Four Java web applications shipped from scratch to production. JSP, Tomcat, full-stack development.
Microsoft
Valid until Jun 2026Microsoft
Valid until Jun 2026Microsoft
Valid until Jun 2026Oracle
Valid until Jul 2026Google / Coursera
CompletedMcKinsey & Company
CompletedLooking for a developer who can handle ML systems, HPC workloads, and production APIs? I'm your person. Currently based in Edinburgh, available for remote and UK-based roles.