I am the CTO of Mobile Enerlytics, a startup I co-founded. Mobile Enerlytics provides comprehensive battery drain analysis solutions to mobile app developers to build battery efficient apps.
I received my MS and Ph.D. from CS, Purdue University where I worked closely with professors Y. Charlie Hu and Samuel Midkiff. My thesis was titled Towards Automated Energy Debugging in Smartphones. I earned my undergraduate degree from Electrical Engineering, IIT Kanpur.
My interest areas are mobile systems, operating systems, and software engineering. My overarching research interest is to automate the “creative” task of debugging and optimization. Debugging and optimization are currently ad-hoc manual processes taking up majority of programmers’ time.
The Sisyphean journey to full automation can be broken down into a few high-level milestones. Each milestone reduces human effort but offer challenges of increasing difficulty such as ones described below. I am generally interested in finding principled answers to these questions.
Reveal system properties. What are the right metrics to collect? How can these metrics be accurately collected with minimal monitoring overhead in production environments?
Generate error reports from runtime measurements or during static analysis. What information should be surfaced in an error report to make it more actionable? How to assist developers to quickly arrive at a fix from an error report? How to generate errors with minimal false negatives and false positives?
Suggest program fixes. How to bridge the gap between low-level error signatures and high-level program fixes? How to navigate the vast search space for potential fixes and optimizations?
Fix automatically. How to create a repository of precise bug definitions? How to work with imprecise static analyses to generate precise fixes? How to reason about program’s semantic properties from program syntax?