About Me

I spend a lot of time developing software. My programming interests range from genetic programming to lock-free data structures, and I work in a variety of languages including C++, python, and elisp. When I'm not writing code I'm usually playing the piano or reading.

Contact Details

You can reach me at  adamschwalm@gmail.com

Work

Amazon Lab126

Systems Engineer Sept 2022 - Present

Currently work on Linux-based operating systems development at Amazon across a variety of hardware and customer use cases.

OpenDrives

Sr Platform Engineer Oct 2021 - Sept 2022

Developed and maintained Rust userspace tooling integrated into Debian-based operating system. Worked extensively with ZFS and Lustre filesystems ad well as leading development of reproducible build environment for OS images and virtualized testing.

Star Lab

Software Engineer Dec 2017 - Oct 2021

Lead developer for a virtualization project writing Rust and working with the Xen hypervisor, as well as doing some Linux kernel development.

Dynetics

Reverse Engineer/Developer May 2015 - Dec 2017

I worked as a security researcher for Dynetics. In that capacity, I performed a variety of tasks including reverse engineering (typically on real-time, embedded systems) and tool development.

ViaSat

Software Developer/Intern May 2014 - March 2015

While at ViaSat, I designed and implimented high performance QNX applications. I also participated in the specification of programming API to interact with these applications, and later worked with a team to construct an HTML5 web front-end using this API.

Education

Mississippi State University

Batchelor's degree in Software Engineering May 2015

My studies in software engineering ranged from high-performance computing to database design. My undergraduate work focused on the design of a lock-free memory allocator in C++.

Publications & Conferences

Exporting IDA Pro Debug Information

ReCon Montreal 2017 Available Here

When reverse engineering embedded platforms, it is often difficult or impossible to connect the IDA Pro debugger to a target application. Manually importing debug info is possible but tedious. This talk describes a new plugin to export debug information from IDA that can then be imported in to software debuggers allowing the user to step through decompiled code, read local variable values, etc directly on the device

Stacking the Virtual Deck

Derbycon 2015 Available Here

I developed a tool that predicts the output of the random number generators used in many languages. This talk was a description of attacks on various projects that could be launched by predicting these outputs.

Skills

I try to maintain a diverse skillset including but not limited to the areas below:

Programming Languages
Rust, C, C++, Python, Javascript, D, and Java
Development Environments
Emacs, Eclipse, Visual Studios
Platforms
GNU Linux (Debian/RHEL), Windows
Security Tools
IDA Pro, radare2, Burp