ProcessCache
ProcessCache is a system for automatically memoizing the work of multi-process Linux programs. It transparently caches results and determines when cached outputs can be reused versus recomputed, generalizing ideas from build systems to arbitrary programs such as shell scripts and data workflows.
It supports unmodified Linux binaries by tracing system calls via `ptrace` to infer program inputs. To mitigate ptrace’s performance constraints, I designed and implemented a custom asynchronous runtime in Rust to efficiently coordinate tracing across processes.
In practice, ProcessCache enables incremental computation for existing programs, accelerating workloads by up to 65×.
I served as technical lead, driving the system design, implementation, and overall project direction. The open-source code for the project can be found here.