UX Designer, API Logger, Developer, Photographer, Backpacker, Climber, Software Engineer, Outdoors Lover
I'm a full-stack software engineer based in Denver. I have experience building performant, reliable, and user-focused web applications from the ground up. My background spans both startup and enterprise environments, with a focus on crafting clean, maintainable code and developing products that make complex systems intuitive to use.
At Resurface Labs, I led the design and development of the user experience and user interface, working across backend infrastructure and frontend services to ship production-ready features. At Graylog, I collaborated with the core team across time zones to implement new features, build interfaces, and optimize API calls, improving performance and usability for thousands of users.
At NVOK I helped develop bespoke, performant web applications using payload CMS, Next.js, and a variety of financial, mapping, and authentication integrations.





how I like to spend my free time
An open-source API Logger that can hook directly into an API's source code or act as middleware in many architectures. It collects the API's request and response data, packages it, and sends it to the configured destination. The logger is built in Go and uses Goroutines and NDJSON to batch API data and send it to the destination, minimizing performance overhead.
I was part of the team that started the initial development of the logger in 2020. Later, I was assigned to lead the maintenance of existing features and the development of new major features such as the asynchronous Goroutine submission, as well as the NDJSON batching and general performance improvements.
Skills
API
Go
NDJSON
Goroutine
open-source
An open-source API load-tester built in Go that uses gRPC and concurrent Goroutines to effectively simulate different levels of traffic to a given API endpoint. It was originally developed to help test and validate the open-source loggers from Resurface Labs, including the Go logger included in another project.
I led the initial development of the load tester in 2023, implementing the load tester's base functionality including sending high concurrency web traffic to a given endpoint through a distributed, asynchronous 'coordinator' and 'worker' architecture, with node communication via gRPC.
Skills
Go
open-source
gRPC
concurrency
goroutines
Graylog API is a performant and data-rich web application designed to intuitively display API request and response data across millions of entries, while surfacing threats and vulnerabilities via predefined and custom signatures.
As lead developer for UX/UI, I rebuilt and maintained the frontend using React.js with TypeScript, and optimized query logic and latency through the Java backend and custom Trino query layer.
Skills
startup
frontend
backend
API
Charts
React.js
UX
UI
web application
Java




An open-source TCP-based network chat built in Rust that I started for educational purposes. I started this project with the intention to evolve it into a Matrix compatible client.
I am the sole contributor at the moment, developing the strictly versioned chat protocol with explicit IDs and timestamps. The software uses an "event envelope" architecture along with asynchronous I/O tasks to pass messages and system events across the network.
Skills
Rust
Matrix
TCP
chat protocol
asynchronous I/O