Touchplan, February 2020 — Present
Three years after interning at Touchplan, I joined them again full time while on leave from school. For the first few months, I fixed bugs in business logic and reporting. Then I began working on efforts to improve scalability. This first began with optimizing our usage of Google Firebase, and then eventually progressed to creating artificial stress tests that mimicked production load. With this artificial load, we were able to stress a test copy of our server cluster in order to aid capacity planning and identify bottlenecks.
Broadway Technology, Summer 2018
At Broadway I helped add support for trading commercial paper on their core distributed platform by implementing logic to communicate to exchanges via the FIX protocol. This involved modifying one of their C++ libraries that tracks price information about instruments, adding a new battery of tests, and debugging many edge cases.
In addition, I helped profile and optimize a key C++ data serialization library.
This library was responsible for parsing FIX messages and embedded XML,
serializing objects from the Broadway distributed platform and application state
stored in hashtables, and finally translating between these many formats. I
wrote both synthetic and representative benchmarks using logs captured from test
files. I also used Linux's
valgrind commands to identify
bottlenecks and to eliminate unnecessary memory allocations.
Ab Initio, Summer 2017
At Ab Initio, I helped work on an optimizing compiler for their ETL product. I implemented a translation pass between their existing data flow graph representation and the format employed by their new experimental optimization engine. As part of this, I wrote logic to enrich the basic data graph with additional metadata such as type propagation and liveliness analysis.
Touchplan, Summer 2016
At Touchplan I helped distribute their monolithic Java/SQL backend across multiple servers using Apache Mesos and Zookeeper. I developed and tested high availability features such as handling failovers and online rolling upgrades.
I also developed a script to deploy to this server cluster and message build/deployment updates to Slack as a part of their CI/CD system.
Finally, I performed basic data analytics using SQL and helped evaluate several data warehouse solutions.