Research
A Hardware+Software stack for Internet-of-Things

The Internet of Things (IoT) is meant to be everywhere with projections of tens of Billions of devices within the next few years. There are a number of technical challenges that we are looking at in this new hyper connected environment around us. Our primary goals are to make this IoT infrastructure Safe, Secure, Private and Easy-to-Use. The research questions that we are looking to answer include (a) what novel forms of sensing/actuation to we need to get rich user and environmental context? (b) how can we make the (wireless) sensing substrate perpetual, robust and scalable? (c) what are the mechanisms to balance user privacy, functionality and usability? (d) how do we enable fine grained security and access control mechanisms at scale, including flexible policy specifications? (e) how do we ensure safety of operation such that nothing unexpected happens even when we don’t have control over individual IoT devices? (f) how do we store, organize and access all the sensor/actuator data to enable seamless discovery and portable IoT “App” development? (g) what new programming abstractions do we need to allow anyone to be able to “program” an IoT environment? (h) what are the compelling applications that will spur widespread adoption? We are designing, implementing and deploying our vision in the form of two open source end-to-end stacks, BuildingDepot and GioTTO, for Smart Buildings and IoT domains respectively.

Energy Efficient Computing

Computing devices consume significant amount of energy, and thus energy efficiency is key design driver of devices today whether it be battery backed mobile devices or wall powered PCs, servers and datacenters. We are devising system architectures that enable computers to have new states of operation where they essentially leverage heterogeneous components to “talk while sleep”. Somniloquy and SleepServers are two examples of this design paradigm for PC’s. Similarly, CoolSpots, Cell2Notify are two example systems for energy efficient smartphones. I am interested in applying and extending these concepts further. We are also investigating software and operating system designs that enable energy efficient operation, including being able to detect and mitigate anomalous behavior affecting battery usage on mobile devices. Finally, we have been looking at the human and behavioral aspects of improving energy efficiency. In particular, we are interested in developing and deploying systems that study human behavior and their interactions with computing equipment and exploring interventions that save significant energy at enterprise scales.

Mobile Systems and App Ecosystems

The phenomenal improvement in the capabilities of modern smartphones, and the underlying `App' store model of software distribution, has fundamentally changed the mobile computing landscape and also led to several interesting research problems. Two of the major ones that we are interested in are energy management (to improve battery lifetime) and addressing privacy on mobile platforms. We have for example, developed program analysis for 3rd party Apps running on modern smartphone OSes which can cause un-necessary battery drain due to developer error. We have also built a tool that verifies Android apps for the absence of energy sapping bugs. We are now exploring ways to crowd source app behavior to identify and mitigate causes of abnormal battery drain at runtime. The second aspect of mobile computing that we are very interested in is privacy, specifically for apps that collect and often share user data such as location, contacts, often unknown to users. We are exploring holistic end to end solutions for helping developers as well as user manage privacy on iOS and Android by combining techniques such as static analysis, runtime monitoring, crowdsourcing and machine learning. We are building on our ProtectMyPrivacy platform for both iOS and Android with over 200K downloads and tens of thousands of daily active users. We are exploring multiple research directions such as understanding user perception and bias towards privacy, effectiveness of crowdsourcing, improving effectiveness of privacy prompts, inferring purpose of privacy sensitive data access and its use, and also understanding the motivations behind privacy breaching apps and the entire ecosystem.