Nathan Taylor

https://ntaylor.ca
email

Experience

2025-curr.

Semgrep

Seattle, WA
Staff Software Engineer, Program Analysis

Performance lead for Semgrep's static analysis engine, improving median and tail scan times by 3x and reducing the MCP server's latency by over 4x. Led the engine migration to Multicore OCaml. Maintained Semgrep's custom OCaml compiler and stdlib.

2021-2025

The University of Texas

Austin, TX
Graduate Research Assistant, Department of Computer Science

Researched lightweight formal methods for validation of systems software. Verified crash consistency of a persistent memory filesystem, and mechanised validating an optimised Paxos implementation against its correctness proof.

2019-2021

Independent Consultant

Took a break from corporate life to teach, read research papers, and help out on interesting problems:

  • At Microsoft Research, contributed to a research storage engine that combines low-latency ML and dynamic analysis to optimise index structure layout. Reduced critical-path latency by 40%. Mentored PhD interns.
  • At RLCore Technologies, built reliable and safe systems for reinforcement learning-driven industrial control systems. Implemented property-based testing and record/replay debugging libraries for RL agents.
  • At The University of Toronto and MacEwan University, developed and taught undergrad CS courses.

2018-2019

Apple

Cupertino, CA
Systems Software Engineer

Developed high-performance GPU simulators modeling in-development SoCs, reproducing functional behaviour at interactive framerates, allowing developers to start programming before tapeout.

2017-2018

Fauna

San Francisco, CA
Senior Software Engineer

Developed Fauna's strongly consistent, distributed database. Built a greybox fault injection tester to verify safety properties and maintain development velocity. Mentored engineers new to Scala and JVM concurrency.

2014-2017

Fastly

San Francisco, CA
Senior Software Engineer

Maintained Fastly's reverse HTTP proxy and cache. Designed and built a sandboxing dynamic analysis runtime for the Fastly software stack, atop which the compiler, API, and security teams built custom analyzers.

2012-2014

Twitter

San Francisco, CA
Software Engineer II

Extended Twitter's Ruby and Java runtimes, improving the GC, JIT, and perf analysis tooling. Collaborated with service owners to diagnose performance issues. Maintained systems for antispam classification and actioning.

Selected Publications and Presentations

I also maintain a blog about formal methods, programming languages, and low-level & concurrent systems.

09.2024

An Invitation to Liquid Types

| Papers We Love NYC | Video

07.2024

SquirrelFS: Using the Rust Compiler to Check Filesystem Crash Consistency

| OSDI '24 | PDF

05.2018

The Life of a FaunaDB Query

| Guest post on the Fauna blog

11.2016

Hands-on HTTP/2, a Fresh Start to The Web

| QCon SF

06.2016

Beyond Breakpoints: A Tour Of Dynamic Analysis

| QCon NYC | Materials

12.2015

Two Approaches Towards OS Scalability

| Papers We Love SF | Video

09.2015

Racing to Win: Correct Concurrency with Race Conditions

| Surge '15 | Video

04.2015

Your Computer Is Already A Distributed System; Why Isn't Your OS?

| Papers We Love SF | Video

06.2014

Your Heap And You: Garbage Collector Tuning for Twitter Services

| Internal tech talk

05.2013

Cachekata: Memory Hierarchy Optimization via Dynamic Binary Translation

| Msc. Thesis | PDF

04.2013

Whose Cache Line is it Anyway: OS Support for Detection & Repair of False Sharing

| Eurosys '13 | PDF

03.2012

Debugging Through Time with the Tralfamadore Debugger

| RESolVE '12 | PDF

08.2011

Herbert West: Deanonymizer

| HotSec'11 | PDF

10.2010

Iodine: Interactive Program Partitioning

| OSDI '10 Poster Session

Education

2021-2024

The University of Texas

Austin, TX
PhD, Computer Science (incomplete) | Supervisor: James Bornholt

Organised the Systems+PL and the undergraduate systems reading groups. Applied Scientist intern in the Automated Reasoning & Database Services groups at AWS, working on distributed system model checking.

2009-2012

The University of British Columbia

Vancouver, BC, Canada
M.Sc., Computer Science | Supervisor: Andy Warfield

President of the CS Graduate Students' Association. Led department TA training. Appointed to the UBC Graduate Council. Organized the systems lab reading seminar. Service award recipient for my work supporting CPSC 110.

2005-2009

The University of Alberta

Edmonton, AB, Canada
B.Sc. Specialization, Computing Science

Executive on the Undergraduate Association of Computing Science board. Acted as the U of A's Cluster Challenge Team's chemistry domain expert.