I am a generalist software engineer with a keen eye for detail. I hold particular expertise in web development, language design, and standards work.
I am an exceptionally fast learner, and pride myself on my ability to quickly take up any skill from first principles.
In working from first principles, I approach technical work with a healthy theoretical rigor, tempered by pragmatism.
I am a collaborator by default. I put real care and effort into communicating with compassion, trust, precision, and concision.
Whether it's web development or API design, I think like an interior designer: ergonomics, accessibility, and polish are always top-of-mind.
I have experience-forged skill in driving consensus among folks with competing needs and priorities.
It is impossible for technology to be neutral or apolitical; the conditions of society and the workplace are written into the systems we build.
It is my responsibility to ensure that the systems I build cannot be weaponized to do harm.
TypeScript • Modern React
Rust • Shell Scripting • C
Standard ML • Lisp • Scheme
Ski Mountaineering • GeoGuessr
Guitar • Magic: The Gathering
Java • C++ • Haskell
Remix • Playwright
Running • Speedcubing
As a Pattern Matching Champion, I am designing the proposal's syntax and semantics, drafting spec text, and presenting on our work. This work is highly collaborative, involving a team of co-Champions and stakeholders representing the browsers.
As a founder & facilitator of the Inclusion Group, I am working towards a more inclusive committee in collaboration with group members. Active projects include sourcing communication and antiracism trainings, and revising our invited expert policy.
I sit on the Code of Conduct committee , where I work to safeguard TC39.
I migrated the ~million-instance fleet of production apps using our NodeQuark platform to support IPv6 in collaboration with my teammate.
I worked on outwardly-transparent reimplementations of two legacy core services underpinning NodeQuark — migrating them from Spring to our own NodeQuark platform — in collaboration with my teammates.
I staffed a lively on-call rotation and fielded a variety production incidents including DDoS, targeted exploit attempts, invisible memory leaks, and failovers of entire regions.
On the Desktop Foundations team, I maintained Slack's core Electron / RxJS desktop app.
I overhauled our handling of user preferences to support the GovSlack initiative, and built a new mechanism to externally configure those preferences. I found and resolved several invisible security and robustness issues in the process.
On Team Panels, I built and maintained a React / Flow / Redux app and a Java proxy that replaced the legacy merchant control panel page-by-page.
I led the first PayPal / Braintree i18n collaboration, working with their translators to create our localized bundles. I implemented a versioned continuous delivery process for those bundles — and for our two core apps in the process — and designed and built a frontend library for localizing our web app.
I built a type-safe data model for chargeback disputes, and in the process uncovered deeper inconsistencies in adjacent models.
On my way to a BSc in Computer Science, I completed a thesis advised by Adam Shaw. I created a type-sound, purely functional language capable of imperative-esque iteration. This work was written up and presented to an audience of students and professors. In the process, I discovered and rectified an incompleteness in a foundational type inference algorithm for type classes.
I staffed five offerings of three classes as a teaching assistant for Borja Sotomayor, including the first two offerings of Introduction to Software Engineering, where I acted as a tech lead to student teams developing major pieces of software in C, including a Redis trie library & app suite and an interactive fiction game engine.