Margo puts its developers in the spotlight and invites you to find out more about their daily life, the challenges and technical pressures facing a C++ developer in the financial market. Read part two of the interview:
How do you carry out your technology watch?
K.: I read the newsletters and blogs such as http://blog.codinghorror.com/ and https://news.ycombinator.com/. As for pure programming, I learn more thanks to my curiosity and the searches I run to solve the problems I come across day-to-day, either at work or in my personal life.
E.: I read lots of books by the likes of Scott Meyer, Bjarne Stroustrup, Herb Sutter and Andrei Alexandrescu. I’m a big fan of Andrzej’s C++ blog too.
R.: I often look at theStackOverFlow site, cplusplus.com, Dr Dobb’s and Boost. I also go to online meetings run by Scott Meyers and Herb Sutter. Reading the C++ specifications is an excellent way to learn!
N. : My technology watch consists of belonging to specialist C++ groups on LinkedIn and visiting blogs / sites such as StackOverFlow, cplusplus-soup, cpptruths and Dr Dobbs.
What technical issues do you come across?
K.: It’s hard, for example, to work with dirty legacy code. On a day-to-day basis though, I do make leading-edge use of the languages and get to think about design issues that I find more interesting.
E.: I come across real time and multi-threading issues.
R. : I work on really low-level problems and I love it.
N.: Learning all about a package like Summit is some task: the environment is so rich!
How complex is your working environment?
D.: It’s often hard when you get bugs that cause inconsistent results that you can’t reproduce from one run to the next. I work in a run-time environment that is complicated by the fact that processing is distributed across clusters working in parallel.
E.: As I work on an electronic trading platform, my working environment is complicated due to its technical diversity (lots of languages and technologies are used). You also have to understand the business side.
R.: Above all, the constraints that I face relate to scalability, integration and robustness.
N. : The architecture I work on is complex: lots of components communicating with each other, some processes with specific workflows and so on.
What advice would you give to a developer who is just starting out?
K.: I’d tell someone who is just starting out to use C++ tools like STL (especially if they already know C) and to take the time to read and understand the code of others/senior developers. That’s the way to learn, and to find out about an environment.
Don’t re-invent the wheel. For example, try to understand what is already there, then use it, along with third-party libraries.
My last tip is to do loads of coding using the right methods to solve the classic problems.
E.: I’d advise a junior to spend a lot of time on technology watch and learn about finance so that they can understand what is at stake. Being curious about the business sector is important. Finally, I’d advise them to further their skills in a 2nd programming language.
R.: My advice is simple: have a strong basis in C (data structures and algorithms) and apply modern programming concepts: object-oriented programming, functional languages, meta-programming and concurrent programming.
N.: Starting with C++ teaches you about memory management mechanisms and everything that goes on at a low level. This makes it easier to learn any other language. I would also say that good code is readable and easy to understand. So, keep it simple!