commit - e96942cc9ca9b424b5b8f9681174fb2eb394e650
commit + 313fb393356a6f02b1442ec9ecfbadc679915930
blob - b0908067deca8ae33b99fc1f92d19566792331a3
blob + c661342a22ba6c798036b443763448f4b46de7ca
--- resume.ms
+++ resume.ms
.TS
tab(;) nospaces; rW15|lx.
\m[default]Languages\m[line_color];T{
-C, C++, C#, Shell/Bash, JavaScript, Python, HTML, SQL
+C (C89-C17), C++, POSIX Shell/ksh, Bash, C# (.NET, IL), Python, SQL
T}
\m[default]Tools\m[line_color];T{
-CMake, GCC (Clang), GDB (LLDB), Git, Version Control, Linux, Apache, nginx, Docker
+CMake, GCC (Clang), GDB (LLDB), Git, Version Control, Linux (Gentoo, musl), Apache, nginx, Docker
T}
\m[default]Skills\m[line_color];T{
Manual memory management, Cross-platform development, Unit testing, Debugging, Documentation, Rapid problem-solving, Productive communications
T}
\m[default]Favorite Books\m[line_color];T{
\(bu\h'1'
-.I "Structure and Interpretation of Computer Programs"
-by Harold Abelson and Gerald Jay Sussman with Julie Sussman
+.I "Structure and Interpretation of Computer Programs,"
+Harold Abelson and Gerald Jay Sussman with Julie Sussman
.br
\(bu\h'1'
.I "Principles of Compiler Design"
-(the old green dragon one) by Alfred V. Aho and Jeffrey D. Ullman
+(the old green dragon one), Alfred V. Aho and Jeffrey D. Ullman
.br
\(bu\h'1' Let's talk fiction after an interview!
T}
.heading "Selected Portfolio"
.TS
tab(;) nospaces; rW15|lx.
+\m[default]August 2025 - Present\m[line_color];T{
+. B "ftmalloc"
+\(en C, POSIX (mmap, mprotect, mlock), signal handling (SIGSEGV, SIGBUS), Reed-Solomon coding
+.sp .5
+Undertook a research project exploring the applicability of RAID-like parity schemes to mitigate common memory vulnerabilities in the context of a hardened memory allocator.
+This involved subdividing a large memory region into many segrageted parity regions, and subdividing those parity regions into 128 KiB blocks such that if any block became corrupted, the corruption could be isolated and recovered from using the parity data from the other blocks in its parity region.
+The allocator also includes custom constant-time comparison algorithms to prevent side-channel timing attacks; an HMAC-SHA256 checksum per block and a CRC32 checksum per allocation to ensure data integrity; aggressive use of mprotect to lock memory from reads and writes unless specifically requested; a custom signal handler to catch SIGSEGV and SIGBUS and trigger recovery without crashing (in development); and a strict tokenized transactional access system, abstracting raw pointers from the consumer code and allowing for easy periodic relocation of allocations.
+This project will culminate in a whitepaper upon completion of the core functionality.
+.sp .5
+\(en https://github.com/ftmalloc
+.sp .5
+T}
\m[default]Sept 2024 - Present\m[line_color];T{
. B "Amphora Game Engine"
\(en C, SDL, SQLite
-. br
+.sp .5
Built a 2D sprite-based game engine with a custom memory allocator (backed by mmap/VirtualAlloc) and associated profiling and debugging tools.
The engine supports arbitrary numbers of drawable sprites; multiple types of tilemaps; self-contained game scenes each with their own init, destroy, and update functions; a sound mixer; and a performant particle system. This developed my organizational skills in the context of a larger, cross-platform project of more significant complexity, and gaining confidence debugging using GDB and LLDB to diagnose and fix subtle memory bugs that would appear at runtime, and only under certain specific conditions.
.sp .5
\m[default]Aug 2024 - Sept 2024\m[line_color];T{
. B "CCC (6502 Emulator)"
\(en C, SDL, 6502 ASM, pthreads
-. br
+.sp .5
Designed a fantasy game console built on a custom virtual 6502 CPU implemented in C, supporting separate CPU and GPU threads, 32k RAM, multiple screen resolutions, and six input buttons. This system runs real 6502 machine code produced by the cc65 toolchain.
.sp .5
\(en https://github.com/calebstein1/ccc
\m[default]Jan 2024 - June 2024\m[line_color];T{
. B "Stardew Valley Mods"
\(en C#, .NET IL
-. br
+.sp .5
Developed several non-trivial mods for the video game, Stardew Valley, integrating advanced concepts such as transpilers, engaging with community feedback, and receiving 850+ downloads.
.sp .5
\(en https://github.com/calebstein1/CountingSheep
\m[default]Sept 2023 - July 2024\m[line_color];T{
. B "Shell Script Web App Framework"
\(en Shell, Apache, Docker
-. br
+.sp .5
Designed an entire web app framework out of shell scripts including dynamic page generation; a custom module system; integration with front-end npm packages; a custom database for persistent data; secure user authorization and authentication using hashed and salted passwords and auth cookies; protection against CSRF attacks on forms; and a custom CLI tool supporting single-line Docker container builds and deployment to remote servers as a SystemD service. I was able to build and deploy my personal website, https://calebstein.net/, using this framework.
.sp .5
\(en https://github.com/calebstein1/sh-on-the-shttr
blob - 80729aa61559261d5fb8abe079a9b23ca30ede3f
blob + 8bfcde88c6dae2519ec48377c58fd83d80282d67
Binary files resume.pdf and resume.pdf differ