DSLabs is a framework for creating, testing, model checking, visualizing, and debugging distributed systems lab assignments. The framework and labs are written in Java and built around a message-passing I/O automata programming model. It has been used in UW’s undergraduate and professional master’s distributed systems classes, CSE 452 and CSEP 552. The framework and handout code are open source and usable by anyone looking to teach a distributed systems course or learn on their own.
NOPaxos and Eris
NOPaxos and Eris are network-integrated protocols for state-machine replication and distributed transaction processing. Our implementations for both are open source. The source code for the NOPaxos TLA+ specification is also available.
Running distributed systems experiments across multiple machines can be a pain. After one too many terrible bash script, I wrote this Python module to simplify the the process.
TeX All the Things
While an undergrad, I wrote a Chrome extension to insert MathJax into arbitrary webpages, so that my friends and I could discuss math classes in \(\rm\LaTeX\) on messaging apps.