Interests and public repos
- π Distributed systems, networking and zero-trust infra
- Maglev (src) Founded startup product; web-first p2p networking, zero-trust relays
- Axum-Connect Rust server-side impl for Connect-Web
- π¦
Rust
, since 2018- Logic-Paint See below; my favorite personal project!
- Axum-Connect Lots of meta-programming
- π Modern web tech (
WASM
,WebRTC
,WebGL
,WebGPU
,SharedArrayBuffer-multithreading
)- Logic-Paint Compiled to
WASM
,WebGL
(soon to beWebGPU
), multi-threading viaSharedArrayBuffer
andWebWorkers
- Maglev (src) Based on
WebRTC
(with aWebsocket
fallback),WebCrypto
- Simple Web Workers
ES Proxy
andWebWorker
based mutlithreaded actor framework
- Logic-Paint Compiled to
- πΉοΈ Hardware accelerated rendering / game engines (
OpenGL
/ES
,Vulkan
,WebGPU
).- Logic-Paint Rendered in constant-time via pixel shader
- Voxmod For-fun game engine mostly in
C#
, with the start of a transition to Rust - Filament-rs Idiomatic Rust bindings for Google Filament
- Legion Transform ECS based space-transformation hierarchies
- Originally authored by me, adopted by Amethyst, inspired early Bevy Transform
- VoxelCraft One of my first ever projects, game engine written in
C++
, embeddedC#
scripting runtime viamono
- πΎ Embedded systems
- Some work at Google in this space, and a ton of personal projects
- Used:
Arduino
,arm
ESP8266/32
RP2040
, Embassy, Saleae L/Ai2c
,spi
,can
,uart
, and so on
- π£οΈ Languages (most recently used first)
- Rust, TypeScript, NuShell, SQL, Ruby, C#, Python, Go, GLSL, C/C++, Java, ObjectiveC
Career and Education
- WoodRiver Energy LLC Director of Technology (2022 - Present)
- Direct the company-wide tech strategy and set priorities
- Manage our growing tech team and mentor junior developers
- Large back-office application efforts (React, Typescript, Rust, Hasura, PSQL, Nu, Ruby)
- Public facing presence (Webflow, Vue, Typescript, Hasura)
- Significant infra efforts (Proxmox, Dokku, Cloudflare, Tailscale, et. al)
- Tungsten Labs Co-founder (2021-2022)
- Worked on Maglev, a peer-to-peer networking and RPC library focused on web-first (Typescript, Go)
- Completed a working alpha but opportunities in life pulled both my partner and I away from it
- Sublink FTE (2019-2020)
- Worked on Heroish in Unity DOTs (C#)
- Also the 'miscellaneous' implementer, of things outside game code (Typescript)
- Google FTE (2017-2019, 2015, 2014)
- ChromeOS (FTE)
- Embedded device firmware, running on the EC (C, RTOS)
- Infrastructure transition for ChromeOS build/test fleet (Python, Go)
- College internships (2)
- Hardware accelerated rendering of Google Maps desktop (Closure JS, GLSL)
- Monitoring for (what became) Dataflow (C++)
- ChromeOS (FTE)
- Blank Slate Systems FTE (2013)
- iOS systems design, hardware accelerated rendering (ObjectiveC, C#, Xamarin)
- University of Colorado Boulder Student (2012-2016)
- Bachelors Degree in Computer Science
- Intel Intern (2006-2011)
- College internships (3), high school internships (2)
- Created and populated MOLAP cubes (data analytics)
Non-technical Interest / Also Me
- π Live in San Diego
- π My wonderful wife, who is my rock
- πΆ Our beautiful baby boy, that lights up my world
- π©οΈ Flying! Currently building an RV-14 in my garage.
- π§ Rock climbing
- π Emojis (though I don't normally go this overboard)
Nerd alert, NERD ALERT!!
- π OS: NixOS, i3 WM
- π Editor: NeoVim,
- π³ VCS: Jujitsu (backed by
git
), LazyGit - π οΈ Shell: NuShell
- β¨οΈ Keyboard: Chocofi 36-key split
My favorite personal project!
https://github.com/AThilenius/logic-paint-rs
- Based on a game by Zachtronics called KOHCTPYKTOP, which sadly isn't playable any more because it's a flash game
- Written in Rust (because of course it is)
- Compiled to WASM
- Uses WebGL2 for fixed-cost (by pixels) hardware accelerated rendering
- Each 'cell' is a single 16 bit unsigned texel and rendered entirely in a fragment shader.
- Lets you edit and simulate transistors (something between BJT and CMOS, for you hardware people)
Once I finished with the editor I then built a functional 16 bit CPU in it, modeled after the CL-3B ISA. It's micro-coded with a common 16-bit bus, 8 registers with dual output and a 16K of RAM (not drawn here).
I love this project dearly, because it requires knowledge of how a computer works all the way from the transistor up to WASM running in Chromium. Next up is a toy language with a homemade compiler for it π Have to rewrite my parser-generator first though!