NOTE: Since graduating from UCI, I have let this website go terribly out of date. I am in the process of rebuilding this website. Visit back later for updates. -- Vijay, May 17 2018
As a software engineer, I am principally interested in improving the methods and techniques for software debugging (i.e. finding and fixing software faults). I am particularly interested in developing the facilities and theory to enable software developers better understand, locate and fix software faults. My research currently looks at building, visualizing and studying models of runtime behavior of software components in order to facilitate software debugging which is a complex and ubiquitous activity within software engineering.
I graduated with a Ph.D. in Software Engineering, from the University of California, Irvine, where I was advised by Prof. James A. Jones at the Spider Lab. James' research is focused towards software testing, analysis (compile-time and run-time) and debugging. Before UCI, I obtained my undergrad degree in Computer Engineering, with a First Class with Distinction from the University of Pune, India.
Hosted at: http://spideruci.github.io/cerebro
Cerebro, formerly known as "The Brain", reveals clusters of source code that co-execute to produce behavioral features of the program throughout and within executions. We created a clustered visualization of source-code that is informed by dynamic control flow of multiple executions; each cluster represents commonly interacting logic that composes software features. In addition, we render individual executions atop the clustered multiple-execution visualization as user-controlled animations to reveal characteristics of specific executions—these animations may provide exemplars for the clustered features and provide chronology for those behavioral features, or they may reveal anomalous behaviors that do not fit with the overall operational profile of most executions. Both the clustered multiple-execution view and the animated individual-execution view provide insights for the constituent behaviors within executions that compose behaviors of whole executions. Inspired by neural imaging of human brains of people who were subjected to various external stimuli, we designed and implemented Cerebro to reveal program activity during execution. The result has revealed the principal behaviors of execution. Those behaviors were revealed to be (in some cases) cohesive, modular source-code structures and (in other cases) cross-cutting, emergent behaviors involving multiple modules.
Today We Lack
Hosted at: http://treestrokes.github.io/today-we-lack/
"Today We Lack" is an attempt to harness the power of the internet and the data that it has accumulated over the years to understand what we as a people in India have been lacking for many years now, as reported by our news media. The premise of this project is simple: list out all the things that we lack in the country --- today, yesterday, the day before, or at any time in the past --- and someone, somewhere might want to do something about it.
We are collecting news headlines from websites such as the Times of India. From such a massive pool of headlines we are simply searching for those headlines that have the word 'lack' in it. We find that such headlines explicitly call out on things that we as a people lack, every now and then.
Take a look at this list of things that India lacks.