2.8 KiB
2.8 KiB
title | author | theme | institute | date | colortheme | fontsize | urlcolor | linkstyle | aspectratio | lang | section-titles | toc | header-includes |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
IMC Internship | Bruno BELANYI | Frankfurt | EPITA | 2021-08-30 | seahorse | 10pt | blue | bold | 169 | en-US | true | true | \setbeamertemplate{section page}{% \begingroup% \centering% \begin{beamercolorbox}[sep=12pt,center,colsep=-4bp,rounded=true,shadow=true]{section title}% \usebeamerfont{section title}% \insertsection% \par% \end{beamercolorbox}% \endgroup% } \addtobeamertemplate{navigation symbols}{}{% \usebeamerfont{footline}% \usebeamercolor[fg]{footline}% \hspace{1em}% \insertframenumber/\inserttotalframenumber% } |
Introduction
IMC & Global Execution team
- Market making firm
- Multiple offices
- Over 20 exchanges
Subject of the internship
The project is about benchmarking a new service we're building related to exchange connectivity. It would involve writing a program to generate load on the new service, preparing a test environment and analyzing the performance results. Time permitting might also involve making performance improvements to the services.
Motivation
- Early feedback during development
- Track regressions
- Various scenarios
Additional work
- Compatibility testing
- Test both client and gateway processes
- Test forward and backward compatibility
- Similar to benchmark in its architecture
Work accomplished
Parameters of a run
- Lab setup to mirror production
- Multiple scenarios
- Multiple exchanges and gateways
Workflow
- Scenarios are exchange-agnostic
- Running a benchmark locally and remotely in a transparent manner
- Single command to run
Architecture
Results
Compatibility testing
- Existing tests only test single version of client and server in lock step
- Forward and backward compatibility
- Multi-process testing
Benefits of the internship
To the company
- Framework to use for benchmarking gateways
- Nicely integrated in IMC's build system
- Easy to use for new exchanges
- Easy to extend with new scenarios
- Ground work on compatibility testing
- Peace of mind
- Ensure upgrades/downgrades happen smoothly
- Reduce downtimes due to failures
To me
- Part of a good team & company
- Learn about finance sector
- Deal with new problems I had not encountered before
Conclusion
Challenges of the internship
- Integration among pre-existing code
- Working conditions due to COVID
- Debugging asynchronous, multi-process systems
Further work
- Integrate with in-house change-point detection
- Integrate with packet sniffing setup
- More exchanges & scenarios