résumé
Tom Jakubowski
I am an experienced generalist software engineer and a lifelong tinkerer, always looking for ways to find joy in my work. I am a past contributor to the Rust programming language project, and have used Rust since 2014 at work and in my own personal projects.
- email: tom@crystae.net
- github: tomjakubowski
- website: https://www.crystae.net/
selected skills
- Languages: Rust, TypeScript, Python, Elixir, C++, CSS
- Libraries: Axum, Phoenix, Tokio, React, V8
- Platforms: Linux, macOS, WebAssembly
- Systems: Bazel, Github Actions
work experience
Software Engineer, The Prospective Company (2023–)
Prospective is building a new kind of local-first web data visualization product, with all data fetched and streamed into its visualization engine entirely within the user’s web browser. Our servers never see any of your data.
I am responsible for Prospective’s Notebook feature, which integrates a JupyterLite notebook with our product. Our notebook provides a Python data science environment (using pyodide) for transforming and cleaning data in the browser before it is visualized.
I have also contributed to our open source product, Perspective, which is used by financial institutions including JP Morgan, Citadel, and Point72. My open source work has focused on improvements to Perspective’s Python library and Jupyter widget, including a total revamp and stabilization of the project’s conda-forge packaging.
Senior Software Engineer, Second Spectrum (2019–2023)
Second Spectrum teaches computers how to watch sports. On the AI team, I developed a Rust FFI wrapper around C++ computer vision algorithms for use in both Second Spectrum’s next-generation low-latency tracking system and a realtime TV broadcast augmentation engine, featured on live broadcasts by CBS and ESPN. I later taught myself Elixir to join the Redstone team, an internal web app used to produce live player and ball tracking feeds for customers like the NBA, English Premier League, and Major League Soccer.
Software Engineer, Oblong Industries (2015–2019)
On the Client Solutions team, I developed room-scale interactive applications with data visualizations for the display wall and immersion room systems at IBM’s Watson Executive Briefing Centers, using C++, OpenGL, and g-speak, Oblong’s platform for spatial computing. I maintained libWebThing, a library which rendered web content in our applications using Chromium Embedded Framework.
I authored Node.JS bindings for libPlasma, g-speak’s realtime message passing framework, supporting both internal and customer usage. I developed Node.JS web applications for our customer which used those libPlasma bindings to configure, control, and debug our installed applications.
I also drove the team’s adoption of Rust for developer tools and offline data processing pipelines. I wrote and maintained Rust bindings to libPlasma for fun in my spare time.
Sizzle reel, courtesy of my colleague John Carpenter
Software Engineer, FanMob (2013–2015)
I was the sole engineer in a two person sports polling and advertising seed stage startup. I developed the author-facing web application and reader-facing embedding API, used by high-traffic sites like Bleacher Report.
Web Developer, TuneWiki (2011–2013)
I led the rewrite of TuneWiki’s song lyrics website from Wordpress to Laravel framework. I was also the primary developer of TuneWiki’s #1-ranked Spotify App, which rendered lyrics in sync with music playback.
open source
Rust programming language (contributions from 2014–2020)
I’ve contributed improvements and bug fixes to the Rust programming language project, focusing on rustdoc, Rust’s API documentation generator. Between 2014 and 2015, I landed 27 merged pull requests to the project. Since then, I have contributed a couple more small fixes to the project.
The two biggest features I implemented in rustdoc were support for
associated types and trait
bounds in where
clauses.
Weasel REPL for ClojureScript (repo)
I authored Weasel, a modernized version of ClojureScript’s browser REPL, which uses WebSockets as the foundation of a stabler REPL-driven development experience. Weasel’s architecture also for the first time enabled ClojureScript developers working in exotic JavaScript runtimes (like JavaScriptCore and QtQuick) to connect a REPL to their application.
education
B.S., Chemistry, University of California, Irvine