Gavin A Hayes
gavin@computoid.com | computoid.com | github.com/G4Vi | metacpan.org/author/GAHAYES
Skills
Programming Languages: C, C++, Perl, Python, JavaScript, HTML/CSS, C#, PHP, SQL, Bash, Expect
Target Platforms: Various x86-64 Linux, Windows, etc., Qt on armhf BeagleBone running Debian GNU/Linux 8-10, Win32/MFC on x86 Windows XP Embedded through Windows 10 IoT Enterprise, V8 and SpiderMonkey browser engines, AWS, Cypress PSoC, Sony PlayStation
Tooling: Git (merge
, rebase
), VSCode (launch configs), Make, CMake, tmux, gdb, x64dbg, Ghidra, Docker, WSL, VirtualBox, VMWare, GitHub Actions (CI)
Technical Writing and Communication: tutorials, reference material, changelogs, blog post, bug reports, sync and async communication and collaboration with developers, end users, and other stakeholders
Experience
Dylibso - Senior Software Engineer
Full-time May 2023 - PRESENT
TestVonics - a Raptor Scientific Company - Lead Software Engineer
Full-time May 2017 - May 2023, interned summers 2014-2016 and winter 2016
- Built a touchscreen handheld serial remote for an Air Data Test Set using C, C++, Qt, and Debian linux on a BeagleBone. WiFi version using UDP communication currently under development
- Upgrades and Maintenance to a Win32 MFC based Air Data Test Set and Calibrator, including migration from VC++6 and Windows XP to VS2017 and Windows 10 IoT Enterprise, addition of Quick Leak Test, STEP function, and addition of several safety features and QoL improvements.
- Built a pressure monitoring device using a Toradex WinCE board and readings over CAN bus
O2X Human Performance - Web Developer
Remote Contractor May - September 2018
- Brought an AWS Elastic beanstalk Node.js application back online after a dead link disabled the service.
- Added new questions to the assessment app via changes in Typeform, Zapier, and the Node.js server.
Open Source Software Development
- Media HTTP File Server (2018 - PRESENT) - Built an event based HTTP media server and web app for streaming media via the browser or other applications using Perl, C, JS, and WASM. github.com/G4Vi/MHFS
- Actually Portable Perl (2022 - PRESENT) - Ported Perl to the Cosmopolitan Libc, created single-file self-contained builds of Perl that run on six operating systems with the same binary, created a toolkit for creating binary releases of Perl applications. computoid.com/posts/Perl-is-Actually-Portable.html computoid.com/APPerl/
- Cosmopolitan Libc (2022 - PRESENT) - Contributed various bug fixes and improvements to the Cosmopolitan Libc. github.com/jart/cosmopolitan/pulls?q=is:pr+author:G4Vi
- psx_screen_dumper / screen_data_reader (2021, PRESENT) - Built a pair of applications to exfiltrate the BIOS or save game data from a PlayStation via video by using OpenCV via python github.com/G4Vi/psx_screen_dumper github.com/G4Vi/screen_data_reader/
- mkpsxiso (2021-2022) - Improve CDDA pregap handling for bit-perfect unpacking and repacking of CD images. Add extracting CDDA as FLAC (instead of raw PCM) with repacking support to save disk space.
- tonyhax (2021) - Found a buffer overflow and developed MIPS shellcode to exploit a save game feature in a PlayStation game. github.com/socram8888/tonyhax/pull/62
- GIF Encoding (2021) - Added transparency support to a GIF encoder and ported the GIF encoder to Perl. github.com/lecram/gifenc/pulls?q=is%3Apr+author%3AG4Vi, github.com/G4Vi/gifenc, metacpan.org/pod/Image::GIF::Encoder::PP
- dr_flac (2020-2022) - Fixed infinite loop bug and removed unaligned 32-bit loads from metadata parsing in popular FLAC decoding library. github.com/mackron/dr_libs/pulls?q=is:pr+author:G4Vi
Formal Education
Worcester Polytechnic Institute, Worcester, MA - BS in Computer Science
August 2013 - May 2017
Collaborated to make a new version of Bomblab in Python and C, a computer based x86 ASM reverse engineering assignment for senior year MQP project.