Isaac Schwarz

Computer Science Student

Senior at Northern Arizona University.

Currently working on: NVMe testing with Rust and TLA+... and a reverse proxy in Go.

Currently reading:

Billy Summers Stephen King
Go TypeScript Canvas

NYT RPG

A web-based RPG built around New York Times games. Backend powered by Go with gorilla/websocket; frontend built on Canvas and TypeScript.

  • Concurrent WebSockets for live gameplay features.
  • REST API for asynchronous features.
Go

HttpGo

HTTP/1.1 functionality written from scratch in Go. Multithreaded handling of concurrent requests.

  • Working on chunked transfer encoding.
  • Adding reverse proxy functionality.
Rust TLA+

ConTiNGENT

An NVMe testing tool driven by formal specifications. Correct device behavior is described in TLA+, and a Rust execution engine issues commands against an NVMe device.

  • TLA+ specifications create an abstract representation of the NVMe drive and define behavior to test.
  • TLA+ instrumentation uses community module "escape hatches" to interact with the Rust execution engine and incorporate real drive state into the abstract state-space.
  • The Rust execution engine translates messages from TLA+ into nvme-cli commands, executes them, and returns parsed results.
  • If an invalid state is reached, the TLA+ process throws an error and returns a detailed trace showing how it was reached.
Rust

Vi

Vi editor clone written in Rust.