Have fun clicking through on the links where I’ve had a chance to put them in — and be thankful about how far technology has come!

Pre-college

I started programming games at 11 years old on a 4K TRS-80 in BASIC and Z-80 assembly with a cassette tape drive. My science professor and I wrote a Jogathon management program for 1000+ participants, including tracking, invoicing, etc., on a 16K TRS-80 in BASIC and Z-80 assembly.

I also wrote a program for the State of Alaska that helped people get government funding to insulate their houses — on an HP41CX calculator and a paper-tape printer, which was distributed to many insulation contractors in the Anchorage, Alaska, area.

I then worked for a construction company called Adcom - we did construction management software for about 70 companies all on a CP/M machine with a 5 megabyte hard drive. I also got to experience the joy$ of one-off consulting for a number of companies under the supposed-to-be-funny-but-really-stupid company name “Corrupted Software” (later renamed to “CorSoft” at the bidding of a number of customers whose finance departments looked askance at writing checks to the original name of the company).

Later, I worked on gradebook and inventory and administration software for East Anchorage High School. First governance issue - I could see and modify my and my brother’s grades and attendance in the system. Temptation not taken.

Caltech and a contract for remote Alaska

I then headed off to college at Caltech, in Pasadena. I got a contract from the US Department of Education to educate Alaskan Inuits in their remote villages so they could get jobs as finance or paralegals. Here’s the trick: my code was deployed remotely, often powered by generators. I wrote the authoring system and the delivery system, including a font creation and management package, since the course was partially in the Inuit language. First experience with how hard it was to fix bugs in the field.

JPL — paper tape, core memory, and a planetary colonization game

During my Caltech career, I got the privilege to work at NASA’s Jet Propulsion Laboratory (JPL) — and I had fun programming on an ancient Varian that used core memory, had to be booted from paper tape, and was able to support all 32 concurrent scientific researchers in 256K of memory. But I mostly programmed cool science experiments on a MicroVax 1 with 1MB of memory and a 30MB hard drive, including working on some software to control one of the first Scanning Tunneling Microscopes JPL had - imaging individual atoms on various surfaces.

My most prolific project in terms of typing was writing ~60KLOC in one semester when I wrote a planetary colonization game for my systems class. Turbo Pascal is still my favorite IDE. (Cursor, take note…)

Oracle Database Kernel

At Oracle, I was proud (and surprised) to be the 11th member of the RDBMS Kernel Group, and I owned the bottom part of the kernel — all the locks/latches/files/memory/processes/threads, etc. I think it was about 1M LOC overall, all in Oracle’s special version of C. So many exciting database innovations there; Oracle Parallel Server (now Oracle RAC on Exadata), for one, proved to me once and for all that relational databases don’t scale out naturally.

One of my best projects was instrumenting the gcc compiler to track memory usage and branch behavior. We were able to increase L2/L3 cache usage by 50% on a VAX 6640 and also reduce the number of instructions for a full TPC-1 transaction from ~125,000 to ~75,000. I love compilers.

I was also the czar of the 50+ operating systems that Oracle ran on, meaning that I owned the main ports and worked with both internal Oracle teams and external vendors to implement the Oracle OSD operating system on each platform. I learned a lot about strange computer architectures like nCUBE (1,024 node MPP), SGI (first real GPU), Sequent (26 CPUs on one bus), IBM MVS, and even some 36-bit word machines. Making a multi-million-line C monolith — designed bottom-to-top for 32-bit words — run correctly on a 36-bit machine was… crazy. It taught me that cross-platform software has to be the BEST on every platform, not the least common feature set.

Oracle Media Server (foreshadowing of Netflix)

I was then one of the 4 founding members of the Oracle Media Server Group, where I wrote all of the MPEG parsing code and the front half of the streaming service. When you fast-forward or rewind a stream on Netflix or Hulu or Amazon — anything in MPEG — it just might be using some of the tech I developed and Oracle patented. If you want to know a little bit about why it was hard, I wrote a paper at the time on Early MPEG FF/RW. I then became VP of the team and stopped coding, sigh.

My own A/V company

After Oracle, I ran my own high end Home Theater and Audio-Visual company — bidding, programming, and installing Crestron and other high-end A/V hardware using crazy things like SIMPL+ on custom hardware, writing device drivers for hardware that didn’t deserve it, etc.

NewsCorp / Wireless Generation

Later, I became CTO at a division of NewsCorp called Wireless Generation on the Gates Foundation Shared Learning Initiative (SLI) Project, where I led a bunch of folks and used MongoDB to ingest ~8B records a day into our system. Callout to Sarah Branfman and Richard Kreuter for their help back then! Our goal was to help teachers teach better, and students learn better - and it mostly worked. But politics (teachers’ unions) and mismanagement (NewsCorp arrogance) killed the project.

Amazon — RDS, Aurora, DMS

I spent 5 years at Amazon, proudly leading the RDS team, the second largest revenue service at AWS. We had a 3M LOC control plane written in Ruby on Rails and Java (pro tip: don’t write a 3M LOC control plane written in Ruby on Rails and Java) managing a fleet of >1M databases. Fleet operations is crazy complicated at that scale - anything that happens once in a million days happened multiple times a day in that fleet, spread across 30+ regions and 100+ datacenters.

Then I went deep with Aurora PostgreSQL, understanding the MVCC model, WAL logs, and the silliness of memory-mapping your buffer cache (only recently fixed as of 2026!). I also led the building of the AWS Database Migration Service and the Schema Conversion Tool. I might have also had something to do with the ideation of DocumentDB (my apologies, as I think it was a step too far for AWS - we should have just partnered with MongoDB better).

Grab

Grab was a different beast. We had torn down our single-MySQL / 3-process monolith into hundreds of databases and 200+ microservices — which grew to 400 while I was there. Grab tech was mostly in Go, and the databases we used were MySQL, PostgreSQL, ElastiCache, DynamoDB, and a tiny bit of Mongo. We did a huge amount of Data Science as well as more traditional programming. The speed with which a B2C business can move compared to B2B is breathtaking.

MongoDB

At MongoDB, I had to grow my leadership skills for a company that was expanding from ~200 to ~900 in Engineering in 3 years, not leaving much time for coding. I was able to improve the operational resilience of parts of the system through better processes and create a diligent focus on performance. The project I am proudest of at MongoDB is Queryable Encryption - while I didn’t code it, I was involved in the ideation of how to take the math and put it into code and then how to make it fit into the distributed MongoDB architecture. See the article on my feed page.

I left MongoDB when I came to the strong conclusion that we needed to stop being mostly a feature factory, and about how important availability, performance, resilience, correctness, and security were to the product and company. The org and leadership changes needed to accommodate that proved too much for the company to stomach and I left - the next CTO spent 3 years doing exactly what I wanted to do :-).

dbt Labs

At dbt Labs, I landed with an amazing team of humans, but many of them were data practitioners and were not fit for purpose for building a distributed system for practitioners - see the problem? So, I spent most of my time helping the teams become more mature - in people, in process, in distributed systems skills, in global footprint, in financial and governance processes, in resilience, and in culture. Doing all of this at once felt like replaying 30 years of my career to get dbt Labs (now Fivetran+dbt Labs) to bring the team to the pretty good state it was when I left in 2026.

…now…

I’ve been coding in Swift mostly, preparing apps, and building websites (like this one). I am truly enjoying doing technical work again and value that we can now have leaders who are technically involved as well as high-judgement and deep. It’s a new, wonderful world.

For the polished version of all of this, see About.