@KillingField :
I am finding out that trying to get an internship
after having already finished the PhD is hard, probably impossible. Not being a student anymore is enough of a reason to take you out and slim down the pool of candidates. I don't think there is any hope trying to enter just by applying on their website, without having connections of some kind.
I have even taken time to do their gamified personality test, turns out I am both a Risk Taker and also a Thoughtful Planner, at the same time.
So I am scouring for entry positions, just found this one:
We are looking for a new member to join a core Quant team focusing specifically on high performance computing.
Responsibilities:
- Developing in a C++/CUDA/Python software library that prices derivatives and calculates risks;
- Focus is on efficient algorithms, vectorization and parallelization, compilers, architecture of cross-asset pricing engines, core library frameworks and continuous integration infrastructure;
- Optimization of the code for specific hardware, from today’s production staples to future disruptive innovations;
- Support of end users of the library and communicating with desk-aligned quant teams and technology groups.
Essential skills and qualifications:
- A postgraduate degree (preferably PhD), or equivalent, in a quantitative field, e.g. computer science, mathematics, engineering, physics, or finance;
- Excellent software and algorithm design and development skills, particularly in C++
- Outstanding problem solving skills;
- Basic understanding of numerical methods, probability and foundations of quantitative finance to ensure that detailed model knowledge can be picked up if required.
Preferred qualifications:
- Experience in parallel programming, e.g. TBB, OpenMP, CUDA or OpenCL;
- Python, Java, Perl and web programming skills;
- Previous work experience as a software developer or a quant.
It looks like a classic quantitative developer, derivatives pricing position. There is an emphasis on high speed computing and parallel programming.
Boxes I tick: I have the advanced STEM degree, but not in computer science; my C++ knowledge is now on the level of knowing best practices from Meyers' book. For instance, I am starting to get an intuition for exception safety, and off C++11/20 I mainly appreciate range loops and lambda functions, and I avoid pointers like the plague. With algorithms I am fine, but I lack practice and knowledge of software design to the point of being confident about it in interviews. The mathematics they list should be my strong point.
I have also dabbled a bit with OpenMP on Fortran08 (which is a modern language, with something called
co-arrays that are a natural in multithread settings) during my PhD, seen some code and know what it is about (happy they don't use MPI). But I am far from being experienced with parallel programming, and not conversant in CUDA, or in the rest of the parallel protocols other than openMP they list. No scripting language apart from Matlab, and absence of relevant previous professional experience round up my skills in the Preferred qualifications list.
What do you think about the role and my chances? Entry level enough? Should I keep bothering with this?