Consultant
26.03.2015

Interview - Les challenges d'un développeur C++ en finance

Margoconseil souhaite mettre en lumière ses développeurs et vous propose d'en savoir davantage sur le quotidien, les défis et les contraintes techniques rencontrés par un développeur C++ en finance de marché. Découvrez la deuxième partie de l'interview :

[...]

Comment fais-tu ta veille technologique ?

K. : Je suis des newsletters ou blogs comme http://blog.codinghorror.com/ et https://news.ycombinator.com/. En ce qui concerne la programmation pure, j'apprends davantage grâce à ma curiosité et aux recherches liées aux problèmes que je rencontre au quotidien dans mon travail ou à titre personnel.
E. : Je lis énormément de livres dont les auteurs sont Scott Meyer, Bjarne Stroustrup, Herb Sutter et Andrei Alexandrescu. Je lis également avec assiduité le blog  Andrzej's c++ blog.
R. : Je consulte fréquemment le site StackOverFlowcplusplus.com , Dr Dobb's, Boost. Je suis également les conférences en ligne proposées par Scott Meyers et Herb Sutter. Regarder les spécifications du C++ est un excellent moyen d’apprendre!
N. : Pour faire ma veille technologique, je suis des groupes spécialisés en C++ sur LinkedIn, divers blogs /sites comme StackOverFlow, cplusplus-soup, cpptruths et DrDobbs.
 
Quelles sont les problématiques techniques que tu rencontres ?
K. : Il est difficile de travailler avec du dirty legacy code, par exemple. En revanche, au quotidien, il m’arrive de me pencher sur des utilisations pointues des langages et de réfléchir à des problématiques de design qui m’intéressent davantage.
E. : Je rencontre des problématiques de temps réel et de multithreading.
R. : Je travaille sur des problématiques très bas niveau et cela me passionne.
N. : Maîtriser un progiciel comme Summit demande un investissement conséquent : l’environnement est riche !
 
Quelle est la complexité de ton environnement de travail ?
D. : Il est souvent complexe de faire face à des bugs d'instabilité des résultats, non reproductibles d'une exécution sur l'autre. Je travaille dans un environnement d'exécution complexe en raison de la répartition des calculs sur des fermes de calcul en parallèle.
E. : Comme je travaille sur une plateforme de trading électronique, l’environnement de travail est complexe de par la richesse technique (beaucoup de langages et de technologies sont utilisés). Il faut également comprendre le côté fonctionnel.
R. : Les contraintes que je rencontre concernent avant tout la scalabilité, l’intégration et la robustesse.
N. : L’architecture sur laquelle je travaille est complexe : beaucoup de composants communiquent entre eux, plusieurs process avec des workflows spécifiques…etc.
 
Quels sont les conseils que tu prodiguerais à un développeur qui débute ?
K. : Je conseillerais à un développeur qui débute d’utiliser les outils du C++ comme STL (surtout pour ceux qui ont appris le C en premier) et de prendre le temps de lire et comprendre le code des autres/seniors. Cela permet d'apprendre et de découvrir un environnement.
Par ailleurs, je conseillerais de ne pas ré-inventer la roue, mais plutôt de chercher à comprendre puis d’utiliser l'existant et des librairies tiers, par exemple.
Le dernier conseil que je donnerais est  de coder abondamment en recherchant les bonnes méthodes pour résoudre les problèmes classiques.
E. : Je conseillerais à un junior de faire beaucoup de veille technologique et de monter en compétence en finance pour mieux comprendre les enjeux, si nécessaire. Avoir une curiosité pour le secteur d’activité est important. Ensuite, je conseillerais de monter en compétence sur un 2ème langage de programmation.
R. : Mes conseils sont simples : avoir des bonnes bases en C (structures de données et algorithmie) et travailler les concepts de la programmation contemporaine : programmation orientée objet, langages fonctionnels, méta programmation et programmation concurrentielle.
N. : Débuter avec le C++ permettra de comprendre les mécanismes de gestion de la mémoire et de tout ce qui se passe en bas niveau, tous les langages seront faciles à maitriser ensuite. J’ajouterais qu’un bon code est un code lisible et simple à comprendre. So, Keep It Simple !