kdb+ Developer
Send a job offer directly to this candidate
I’ve developed and maintained a large q/kdb+ codebase. The database is 100s of terabytes large and contains nanosecond-scale data back to 2017. I have Improved legacy code and maintained various applications written by previous developers. Such apps include a trading alert system (for example if a trader's session terminated unexpectedly), a q process monitoring system (for example alerting if processes suddenly crashed), and a script that calculates the price for a custom (financial) derivative product, based off treasury interest rates. The script is based on the Newton-Rhapson algorithm to numerically approximate a (mathematical) derivative, in this case the duration of a bond, and ran off a real-time database. These have all required thorough testing and debugging to ensure accuracy and reliability.
My last client is a brokerage; the primary application I supported sends trade reports to each “secondary”-client trading through the brokerage. I have had to communicate effectively with stakeholders and team members to understand business requirements and translate these into a technical q/kdb+ solution. These trade reports contain the volume traded for treasuries with maturities ranging from less than 1 month to 30 years, and the client's ranking (in terms of total volume traded) against others per each treasury type. Such ranking reports are generated with time horizons of the given day, the month to date, and year to date. These reports are automatically generated at end of day and sent out to each client.
The primary application I developed is a partitioned historical database storing the servers' disk read/write speeds and synchronous/asynchronous interprocess communication speeds. This was a flexible application that wrote directly to disk and could be restarted at any point without data loss. The brokerage needed new Linux servers to support their growing operations and had conflicting results for speed tests on these new servers. Thus I was tasked with this project to create confidence in the new servers' performance. I used qsql to calculate the average, max, min, and median speeds to compare with current standards. This information helped the company decide whether to purchase the servers.
For First Derivatives, I've created a chat room in q/kdb+, just like AIM or facebook messenger. One could create users to be authenticated against a database of usernames and encrypted passwords. Once logged on, the user would interact with an API I created to send messages to particular users or broadcast messages to all users. A daily log was also kept of global user status information – such as when a given user logged on or off for the day (HDB), what users were currently logged on (RDB), and status info including the ip address and port numbers used.
Lastly, regarding soft skills and technical guidance, I have always made a point of mentoring others and operating on a basis of open communication. I have taught developers more junior than me about the concepts employed in the abovementioned projects (I/O operations for the speed testing, the .z namespace for the chatroom, and general q basics like the functional/vector nature of q code, and breaking away from thinking in terms of for/while loops to name a few) and am happy to help whenever others are stuck or have questions. I have worked as a calculus tutor throughout college and worked in law enforcement for over a year, so working harmoniously as part of a team and providing mentorship wherever needed has always been important to me.
First Derivatives | New York, NY | Q/KDB+ Developer| 40 hours per week 10/2021 – Present
Genworth Financial | Richmond, VA | Actuarial Intern| 40 hours per week 5/2015 – 8/2015
LGR (LET’S GET READY) – New York, New York (6hrs/week) 1/2014 – 5/2014
Baruch College, Zicklin School of Business | New York, NY, USA | MS in Statistics May 2021
GPA: 3.9
Macaulay Honors College at Baruch | New York, NY | BA in Mathematics May 2016
GPA: 3.8, Full Scholarship