The Computer Architecture stack in today’s systems is becoming more heterogenous than ever. Today’s systems cater to safety-critical or real-time applications more often making high throughput, increased system utilization, reliability and security a necessity rather than a feature. Asynchronous interfaces in form of asynchronous system services or micro-services help achieve the goal of increased system utilization and throughput. Formalizing the non-intuitive asynchronous model makes it achievable for safety-critical applications as well as eases programming complexity in any application. Hence, I am looking at formalizing the asynchronous programming interface to make it easy to reason about in terms of programmability, safety and correctness.


Work experience

Research Experience

Industry Experience:


Awards and Recognition

Scholastic Achievements

Technical Skills

Programming :

C, C++, Python, MATLAB/Octave, OpenCV, NVPTX

Compiler frameworks:


Debugging :

gdb, MS Visual Studio debugger, Valgrind

Formal Verification tools

Z3, Daphny, Coq



Relevant Graduate Courses

Yale CPSC 522: Operating Systems - Design and Implementation, Yale CPSC 554: Software Analysis and Verification, Yale CPSC 528 : Language Based Security, Yale CPSC 568 : Computational Complexity, Yale CPSC 577 : Natural Language Processing, Yale CPSC 572 : Intelligent Robotics, Yale CPSC 626 : Human Factors in Computer Systems: Design, Evaluation, and Presentation

Talks and Seminars

Summer Schools

Fun Facts