My research interests span across several aspects of program analysis (also called static anlaysis), software verification, and software engineering. Earlier my work has been mainly in the context of verification and validation of safety-critical systems (Embedded systems). Currently, my primary focus is on (1) analysis and verification of smart contracts, and (2) improving the state of program analysis and alarms postprocessing by using machine learning.Since 2013, I have been doing research on postprocessing of alarms. More particularly, I aim to improve usability of static analysis tools, by reducing the number of alarms by their grouping, classification, and automated elimination. Moreover, I aim to simplify the process of manual inspection of alarms, by providing review-assistance to the users. Currently, I am exploring ways to use machine larning to advance the state of postprocessing of alarms.
Between 2011 and 2013, I worked on design and development of a commercial static analysis tool tool, TCS Embedded Code Analyzer (TCS ECA). I contributed by designing techniques to detect defects of unique types, and techniques for improving precision of underlying analyses such as value and pointer analysis. Prior to that, I worked on automated test data generation for different coverage criteria (2009-2011), and structuring and composing of software development artifacts in software product line engineering (2007-2009).Based on the research work, I have (co)-authored 15 peer-reviewed conference papers, and filed 12 unique patents of which nine are granted in one or more jurisdictions and the other three are currently under examination.
Before joining TRDDC, TCS, in 2007, I worked with IBM India as a developer for around 15 months.