Alex Rowe

Hello, my name is Alex. I like to build projects that are rich simulations, visualizations, and interactive. Interested in evolutionary algorithms, artificial life, and music visualizations. Strengths are in software architecture, optimization, and test driven development. Current engineer at synesthesia.live.

WorkSpaceX · Senseye · Synesthesia
earth + orbit
SpaceX May 2021 - Dec 2023
Software Engineer II

I worked on a C++ simulation system that ran orbital planning cycles, using evolutionary algorithms to find optimal trajectories for mission vehicles. I abstracted the minimizer interface so different optimizers could be swapped in, and optimized the algorithms. I added a modular system for features and tests that could be toggled independently, and modernized the config format to JSON. It built with Bazel and ran on an HPC cluster under SLURM.

I was the sole author of the visualizer. It ran in a browser and rendered the earth, trajectories, and points of interest in WebGL, with a scrubbable timeline and a collapsible entity tree. I wrote custom shaders per entity type so scrubbing stayed fast. State was derived from an input JSON file through a chain of transformations, and GL side effects went through Redux so the view stayed in sync. It rendered cones, lines, regions, and planes, had a 2D map mode using Mapbox, and could export itself to a single HTML file with the data included. Documentation was generated by compiling TypeScript types into JSON Schema.

I also built a tool that ran simulations live across a distributed system, using Kafka for transport and protobuf between Python and C++ services, with PostgreSQL underneath and a dashboard for configuring runs and watching results arrive. The team was five to eight people with a lot of ownership.

C++ · Bazel · TypeScript · WebGL · Redux · Lit · Python · Kafka · Protobuf · PostgreSQL · SLURM
saccade path
Senseye Nov 2017 - Oct 2020
First engineer → Lead engineer

I joined as the first engineer on the team and left as its lead. The work was eye tracking analysis, reading neurological and cognitive signals out of pupil and gaze data. I started by turning research trial results into prototypes in Qt and C++ on Pupil Labs hardware. One project with an Air Force base collected pupil data from pilots running simulations in P3D and correlated it against flight data from the P3D API.

As the team grew I built the data pipeline in Python. It processed raw eye data for machine learning, and the same code could train offline or run as a real time online algorithm. Volume was the hard part, since correlating eye data against video of subjects' eyes meant compressing and processing a lot of footage. Prototyping ran on NumPy, SciPy, Dask, TensorFlow, Plotly, and Kivy. Internal packages lived on our own PyPI, Jenkins and Buddy CI ran data nightly, and everything was hosted on Docker Swarm. I also built a distributed streaming API for real time analysis, with Kong as the gateway and protobuf between services.

I hired engineers, managed for a stretch, and set the engineering standards. The team was four when I started and the company was around thirty when I left.

Python · C++ · Qt · NumPy · SciPy · TensorFlow · Dask · Docker Swarm · Kong · Protobuf · Jenkins · Kivy · Plotly
audio-reactive field
Synesthesia 2016, Aug 2025 - present
Graphics engineer

Synesthesia is a live visual performance application for artists and VJs, rendering interactive shaders to an OpenGL canvas on Windows and macOS. I did foundational work on it in 2016 and came back in 2025 for an architecture refactor.

The refactor moved rendering to a command pattern, where commands describe operations and the engine executes them. That let the data model become immutable with diff based change tracking, and separated the static model structure from per frame runtime state. The rendering side covers multi pass compositing, blend modes, cubemaps, GPU resource pooling, and resizing resources without a full pipeline rebuild. The audio pipeline maps frequency data into GPU textures so shaders can react to sound.

Around that is a fair amount of systems work. A Duktape JavaScript engine embedded in the C++ app with native APIs exposed to scripting, a custom shader format with its own serialization and versioning, inter app video through Spout, NDI, and Syphon, and keeping GPU behavior consistent across AMD and Nvidia on both platforms.

C++ · GLSL · OpenGL · TypeScript · React · Redux · SCSS · Objective-C · Duktape · Catch2 · Webpack
Indexlanguages · graphics · systems
Languages
C++, Rust, TypeScript, Python
Graphics
OpenGL, WebGL, GLSL, Vulkan
Systems
Simulation architecture, HPC, distributed processing
Infrastructure
Docker, Protobuf/gRPC, data pipelines, AWS
Education
B.S. Physics, UC Santa Cruz, 2010-2014
Awards
2nd place, UCSC Hackathon, 2014
2nd place, UCSC Hackathon, 2015