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.
You can reach me at adamschwalm@gmail.com
Systems Engineer • Sept 2022 - Present
Currently work on Linux-based operating systems development at Amazon across a variety of hardware and customer use cases.
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.
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.
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.
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.
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++.
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
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.
I try to maintain a diverse skillset including but not limited to the areas below:
Foresight is a python library for predicting the output of random number generators across a variety of platforms and languages including glibc, MSVC, PHP, and Java.
Security, PythonA wrapper for QEMU allowing the creation of virtual machines with shared folder, ssh, and disk creation support.
VirtualizationPuppyJusticeAutomated is a tool that programmatically generates videos from US Supreme Court transcripts, making listening to the audio from court cases more entertaining. Generated videos are available here.
Entertainment