• Present June 2021

    Senior Software Engineer — Google, LLC — Mountain View, CA

    Team: OpenTitanSupervisors: Neil Hendin and Arun Thomas
    Description: Developed firmware (for pre-silicon verification) and fuzzing techniques for OpenTitan: the first open-source silicon root-of-trust.

    • Developed a FreeRTOS-based pre-silicon verification test framework for the OpenTitan chip.
    • Led the refactoring and completion of 30+ pre-silicon verification device drivers for OpenTitan.
    • Stood up several CW310 FPGA boards to emulate OpenTitan hardware for software development purposes.
    • Led the final (~3 months) Meson to Bazel build system migration effort for the OpenTitan codebase.
    • Created a top-level test development guide to onboard both company-internal and -external contributors to top-level pre-silicon verification efforts.
    • Recruited / Led Ph.D. research itern to develop a novel firmware fuzzing technique to fuzz OpenTitan ROM.
  • May 2021 Sept. 2015

    Graduate Research Assistant — University of Michigan — Ann Arbor, MI

    RTCL LaboratoryAdvisor: Kang G. Shin
    My research aims to ensure the integrity of integrated circuit hardware throughout the design and deployment lifecycles to facilitate a secure foundation for autonomous cyber-physical systems.

  • Sept. 2020 May 2020

    Research Intern — Google — Cambridge, MA

    Team: OpenTitanSupervisors: Alex Chernyakhovsky and Garret Kelly
    Description: Developed GCP-based infrastructure (similar to OSS-Fuzz) to fuzz software models of RTL hardware at scale using software fuzzing tools.

  • Sept. 2019 May 2019

    Graduate Research Intern — MIT Lincoln Laboratory — Lexington, MA

    Team: Cyber-Physical SystemsSupervisors: Kevin B. Bush and Matthew Hicks
    Description: Developed an automated verification tool called Bomberman to vet untrusted RTL hardware for Ticking Timebomb Trojans (TTTs).

  • Sept. 2018 May 2018

    Graduate Research Intern — MIT Lincoln Laboratory — Lexington, MA

    Team: Cyber-Physical SystemsSupervisors: Kevin B. Bush and Matthew Hicks
    Description: Developed two layout-level defenses— T-TER and IC Portholes—against stealthy fabrication-time attacks like the A2 Trojan.

  • Sept. 2017 May 2017

    Graduate Research Intern — MIT Lincoln Laboratory — Lexington, MA

    Team: Cyber-Physical SystemsSupervisors: Kevin B. Bush and Matthew Hicks
    Description: Developed an automated toolchain, called ICAS, to assess the vulnerability integrated circuit layouts to fabrication-time modification (e.g., insertion of a hardware Trojan).

  • Aug. 2015 May 2015

    Software Engineering Intern — Microsoft — Bellevue, WA

    Team: Windows Devices Group — Supervisor: Ted Roberts
    Description: Worked on the Windows IoT Core team to design and develop point-of-sale (PoS) device emulators for Visual Studio and Windows 10.

  • Apr. 2015 Jan. 2014

    Undergraduate Researcher — Purdue University — West Lafayette, IN

    Department: Electrical & Computer Engineering — Supervisor: Prof. Cheng-Kok Koh
    Description: Developed place-and-route algorithms, used by VLSI CAD tools, to automate and optimize integrated circuit layout.

  • Aug. 2014 May 2014

    Software Engineering Intern — Microsoft — Redmond, WA

    Team: Operating Systems Group — Supervisor: Mike Dice
    Description: Worked on the Membership Assistance and Connections team to design and develop a web UX customer support feature for Windows 10, and its supporting back-end.

  • May 2014 May 2014

    Undergraduate Teaching Assistant — Purdue University — West Lafayette, IN

    Class: Microprocessor Systems and Interfacing (ECE 362)Supervisor: Prof. David G Meyer
    Description: Taught students how to interface microcontrollers with peripheral components such as LEDs, LCD screens, non-volatile memory, and stepper motors, and how to write firmware for ADCs, interrupt controllers, PWM modules and other microcontroller peripherals. As a student in the class the previous semester, my teammates and I created a water jet audio visualizer cleverly named the Aqualizer.

  • Dec. 2013 Aug. 2013

    Undergraduate Teaching Assistant — Purdue University — West Lafayette, IN

    Class: Introduction to Digital System Design (ECE 270)Supervisor: Prof. David G Meyer
    Description: Taught students about combinational and sequential logic, how to use Programmable Logic Devices (PLDs), and how to implement various digital circuit designs usin ABEL, a hardware description language.

  • Aug. 2013 June 2021

    Software Engineer — Google — Sunnyvale, CA

    Supervisor: Arun Thomas
    Description: Worked on the OpenTitan project to design and develop the first-ever open-source silicon root-of-trust chip.