• Present June 2021

    Staff Software Engineer — Google, LLC — Sunnyvale, CA

    Team: OpenTitanSupervisors: Miguel Osorio
    Description: OpenTitan Root-of-Trust core contributor where I developed ROM and mutable firmware stacks, DICE attestation architecture, provisioning infrastructure, pre- and post-silicon DV tests, and silicon bring-up tooling. Was part of core team that delivered the first two tapeouts of OpenTitan silicon.

    • Most active (# of commits) software IC on the OpenTitan project.
    • Led the silicon bring-up and provisioning workstreams for the first two OpenTitan silicon tapeouts.
    • Driving several OpenTitan product integrations across data center, client, and mobile device product lines.
    • Ported FreeRTOS to OpenTitan chip. Starting design of TockOS based software stack.
    • Led the development of 30+ device drivers for OpenTitan.
    • Stood up Xilinx-based FPGA boards to emulate OpenTitan hardware for software development purposes.
    • Migrated majority of the OpenTitan code base build system from Meson to Bazel.
    • Maintain cloud-based RTL simulation infrastructure for 50k+ OpenTitan nightly simulation jobs.
    • Recruited / Led researcher to develop a novel firmware fuzzing technique for the 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.

  • 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.