Start with the research summary or the full CV. For collaboration, roles or funded doctoral study, get in touch.

Available from March 2027

Research

I work on making failing programs easier to debug, through input reduction and learning input structure. My work combines algorithm implementation and empirical evaluation, with additional research in formal models and domain-specific languages.

Dr. DD · input reduction

ISSRE 2026

Dr. DD reduces a failing input to a smaller reproducer while preserving 1-minimality: no single remaining element can be removed without losing the failure.

  • My contribution. I implemented and optimized the algorithm, ran the full empirical evaluation, and built the replication package.

  • Artifact recognition. Available, Reviewed and Reproducible badges for both code and data.

Runtime
6.0×
faster
Oracle calls
1.7%
of baseline
XML benchmark, relative to ddminY. Mean reduction quality was comparable across benchmark families.
BenchmarkMean oracle callsReduction quality
ddminYDr. DDProbDDCDDDr. DDProbDDCDD
ffmpeg5,1822,5854,9063,303101.0%92.7%140.1%
XML243,2774,1084,8594,07198.9%86.5%86.4%
binutils23,11311,1265,5875,587100.0%99.3%99.0%
crashjs62,8922,3971,3731,25999.9%88.0%85.8%
Means per bug, over 14 ffmpeg, 15 XML, 12 binutils and 11 crashjs bugs. Fewer oracle calls is better. Reduction quality is the share of what ddminY removed, so 100% removes the same amount; CDD's ffmpeg average is lifted by one bug where ddminY barely reduced the input. ProbDD and CDD were given each family's average reduction ratio as their prior, which favours them, and neither guarantees 1-minimality. Highlighted: the best value in each row of each group.

Method, evaluation & contribution

Dr. DD defers restarts at coarse partition levels and retains them at the single-element level. This avoids repeated work while preserving the 1-minimality guarantee. We compared it with ddminY, ProbDD and CDD on ffmpeg, XML, binutils and crashjs inputs.

I conducted the experiments, ablations and minimality checks. In the restart-budget analysis, I distinguished failures of 1-minimality from larger, already 1-minimal fixed points; only the former violate the minimality condition. Rahul Gopinath developed the correctness and complexity arguments, which I verified. I also contributed to the reviewer responses through a major-revision cycle.

Learning input structure

Ongoing

Can a failure test reveal enough of an input's structure to reduce it without a supplied grammar, parser or lexer?

  • Current work. With Rahul Gopinath at Sydney, I'm developing input segmentation from a deterministic Boolean oracle. This extends Dr. DD's treatment of inputs as flat sequences. Each proposed deletion remains independently oracle-checked.

  • Open question. Can the savings during reduction justify the cost of learning the structure? Reliable automatic separator selection and acquisition cost remain under investigation.

Approach & open questions

The implementation uses suffix arrays and longest-common-prefix analysis to enumerate maximal repeated substrings. It ranks candidate separators by contextual diversity and occurrence support, then tests them through verdict-preserving duplication. I'm also investigating prediction of further oracle answers during inference.

The formal model treats boundaries as recognition barriers and gives conditional recovery guarantees. Realizing those barriers through concrete input transformations requires further assumptions; successful insertion probes alone do not establish them.

HyDRA · programmable microfluidics

ISVLSI 2026

How can a lab-on-a-chip be programmed to run an assay, with safety conditions checked before execution?

  • My contribution. For my undergraduate thesis, I designed a microfluidic architecture, instruction set and finite-state safety model, with a static verification procedure and analytical evaluation.

  • Recognition. Ashoka's Academic Excellence Award for Best Undergraduate Thesis in Computer Science.


Architecture, evaluation & supervision

HyDRA uses closed-loop slug flow and an integer-valued instruction set under a single-static-assignment discipline. Eight invariants express safety properties as integer linear constraints within a finite integer-state model. The thesis includes a static verification procedure and soundness argument, asynchronous module contracts, and compiler and scheduler specifications.

Evaluation covers physical feasibility under stated assumptions and worked assay mappings. Fabrication, a working compiler, measured evaluation and machine-checked proof remain future work. I completed the thesis with Bhargab B. Bhattacharya at Ashoka in April 2026 and presented the related paper at ISVLSI on 9 July 2026.

Recipe ontology & DSL

MMFood 2025

Recipes leave intermediate states, concurrent actions and timing implicit. This work gives those procedures an explicit, structured representation.

  • My contribution. I developed the temporal-graph ontology and extended it into a DSL, implementing a Python pipeline for extraction, compilation, validation and interactive rendering.

  • Outputs. A published ontology, with equal-contribution credit, and a DSL pipeline with 21 worked cases.


Representation, validation & collaboration

With Partha Pratim Das at Ashoka, I developed the ontology from an open-ended brief. The MMFood 2025 paper credits equal contribution with Saransh Kumar Gupta. Its comparative rubric covered 42 of 58 features, measuring representational coverage rather than extraction accuracy.

The DSL adds iteration, alternatives, optional bodies and coordinated decisions. The pipeline combines typed schemas, LLM extraction with one bounded repair attempt, deterministic graph compilation, source-grounding checks, structural and relational validation, and interactive HTML rendering. The worked cases have validation records and unit tests; they check the graph contract, and extraction accuracy on unseen recipes is not yet established.

Earlier work · grammar fuzzers

I built and profiled depth-limited grammar fuzzers in C, with Python compilers that generate a fuzzer from each grammar. Replacing repeated buffer copies with in-place prepending made the token implementation the fastest variant measured on the example grammar.