Our research crosses multiple layers of the system stack, from hardware to programming languages and applications. Our research has four main themes. The concurrency theme addresses challenges in writing, testing and debugging concurrent programs. The approximate computing theme explores accuracy trade-offs across the system stack for better energy efficiency and performance. The emerging applications theme focuses on building systems to better support new applications, from mobile apps to graph analytics. The emerging technologies theme aims at taking advantage of new storage and compute technologies in building new systems.