A recruiter would be a better point of reference here, but hiring season for interns is usually towards the end of the year. Experienced positions usually start heating up before bonus payouts and are probably at their peak around this time of year I think. This year is special, though, due to Corona virus with a lot of staff working from home etc.
I also have the 'Effective Modern C++' book on C++11/14 by the same author, which I guess will present the best 'design patterns', and in what specific situations it is useful to take advantage of these improvements in the language.
What's your definition of a design pattern? Meyer's approach is certainly not design patterns in the precise sense.
I'm the only one doing it; some have passed, sadly (Marc Joshi), others have given up (Meyers), etc.
Feels like Last of The Mohicans ....
C++How come Meyers has given up? On what? Leaving the OOP paradigm for functional or general programming?
He reports that C++ is multiparadigm in his books and speeches, he's well aware of that
"I hate anything that asks me to design on the spot. That's asking to demonstrate a skill rarely required on the job in a high-stress environment, where it is difficult for a candidate to accurately prove their abilities. I think it's fundamentally an unfair thing to request of a candidate."
In December 2015, Meyers announced his retirement from the world of C++.
It looks like a classic quantitative developer, derivatives pricing position. There is an emphasis on high speed computing and parallel programming.We are looking for a new member to join a core Quant team focusing specifically on high performance computing.
Essential skills and qualifications:
- 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.
- 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.
- 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.
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.
I'd say it's not the classical derivatives pricing position per se, as the term "core" usually means that your clients are other quants, not the trading desk itself. But yes, as you said, a classical quantitative developer position (with a higher bar than the typical LinkedIn "quantitative developer" whose quantitative peak is linear regression on spreadsheets). It sounds like a fine way to start a quant career.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?
...belated thanks, I have quoted you extensively in the cover letter.
Very good for C++ but a bit late, Fortran got coarrays hardcoded way before.OpenMP is certainly good for the concepts but is getting a bit long in the tooth (VS only supports v 2.0). C++ 11 has thread and tasks/futures. Just saying.
And a C++ developer who is afraid of pointer sounds a bit odd.
Design Patterns == GOF