Tobias Pristupin

Software Engineer

Download Resume

About Me

Hi, I'm Tobi. My passions lie at the intersection between Computer Science and Mathematics. I have been programming since age 13, and have experience with systems programming, compilers/kernel development, mobile development, and competitive programming.

I have worked as a Software Engineering Intern at Meta and Stripe, and I am working at Optiver this summer.

I study Computer Science and Mathematics at Washington University in St. Louis, where I am part of the John B. Ervin Scholars, a merit scholarship program based on academic excellence, leadership, community service, and diversity. Other interests of mine include: urban planning, public transit and cycling advocacy, vintage clothing, and soccer.

For the best viewing experience, please open this website on a computer/tablet.

Education

Washington University in St. Louis

August 2020 - Present

Bachelor of Science in Computer Science + Mathematics

Experience

Optiver

Software Engineer Intern (Chicago)

  • Developed and deployed a real time trading compliance monitoring app.
  • Improved speed of a critical compliance pipeline by ~60% by optimizing data processing. Enhanced reliability of pipeline to prevent failures.

Stripe

Software Engineer Intern (NYC)

  • Improved min/p90 latency by 11% and 23% while keeping throughput constant for the main requests executor, affecting every Stripe product
  • Directed a rollout to migrate 200 services in production across 60 teams to my executor
  • Designed and proposed project to improve kubernetes server health checking

Meta

University Software Engineer Intern (Menlo Park)

  • Designed and implemented community building Android app that scales to 100k+ users. Used Firebase DB and Cloud Storage, Google NLP REST API, RxJava, Retrofit, Unit Testing.
  • Shadowed full time engineers to learn development workflow. Learned Phabricator, best practices for code review and Git.

Projects

Computer Security & Privacy Lab

Developed a C++ framework for statistical analysis of Linux PMU performance counters. PMU counters are hardware counters that can be used to count performance events (cache misses, branch predictions, cycles, etc.). PMU counters suffer from unreliable data, so our team developed a novel approach that works in user space and kernel space to improve the data's accuracy.

This work was submitted to ACM's Operating System's Principles and is awaiting acceptance.

CSPL Lab

Lox Interpreter & Compiler

As a personal project, I wrote an interpreter in C++ for the Lox programming language, created by Bob Nystrom in the book Crafting Interpreters. Lox is a dynamically-typed language with support for OOP. The goal was to use C++ modern patterns such as smart pointers for memory management and C++17 features.

During my second semester of college, as part of an independent research project, I worked under the guidance of professor Jonathan Shidal to develop a bytecode compiler and a stack based virtual machine for Lox, also in C++. I then implemented multiple garbage collection algorithms for my compiler, and benchmarked them all. My findings are summarized in a research paper I wrote.

Lox Interpreter    Lox Compiler    Garbage Collection on Lox Research Paper

Real Time Systems Research Lab

Working with Professor Chris Gill at WashU on identifying techniques to reduce latency in real time distributed systems. Collaborating with the Max Planck Institute (MPI) in Germany.

I managed to reduce max latency of CycloneDDS by 5% by tuning message payload size in relation to the network stack configuration. I also identified sources of lock contention and reduced them by improving the synchronization approach, limiting time spent in kernel space and improving latency.

CycloneDDS Latency Paper   Paper from MPI

Teaching

I am currently the co-head teaching assistant for CSE 361 Systems Software. Teaching assistants are elected by professors based on outstanding performance in the class. My responsibilities include leading weekly lectures, providing office hours, and general course administration.

I have also worked as a teaching assistant for CSE 240 "Discrete Mathematics"

Journaly

Journaly was the project I worked on during my Facebook internship. Journaly is a journaling and community building app. Users can make journal entries, and Journaly will use machine learning to identify the emotions of that entry. If Journaly notices that a user has been posting a lot of negative content, it will encourage that user's followers to reach out to them, helping them build a support network.

Journaly uses Firebase Auth + Realtime Database + Cloud Storage, Google NLP Cloud API, Dicebear API, RxJava, Retrofit, and JUnit for unit testing. Main focus was placed on scalability of the backend. Estimates show that Journaly can scale up to 100k users.

   Github   

WaterMyPlant

I always forget to water my plants, so I built a machine that does it for me. It consists of an Arduino that activates a water pump whenever the soil moisture sensor reports a low enough value. A Raspberry Pi collects real time data about the soil and displays it on a Python matplotlib graph so I can monitor it.

   Github

Smart RC Car

Retrofitted an old RC car with a Raspberry Pi. A mobile app communicates with a web server in the Pi to control acceleration and steering. The Pi uses a L293D DC motor driver to control the car's motors. This project is a work in progress, future plans are to add a camera, microphone, and speakers to the car, all controlled by the app.

Other Projects

  • As part of my Systems Programming class, I developed a custom implementation of C's malloc. My implementation utilizes a segregated lists approach with constant time coalescing and a minimum block size of 16 bits to achieve performance similar to that of the standard library.
  • I am very interested in algorithmic/generative art. The picture to the left is a procedurally generated 3D terrains using perlin noise. Some of my other creations include: Interactive trees that sway with wind, various cellular automata, and recreating images with figure packing.
  • For competitive programming, I created a personal hackpack. It includes a compilation of the algorithms, data structures, and implementations I refer to during competitions.
  • Currently reading through Structure and Interpretation of Computer Programs (SICP) and plan on learning functional programming in the future.

Skills

Get in Touch