I’m a graduate of the University of Maryland with experience in vulnerability research, reverse engineering, software development, digital signal processing, and more. I prefer research-oriented work that utilizes, analyzes, or contributes to emerging technologies.

Work Experience

Procedural Audio

Founder and lead developer of Procedural Audio, which creates novel audio generation and processing tools for musicians, sound designers, and audio developers.


Internship Experience

Margin Research

Performed vulnerability analysis on various IOT devices as part of a “winternship” program, including several surveillance cameras and webcams. I discovered and documented various potential weaknesses in the camera firmware.

Mantech Cooperation

Performed vulnerability analysis on network devices, including reverse engineering binaries, reporting on firmware behavior, and documenting weaknesses.

Correct Computation

Worked on binary analysis tools built on top of the BAP (binary analysis platform) framework as part of a startup consisting of students and professors from UMD. Contributed to the struct rewriting functionality of the Checked-C compiler, an extension of clang which includes C/C++ types that ensure memory safety.

Joint Quantum Institute

Programmed ARTIQ (Advanced Real-Time Infrastructure for Quantum Physics) systems to interface with quantum computing experiments. Implemented a laser intensity stabilization system to laser-cool ions. Developed a custom laser safety interface in python called LAGONA.

UMD AUSS Lab

Developed a custom platform to teach students about developing secure drone firmware. Completed trainings in soldering, programming, and cloud-based machine learning.

MPLEX VR

Created virtual environments using tools like Unreal Engine 4, Blender, Maya, Substance Painter, and GIMP. Designed particle effects and destruction simulations in Houdini and UE4.

Precision Alliance

Contributed to a web application to facilitate the configuration and sale of linear bearings, XY stages, and more. Developed scripts to automatically generate these web pages.


Skills

  • Programming (Fluent): Rust, C++, C, Dart, Python, Java
  • Programming (Proficient): x86 and ARM assembly, OCaml, Ruby, Racket, Javascript
  • Static Analysis: Radare2/Rizin, Ghidra, BinaryNinja, IDA Pro, Capstone
  • Debugging: x64dbg, WinDbg, GDB
  • Penetration Testing: Metasploit, Nmap, Wireshark, Burp Suite, etc
  • Symbolic Execution: Angr, BAP
  • Fuzzing: AFL
  • Forensics: Volatility, Binwalk
  • VFX: Unreal Engine 5, Blender 3D, GIMP, Substance Painter
  • Version Control: Git, Subversion

Presentations

Audio Developer Conference 2022

Abstract: Piracy remains a ubiquitous and persistent problem for audio developers attempting to commercialize their products. This is in part because most custom license checking schemes contain fairly basic mistakes that make it easy for crackers to bypass them. This presentation unveils tricks and techniques commonly used by crackers and explains how they can be made more resistant to common attacks.

Radare2 Conference 2020

Abstract: This talk is an overview the new “Modality” radare2 plugin to perform symbolic execution. The tool is built on top of angr, and provides a faster alternative to using angr than writing scripts. This integration has numerous advantages, including easy switching between concrete and symbolic execution, useful visualizations of the angr backend, as well as a suite of features for vulnerability detection and exploit generation.


Education

Degrees

Bachelor’s of Science in Computer Science

  • University of Maryland, College Park
  • Fall 2017 - Winter 2022
  • Minor in ACES (Advanced Cybersecurity Experience for Students)
  • Additional coursework in physics

Masters of Professional Studies in Machine Learning

  • University of Maryland, College Park
  • Fall 2023 - Present

Certifications

OSCP (Offensive Security Certified Professional)

  • Completed 3 months of penetration testing training in a lab with 50+ targets
  • Mastered tools like nmap, metasploit, wireshark, burp suite, john the ripper, etc
  • Completed a 24 hour practical exam that required the exploitation of 3 targets

Selected Coursework

UMD ACES Program

  • HACS408E (Reverse Engineering): An introduction to software reverse engineering tools and methodologies. Fundamental topics covered: compilers, linkers, loaders, assembly language, as well as static and dynamic analysis tools. This includes computer architecture and low-level systems programming, as well as an introduction to x86_64 assembly language.

  • HACS408T (Penetration Testing): A hands-on, technically rigorous experience that prepares students for real-world work in penetration testing and offensive security. This course will allow students to gain proficiency and become comfortable using the tools, techniques, and methodologies that represent the state of the art in penetration testing today.

  • HACS408L (Digital Forensics): Explores the various fields of digital forensics, such as memory, hard drive, and network traffic analysis. This course covered the legalities involved with forensic investigations and the wide variety of digital forensics tools, including both open source and proprietary.

UMD CMNS Department

  • CMSC412 (Operating Systems): An in-depth understanding of how an operating system virtualizes computer hardware and provides programmers with a machine and device independent interface. Topics covered includes: pipes, fork, signals, semaphores, CPU scheduling, memory paging, file system, etc.

  • CMSC414 (Computer and Network Security) - An introduction to the topic of security in the context of computer systems and networks. Identify, analyze, and solve network-related security problems in computer systems. Fundamentals of number theory, authentication, and encryption technologies, as well as the related practical problems that have to be solved.

  • CMSC417 (Computer Networks): The goal of this course was to introduce students to the core concepts of wired and wireless networking. The primary focus will be on the layered architecture and the protocol stacks. It teaches students several concepts, including the Internet architecture, HTTP, DNS, P2P, Sockets, TCP/IP, BGP, Routing protocols, wireless and sensor networking, and Wi-Fi.

  • CMSC430 (Compilers): Its major goal was to arm students with the ability to design, implement, and extend a programming language. Throughout the course, students designed and implemented several related languages.


Conferences

  • ADC: Audio developer conference, Fall 2022
  • r2con: Radare2 Conference, Fall 2020
  • NACTI: North American Conference on Trapped Ions, Spring 2019
  • MAVRIC: Mixed/Augmented/Virtual Reality Innovation Center Conference, Spring 2019
  • AIAA: American Institute of Aeronautics and Astronautics, Winter 2019

Teaching

CMSC388Z: Programming in Rust (2021)

A semester-long course at the University of Maryland on the Rust programming language. The course followed the rust book, and I was the primary lecturer for one of the sections, in addition to designing and grading the course assignments with another facilitator. The course syllabus can be found on the course website.

MCWIC: Algorithmic Music Generation (2020)

An introductory lecture to the Maryland Center for Women in Computing (MCWIC) on how techniques like markov models and recurrent neural networks can facilitate music generation.

SEDS: Programming for Satellites (2020)

Led the design and implementation of a “boot-camp” for people joining the software team of SEDS at the University of Maryland, to introduce them to the skills needed to develop software for satellites.


Other

UMD Philosophy Club - President

I was president of the UMD philosophy club for 2 years. We had weekly meetings covering topics in philosophy and bi-weekly socials. This experience significantly improved my ability to think methodically, reason clearly, form cogent arguments, lead group discussions, and foster substantive conversations.