Compare commits

..

3 commits

Author SHA1 Message Date
Bruno BELANYI e3daedf944 git: ignore presentation.pdf 2021-08-30 21:39:53 +02:00
Bruno BELANYI 0a0fb59978 add presentation 2021-08-30 21:39:22 +02:00
Bruno BELANYI 18a246b6e4 figs: add component diagram
The presentation doesn't to build it through the filter...
2021-08-30 21:39:03 +02:00
4 changed files with 131 additions and 1 deletions

1
.gitignore vendored
View file

@ -2,3 +2,4 @@
/result
/.pre-commit-config.yaml
/plantuml-images/
presentation.pdf

View file

@ -1,4 +1,7 @@
all: report.pdf
all: report.pdf presentation.pdf
report.pdf: report.md begin-document.tex config.yaml header.tex
pandoc --defaults config.yaml
presentation.pdf: presentation.md
pandoc -t beamer --filter pandoc-plantuml --dpi=300 -o $@ $<

BIN
figs/component-diagram.png (Stored with Git LFS) Normal file

Binary file not shown.

123
presentation.md Normal file
View file

@ -0,0 +1,123 @@
---
title: "IMC Internship"
author: "Bruno BELANYI"
theme: "Frankfurt"
institute: "EPITA"
date: 2021-08-30
colortheme: "seahorse"
fontsize: 10pt
urlcolor: blue
linkstyle: bold
aspectratio: 169
lang: en-US
section-titles: true
toc: true
header-includes: |
\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
![Component diagram](figs/component-diagram.png){ height=80% }
## Results
![Sample plots, with timings
censored](figs/remote-plots-presentation-censored.png){ width=90% }
## 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