Projects
- Strata Source: One of four engine maintainers and the Linux port maintainer.
I help manage our team of ~20 programmers, do code review, general development/bug fixing and some CI/CD work.
Strata Source is the game engine behind both Momentum Mod and Portal 2: Community Edition.
- Portal 2: Community Edition: Project co-lead and game engine programmer.
I help manage and lead a team of ~24 artists, level designers and programmers.
My responsibilities include: help run weekly meetings, manage issue trackers, manage deployments,
design and implement new features, maintain the Linux port and much more.
- Momentum Mod: Engine programmer with an emphasis on Linux.
Most of the work I do for Momentum Mod is through contributions to Strata Source.
Other Projects
- EPICS EK9000: EPICS (Experimental Physics and Industrial Control System) device support module
for the Beckhoff EK9000 EtherCAT modbus coupler.
- vtex2: Valve Texture File (VTF) conversion tool with a GUI.
- dfr0554-pico I2C driver for DFR0554 LCDs for the Raspberry Pi Pico.
- soundedit: Node editor for Source Engine sound scripts, written in Python with Pyside2.
- perflib: Quick and dirty C++ wrapper for Linux performance counters.
- vpktool: Simple tool for extracting Valve Pak Files (VPK).
Presentations
- EPICS Collaboration Meeting 2021: Low-cost EtherCAT I/O with the EK9000
Presented my work on the EK9000 device support module.
Discussed the benefits of the hardware, features and the status of the module.
- LCLS 2019 Summer Intern Poster Session: Simple I/O using not-so-simple protocols
Presented initial my work on the EK9000 device support module.
- CSE-185 Winter 2023 Poster Session: High-level Overview of Accelerator Controls
Presented a high-level overview of the EPICS SCADA system and how it's used and deployed in an accelerator facility like SLAC.
Coursework
- CSE-130: Principles of Computer Systems Design
Designed and implemented multithreaded webserver, web cache and load balancer in C for UNIX platforms.
- CSE-121: Embedded Systems Design
Designed embedded systems using Infineon PSoC-6 (dual-core ARM Cortex-M4).
Class covered I2C, DMA, multicore programming, interrupts and more
- ECE-103: Signals and Systems
Analysis of continuous time signals and linear systems using convolution, fourier series, laplace transforms, transfer functions, etc.
The lab portion of the class involved doing signal analysis in MATLAB and Python (with numpy)
- CSE-100: Logic Design
Used Verilog to implement a number of assignments, including adders, dividers, 7-segment display drivers, etc.
- CSE-120: Computer Architecture
Covered various computer architecture topics such as pipelining, cache design, virtual memory, super-scalar execution and more.
Focused on RISC-V ISA
- CSE-13E: Embedded Systems and C Programming
Implemented various labs in C for the PIC32 series of microcontrollers