Work

Every project, by area

The strongest work sits at the top of each area as cards; everything else is one line below it. Some cards open into a full case study: problem, approach, results.

Performance and inference

Big models made to fit and run fast on phones, NPUs and one GPU, and the frameworks that ship them.

Headline numbers, Keras master on July 18 against October 15: compiled and eager generation, Python calls per forward, graph breaksHeadline numbers, Keras master on July 18 against October 15: compiled and eager generation, Python calls per forward, graph breaks
Performance and inferenceGoogle · Jul 2026 – Oct 2026

Keras on PyTorch: compiled generation 11.6x faster

Traced why Keras on PyTorch ran about 9x slower than plain PyTorch, and merged the fixes upstream, one root cause each.

Case study · 2 minMerged →
Decode speed, tokens per secondPlain offloading10.77+ gather kernel13.53+ hot-expert cache, peak16.50As shipped14.99Fewer experts (not used)20.48
Performance and inferenceIndependent · 2 Sep 2026

GLM-5.3-Flash on one GPU

Served a 181 GiB mixture-of-experts LLM from one 96 GiB GPU and took decoding from 10.8 to 15.0 tokens/s shipped, 16.5 at peak.

Case study · 2 minPublished →
Keras modelTFPyTorchmodel.export(…, format="litert").tfliteon device
Performance and inferenceGoogle · Dec 2025 – Jul 2026

One call from a Keras model to a phone: LiteRT export

Built the LiteRT export path in Keras and KerasHub: a trained model to a phone-ready file in one call, on TensorFlow and PyTorch.

Case study · 1 minMerged →
Performance and inferenceGoogle · Aug 2026 – now

End-to-end UI tests for XProf

Wrote the end-to-end UI test suite for XProf, the open-source ML profiler, with 107 browser tests and a side-by-side check of two builds.

SummaryShipped →
Performance and inferenceGoogle · Apr 2025 – Jul 2026

Llama 3.1 in KerasHub, and Gemma 3 fixes

Implemented Llama 3.1 in KerasHub and fixed Gemma 3 bugs, including a preprocessor crash across Gemma 3, 3n and 4.

SummaryMerged →
Performance and inferenceIndependent · Jul 2026

Keras on an Android phone

An Android app and guide that run KerasHub models on the phone with LiteRT, from one export call to six working screens.

SummaryPublished →
Performance and inferenceQualcomm · Sep 2024 – Jan 2025

3x faster models on the Snapdragon NPU and DSP

Made deep-learning models run 3x faster on the Snapdragon NPU and DSP, and cut memory bandwidth 75% with quantization-aware training.

SummaryBuilt →
Performance and inferenceGoogle

A benchmarking system for Keras and KerasHub

Built the benchmarking system for all Keras and KerasHub models: automated weekly runs across GPU and TPU, the TensorFlow, JAX and PyTorch backends, presets and batch sizes, to catch performance regressions.

Short entryBuilt →

Also in performance and inference

  • Keras correctness fixesJun 2025 – Oct 2026

    Fixed TPU attention, N-D attention inputs, nested weight saving, masks, call-context leaks and ONNX export of models over 1.5 GB. · Google · Merged

  • Model-parallel layout maps for KerasHub LLMsJul 2026

    Designed model-parallel layout maps for KerasHub LLMs, from Gemma and Qwen to Llama and Mixtral; proposed upstream, not merged. · Google · Proposed, not merged

  • A Keras 3 migration

    Led the migration of a major internal customer from legacy Keras to Keras 3, with backward compatibility and performance parity. · Google · Built

  • Making KerasHub models exportable

    Fixed the layers that kept KerasHub models such as ESM, PARSeq and Flux from exporting to LiteRT. · Google · Merged

  • Faster Exynos NPU inference

    Optimized models for the Exynos NPU with TensorFlow Lite, for 2.5x faster inference. · Samsung R&D Institute India · Built

  • LiteRT-LM export for KerasHub LLMs

    Built one call from a KerasHub LLM to a LiteRT-LM bundle with tokenizer and prefill and decode signatures; proposed upstream, not merged. · Google · Proposed, not merged

  • Gemma on Android

    Gemma running fully on an Android phone with TFLite, LiteRT and LiteRT-LM. · Independent · Published

Computer vision

Seeing on the device: damaged barcodes, faces, attention, documents.

5 901234 123457scanningblur · scuff · glarerestored → read 5901234123457 ✓too damaged → no read, no guess ✗
Computer visionSamsung R&D Institute India · Jul 2022 – Aug 2024

Reading damaged barcodes on phones

Read 90%+ of damaged barcodes correctly on its damaged test set, where a commercial scanning SDK read 70%, with models trained on 10M+ synthetic images.

Case study · 2 minBuilt →
knownknownnew faceindexfew steps,not every face
Computer visionSamsung R&D Institute India · Mar 2023 – Aug 2024

Recognising many faces at once on edge devices

A multi-face recognition engine at 99.2% accuracy and 30+ FPS on edge devices, with face search cut from 1,200 ms to 87 ms.

Case study · 1 minShipped →
Computer visionQualcomm · Sep 2024 – Jan 2025

Generative inpainting on a phone's NPU and DSP

Redesigned a generative inpainting feature, object removal and image completion, so its models fit NPU and DSP latency budgets for the Snapdragon Summit demo.

SummaryDemo →
Computer visionSamsung R&D Institute India · Jul 2023 – Oct 2023

An AI exam-proctoring platform (Satyapan)

An anti-cheat exam platform used for 2,000+ employees across 100+ tests, with 60% less administrative overhead.

SummaryShipped →

Also in computer vision

  • MILAP: reuniting lost people at mass gatheringsJul 2026

    An offline-first design for reuniting lost people at the Kumbh Mela, with face and body re-identification, an opt-in gallery and human-verified matches. · Independent · Research

  • Object detection tutorialJul 2025

    A notebook and a synthetic shape dataset that teach box regression and classification from scratch. · Independent · Published

  • Camera ML pipelines in C++Sep 2024 – Jan 2025

    Detection, tracking and segmentation pipelines in C++ with INT8 quantization and pruning, and ML inside the native camera stack for a voice-controlled camera assistant. · Qualcomm · Built

  • Shadow-RemovalOct 2022

    Removes shadows from document photos with adaptive thresholding and iterative shading and reflectance decomposition, without deep learning. · Independent · Published

  • Gaze correction for video callsJan 2022 – Jun 2022

    A prototype that shifts the eyes toward the camera in video calls, using facial landmarks and geometric transforms. · Samsung R&D Institute India · Prototype

  • Real-time image models on AndroidJan 2022 – Jun 2022

    Real-time classification and detection on Android at 25+ FPS with quantized MobileNet and EfficientNet models through NNAPI. · Samsung R&D Institute India · Built

  • Generative image modelsJan 2022 – Jun 2022

    Trained CycleGAN models in PyTorch for image-to-image translation and avatars, deployed with TFLite, and generative face models with StyleGAN and StarGAN. · Samsung R&D Institute India · Built

  • Shadow removal and document clean-up

    Prototyped shadow removal and noise reduction for document scanning on phones. · Samsung R&D Institute India · Research

Sensor and behaviour ML

Reading motion and touch: falls, crashes, and who is holding the phone.

0g1g2g3g4g5g6gat restfree fallfree fall t = 0.45 s → height h = g·t²/2 ≈ 1.0 mimpactsettledtime →
Sensor and behaviour MLSamsung R&D Institute India · Mar 2023 – May 2023

Phone drop detection in under 22 parameters

Replaced a deep-learning drop detector of millions of parameters with sensor features and a model of under 22, saving over 95% of the power.

Case study · 1 minShipped →
left handright hand← leftright →
Sensor and behaviour MLSamsung R&D Institute India

Who is holding the phone? Behavioural identification

Told which hand holds a phone, right 90%+ of the time over 30+ seconds, and who holds it, without deep learning.

Case study · 1 minShipped →
Sensor and behaviour MLSamsung R&D Institute India · Nov 2022 – Aug 2024

Car crash detection with automatic SOS

A phone that detects a car crash from its sensors and sends an SOS to chosen contacts.

SummaryBuilt →

Projects and tools

An independent research lab, and the tools built along the way.

₹1 lakh held from 2006, after costs and tax₹5 lakh₹10 lakh20062026NIFTY 500 index fund₹9.9 lakhSelf-held 300-stock basket₹7.9–8.6 lakhIndex fund ahead in 69 of 70 tiers▼ A hand-picked basket of large stocks instead of an index fund · costs and taxes▼ Intraday chart-pattern setups · costs and taxes▼ Order-book signals over seconds to minutes · costs and taxes▼ Trading other public filing feeds on their own · costs and taxes▼ Reinforcement-learning agents trading on daily prices · no edge, or only luck▼ A bigger machine-learning model to rank stocks · no edge, or only luck▼ Buying after a big news-driven jump · no edge, or only luck▼ Commodity price shocks to predict company results · no edge, or only luck▼ Writing options on the index for income · no edge, or only luck▼ Buying stocks announced for addition to a major index · the market got there first▼ An AI model reading company filings to forecast earnings surprises · AI that fell short of the bar▼ An AI model mapping which companies supply which, from annual reports · AI that fell short of the bar▼ A hand-picked basket of large stocks instead of an index fund · costs and taxes▼ Intraday chart-pattern setups · costs and taxes▼ Order-book signals over seconds to minutes · costs and taxes▼ Trading other public filing feeds on their own · costs and taxes▼ Reinforcement-learning agents trading on daily prices · no edge, or only luck▼ A bigger machine-learning model to rank stocks · no edge, or only luck▼ Buying after a big news-driven jump · no edge, or only luck▼ Commodity price shocks to predict company results · no edge, or only luck▼ Writing options on the index for income · no edge, or only luck▼ Buying stocks announced for addition to a major index · the market got there first▼ An AI model reading company filings to forecast earnings surprises · AI that fell short of the bar▼ An AI model mapping which companies supply which, from annual reports · AI that fell short of the bar12 CLOSED
Projects and toolsIndependent · May 2025 – now

RL Alpha Labs

Automated trading on Indian stocks, where a strategy counts only if it beats an index fund after real costs and tax.

Case study · 1 minResearch →
Projects and toolsIndependent · Apr 2026 – now

Porchlamp

Shows which open-source projects reply to, review and merge a stranger's pull request, so contributors spend their effort where it will land.

SummaryLive →
Projects and toolsIndependent · Aug 2026 – now

Servedeck

Runs local LLMs on one GPU workstation, switching models with one command behind one OpenAI-compatible endpoint, with a live dashboard.

SummaryLive →

Also in projects and tools

  • hostopsOct 2026

    Drops a GPU's power limit the second the UPS reports battery, never fails open, and logs every mains cut. · Independent · Published

  • flakehoundJul 2026

    Static checks that find flaky pytest tests by their pattern, with rules for JAX, PyTorch and NumPy. · Independent · Published

  • Daily TrackerJun 2026

    An offline Flutter habit tracker for Android with checksum-verified updates. · Independent · Published

  • ATS optimizerFeb 2026

    A job-application pipeline that finds openings, builds each resume by selecting facts rather than inventing them, and fills forms with a browser robot. · Independent · Live

  • ML-GuideMar 2025

    An ordered route through AI and ML courses, in four stages. · Independent · Published

  • Data structures in Python2020

    A van Emde Boas tree with O(u) and O(n log log u) space versions, plus balanced trees, treaps, segment and Fenwick trees and skip lists. · Independent · Published

  • A multi-agent engineering workflow on one workstation

    A shared test scheduler, guard hooks and a context hub that let many coding agents work safely on one workstation. · Independent · Live

  • Coursework projects

    Projects from MIT's machine learning course, CS50 AI and CS188, including Pac-Man search and reinforcement learning. · Independent · Published