Anirvan Mukherjee
Middle Office IT Programmer,
Lehman Brothers, Tokyo
March 6, 2007
|
 |
Anirvan Mukherjee is a middle office IT programmer and project manager for Lehman Brothers in Tokyo . He spends most of his time writing and debugging C++ and C# codes to develop financial applications in the areas of risk management, product control and leveraged finance. It is extremely difficult to get hold of him but recently Team Latte's Rahul Bhattacharya was fortunate enough to get hold of him in and have a brief – truly brief – chat over coffee at a Starbucks in Tokyo .
Here is an excerpt from our conversation with him. |
Team Latte :
You write programs in C++ and C# for financial applications. What is so special about C++ that it has become a universal language for quantitative financial applications? And how different is C# from C++?
Anirvan Mukherjee :
C++ is essentially a "better C". It retains the attractive features of C such as efficiency, closeness to machine. In addition it offers Object Oriented features by allowing the creation of user defined types. So in a sense C++ is a "hybrid" language that appeals to the C crowd as OOP crowd. This contributed to the immense popularity of the language.
C# is a programming language that runs under the Microsoft .NET framework. You can think of .NET framework as a huge class library that contains everything you need to run web or client applications. In fact the latest version of Windows - Vista contains .NET framework 3.0 as an intrinsic part of its architecture. Compared to C++, C# is purer object oriented language and has a cleaner object oriented syntax compared to C++. The C# language designers had the benefit of hindsight to see what were the issues with C++ and made appropriate design corrections - especially in the area of garbage collection, multiple inheritance, a common base class for all objects etc.
Team Latte:
We are told that DLLs (dynamic link libraries) are an integral part of converting C++ code onto an Excel spreadsheet front end. Also, it seems that there is so little expertise in this particular area, at least in Asia . Why is that?
Anirvan Mukherjee :
Since the advent of VBA in Excel 97 - it has been the preferred choice of development for Excel developers - where the focus is on speed of development rather than speed of execution. Also Microsoft hasn't updated the C API since the release of Excel 97. As a result there is a scarcity of books and resources - that would help the developer to learn the C API's- for developing the DLLs.
Team Latte:
I am told that you are currently trying to pick up VBA (Visual Basic for Applications) and its application in Excel spreadsheet modeling for derivatives pricing. There is a general belief amongst the programming community that Excel and VBA are inferior and simple languages and that they lack the power and efficiency of C++ that is needed to price and model derivatives. Is this true? What is your take on this?
Anirvan Mukherjee :
I think that VBA provides a rich IDE for development. However there are certain aspects where using C/C++ would yield a higher performance. The other day I was reading a performance comparison done between VBA and C/C++ in a situation where there were a lot of array manipulations. In that situation the C/C++ outperformed VBA by a factor of 15.
Team Latte:
What are the programming challenges that you face while working with the middle office projects in your current job. How much time do you spend on writing code (as opposed to doing project management)?
Anirvan Mukherjee :
I think that the biggest challenge is in writing code that is reusable - in the face of constant changes in business requirements. Besides this there are other challenges e.g. building systems that are scalable, high performance & well integrated with other up-stream & downstream systems.
As for myself - I spend around 50-60% of my time writing / debugging source code.
Team Latte:
If we have a young programmer, fresh out of school, who wants to join your team as a trainee and you are allowed only two questions to ask him or her for making a decision about his or her candidature then what two questions would you ask him or her?
Anirvan Mukherjee :
I would ask him/her:
- Please tell me about your final semester project work - what was accomplished, what challenges you faced & if you were asked to redo it - how would you do it differently.
- If you were asked to enhance your project work further and make it a product - to be used by customers worldwide - what essential design changes would you incorporate.
  
Any comments and queries can be sent through our web-based form. |