Welcome! I'm
_______ _ _ __ __ _ _
|__ __| (_) | | | \/ (_) | |
| |_ __ _ ___| |_ __ _ _ __ | \ / |_ ___| | _____
| | '__| / __| __/ _` | '_ \ | |\/| | / __| |/ / _ \
| | | | \__ \ || (_| | | | | | | | | \__ \ < (_) |
|_|_| |_|___/\__\__,_|_| |_| |_| |_|_|___/_|\_\___/
I build software that automates the mechanical parts of information processing so scarce human attention can go where it's most needed. Learn more about Functionary, Lysilogy, Switchboard, and my other projects below. I moonlight as an interdisciplinary researcher on the possibilities, limits, and dangers of optimization at Quasioptimal.
I'm looking for work in the San Francisco Bay Area. Reach out at the links below!
Trajectory
2020
2022
2024
2026
COURSEWORK
RESEARCH
DATA
SOFTWARE
RESEARCH
DATA
SOFTWARE
Honors Thesis
Quasioptimal — Independent Research · 2023–Present
2023 – Present
Interdisciplinary writing on the possibilities, limits, and dangers of
optimization. I began gathering source material in 2023. Work ongoing at
https://quasioptimal.io.
Current Work
AI Engineering Systems around models rather than models themselves: agents run behind review gates with a provenance record, every running session stays in view, and a model's claim is shown only where its source backs it.
Software Tools Tools for my own daily use: a plain-text task list driven from Neovim and a phone, Obsidian plugins that put a vim-style keyboard on a calendar and a map, an e-ink dashboard, and a cold-storage daemon for the home server.
Down the Tech Stack
Down the Tech Stack
To do the research backing the SSPI at IRLE, I had
to become adept at working with data, both at the analytical
level (competence in econometrics, statistics, and data
science) and, as the data got bigger and harder to handle, at
the infrastructure level. The process our team inherited was crude,
manual, error-prone, and costly to reproduce. The primary obstacle to
better research was scaling our data (covering more years and
more countries, with better robustness checks and more
statistical power), and the obstacle to scaling the data was
engineering a reliable, reproducible collection process, so I
taught myself to be an engineer.
tap any bar for its card
2018
2020
2022
2024
2026
now
Excel / Google Sheets
Excel / Google Sheets
2018 – now
Modeling, case exhibits, and everyday analysis.
2018 – 2024 · dailyEconomic modeling, data preparation, case exhibits, and everyday analysis in school, during the early days of SSPI, and at BRG.
2024 – now · occasionalStill useful for a quick table or a shared sheet.
Excel / Google Sheets
R
R
2020 – 2025
Statistics, economics, and causal inference — regressions, panel data, ggplot.
2020 – mid-2023 · dailyThe analysis language through the SSPI research years — regressions, panel data, ggplot.
mid-2023 – 2025 · occasionalOccasionally reached for R for a plot or a quick model until the SSPI work wrapped up in 2025.
R
Stata
Stata
2023 – 2024
Primary tool for data preparation, analysis, and econometrics work at BRG.
Stata
Python
Python
2020 – now
Primary language. Flask backends, Click CLIs, analysis in pandas, computation in numpy.
mid-2020 – end 2020 · dailyCS 61A coursework and projects.
2021 · occasionalOccasional research tasks.
2022 – 2025 · dailyPrimary language for four years, chosen for the sspi.world Flask backend as a lingua franca that research apprentices already knew from their coursework. Used to build out the ETL pipeline for sspi.world, the website backend, and later the CLI tools.
2026 – now · occasionalStill in the toolkit, but on the backburner as I learn Rust.
Python
HTML / CSS / JavaScript
HTML / CSS / JavaScript
2022 – now
Browser interfaces — the sspi.world front end, charts, this site.
2022 – mid-2025 · dailyHand-written browser interfaces — the sspi.world front end, the charts, this site.
mid-2025 – now · occasionalI occasionally jump in to fix something simple, but these days I mostly declare the behavior I'd like in natural language and have a coding agent do the rest. The time spent actually understanding the frontend and building things myself makes it easy to steer agents when they go off track.
HTML / CSS / JavaScript
Bash
Bash
2023 – now
The locus of computer work shifted to the terminal in 2023 for me, so Bash became the lingua franca of daily computing tasks, providing a gateway to the Vim, Obsidian, and plaintext tool ecosystem. Some background and depth in writing and reading Bash has proved surprisingly handy in the era of coding agents, making supervision at a glance effortless.
Bash
TypeScript
TypeScript
2024 – now
Occasional typed front ends and tooling, especially for Obsidian plugins; recent plugins are mostly agent-built to my direction.
TypeScript
Go
Go
2024 – now
Small single-binary tools since 2024; the daemons — Switchboard, Coldstore — are agent-built to my direction.
mid-2024 – 2025 · dailyPicked up a bit of Go to rewrite Taskbuffer, since the bash scripts I'd cobbled together were starting to become painful.
2025 · occasionalUsed occasionally for maintaining and extending Taskbuffer.
2026 – now · dailyGuided agents building an iteration of Switchboard's daemon and Coldstore's backend. Because Go is so simple, I find it nice to use for outsourcing work to coding agents, even if I don't really enjoy writing it myself. I find it's comparatively easy to read and review, and harder for agents to screw up the architecture.
Go
C
C
late 2024 – now
I learned C for the same reason I studied Latin: to read the classics, bring myself into contact with the knowledge and wisdom of the ancients, and appreciate the lore and the infrastructure. Like Latin, I'm not a fluent speaker, but with a dictionary and some patience I can read and write it passably. I've never built anything useful in C, but most of what I and everybody else relies on is written in C, and its handy to be able to follow the development of systems written in C.
C
Rust
Rust
2026 – now
The language I'm currently learning to think in, write, build in, and love. The combination of rich data modeling, memory safety, performance, and developer tooling is, as far as I know, unparalleled.
Rust
COMPUTING
macOS
macOS
2018 – 2023
Personal machine through college and the SSPI research years.
macOS
Windows
Windows
2023 – 2024
On my BRG-issued machine.
Windows
Linux
Linux
2024 – now
Fedora Asahi Remix on Apple Silicon as primary machine since mid-2024. Since then I've stood up four other linux boxes (three Debian, one Arch). Originally, the main draw to Linux was configurability. I was tired of fighting my operating system (in particular the window manager) over keybindings, window placement, annoying immutable defaults, and other nits. The transparent internals and wealth of resources for learning about Linux and Operating Systems in general naturally pulled me further down the stack. Never going back.
Linux
OS
Atom
Atom
2019 – 2022
Requiescat in pace.
Atom
VSCode
VSCode
2022 – 2024
Still waiting for it to load my diff.
VSCode
Neovim
Neovim
2024 – now
Primary editor, picked up as I transitioned into the terminal for everyday work in late 2023, with a custom configuration I incrementally built out over the course of 2024. As a kid I played around a ton with 3D modeling in Blender; learning the vim keybindings felt oddly like coming home to that.
Neovim
EDITOR
Apple Notes
Apple Notes
2018 – 2023
Default notes app through college and the SSPI research years.
Apple Notes
Obsidian
Obsidian
2023 – now
Obsidian handles all of the information I care about: notes, journaling, writing, tasks, projects, calendars, recommendations, you name it. I also maintain several plugins, mostly for personal use, which implement vim-inspired keyboard-centric interfaces for managing tasks (obsidian-taskbuffer), calendars (obsidian-keyboard-calendar), and maps (obsidian-vim-map).
Obsidian
NOTES
Terminal
Terminal
2018 – late 2023
Who even knew there were better options?
Terminal
WezTerm
WezTerm
late 2023 – now
Basic, configured in Lua, and my daily driver for several years running.
WezTerm
TERMINAL
ZSA Voyager
ZSA Voyager
late 2023 – now
Split ergonomic board on Colemak-DH, with custom layers to put arrow keys, page up, page down, home, and end keys, and a number pad all under my right hand, ready whenever I need them.
ZSA Voyager
KEYBOARD
tap any row for its dates and notes
Skills
Technology
- Systems & Backend: Design and implementation of correct, reliable, and performant systems in Rust and Python. Familiarity with Go, Typescript, and C.
- Data: ETL Pipelines, DAG Workflows, Data Modeling, and Data Reliability. Experience with persistence layers in SQLite, Postgres, and MongoDB.
- Web: Interfaces and webpages in TypeScript, JavaScript, React, and HTML/CSS.
- Applied AI: Evaluations, observability, context engineering/RAG.
- Infrastructure & Automation: Provisioning and operating of self-hosted and cloud-hosted services in Linux. Bash, CI/CD, Docker, and reproducible system configuration.
Technical Background
- Mathematics: Fluency and rigor across linear algebra, probability theory, algorithms, real analysis, complex analysis, and convex optimization.
- Data Analysis and Econometrics: Research and research design for regression analysis, both correlational and causal. Data analysis in Python, R, and Stata.
- AI/ML: Fundamentals of AI theory—LLM architecture, scaling laws, reinforcement learning—and basics of model training in Python with PyTorch and NumPy.
People
- Communication: Clarity, precision, and flair in technical writing and speaking.
- Project Management: Coordination, delegation, and prioritization.
- Technical Mentoring: Helping build conceptual understanding & problem-solving skills.