Man AHL: an intern’s perspective

I have been fortunate to have spent three months as an intern at Man AHL, a quantitative investment manager. Man AHL is well known for its creativity, innovation and technical prowess – but what is it like for an intern?

14 DECEMBER 2017

On day one, as soon as I collected my pass, I went up to Man AHL's floor and found my mentor waiting for me. He helped me set up my user account and dev environment. This entire process was very efficient. I'd heard horror stories from people on other internships where this took as long as a month! With setup complete, my mentor gave me an informal introduction to Man AHL, and how the different teams work. A little less than a week later, the other interns and I had a more formal introduction to Man AHL and Man Group, where we were shown presentations from each part of the business, providing an insight into how they work individually and together and the various ways in which they contribute.

After completing my induction, my mentor and I went on to discuss the project I would be working on during the internship. In our initial conversation, we scoped out the general goals of the project, what we wanted to gain from it and what the best first steps would be so that we started by moving in the right direction. We wanted to create a service that facilitated the collaboration and presentation of Jupyter notebooks. The goal was to create a platform that allows users to expose notebooks as web dashboards. Jupyter notebooks are easy to produce and so the platform allows users to create prototype web applications relatively effortlessly. After some initial analysis and investigation, the scope was focused from having a monstrously powerful platform, which was a version-controlled social network of notebooks, to a still-potent searchable interactive web dashboard service which anyone can contribute to through a repo managed by git.

The software development process at Man AHL follows many modern Agile practices, and the central git repository and pull requests allowed me to efficiently structure my changes and collaboration with my colleagues and mentor. The feedback that I received from pull-requests was an important part of the learning process during the internship.

We also had weekly meetings with the other interns, where we each had 5 to 10 minutes to present what we had been working on for the week to our mentors and our line managers. As much as this was intended to provide visibility for our progress and any potential blockers, I also found that it helped me structure my daily workflow as well. With the end of the week presentation in mind, it was easier to prioritise tasks.

Opportunity and Challenge

Working on my project was an exciting opportunity to create not only an interesting and useful tool, but also to learn a lot more about some of the frameworks and technologies needed to deliver it. I gained a deeper insight into how many of the core technologies actually work.

Until I joined Man AHL, I hadn't used Active Directory or JavaScript and learning both was itself a challenge. As part of my project, I also learned more about the LDAP protocol and using passportjs, a JavaScript auth library, and I wrote a small auth module for the dashboard service.

The entire client service was a Python Flask-based backend with a React ES6 frontend. Starting with no JavaScript experience whatsoever, I can say that using ReactJS and ES6, was a perfect introduction. React's familiar Component-based approach accelerated me up the learning curve, helping me to create a professional-looking, reliable UI experience.

My project also had to scale nicely for multiple clients, so to serve requests I decided to use Nginx as the web server to reverse proxy to the different services. I had some experience with Nginx before joining Man AHL, but I used this project as a platform to grow and extend that knowledge. A lot of the challenges that arose from this were more to do with configs not behaving as I expected them to, but breaking things down and growing the config incrementally definitely helped.

In technical terms, the largest challenge was getting Docker to behave on CentOS. Developing on Arch/Ubuntu at home, I find controlling Docker to be relatively painless, because I'm usually the only one using that machine and have root access. In an enterprise environment, the setup was naturally more bespoke and involved. In my case, I found that the Docker images that accumulated during the development process were taking up a lot of memory. To resolve this, I ended up writing a small script to clear up my development environment regularly. The script had to delete all my container images, any stopped containers, any dangling images and any dangling volumes, all while making sure not to delete any other running containers for any other projects running on the same machine. Needless to say, I learned a lot more about how Docker works and how well-constructed Dockerfiles can significantly reduce the memory footprint.

Final thoughts

The time I spent at Man AHL gave me an insight into why the firm is so good at what it does. Beyond hiring high calibre people, it invests heavily in the employee experience with a lot of extra classes, seminars and social events. Man AHL takes a collaborative, performance-first approach. No matter the problem, there is always an expert at hand. The dedication they have to quality-driven development was a pleasure to witness – it has been a wonderful experience.

Apply for a Summer Technology Internship

Man AHL is offering summer technology internships, which run for 8-12 weeks, based in our head office in London. This is a great opportunity to join one of the most prestigious tech teams in systematic trading. To learn more about the internship opportunities and to apply, please visit our careers site

Back to Technology

Latest Technology articles

How do you perform logging in software that represents a large mathematical model? If the model isn't behaving as expected, is it the code or the data that's at fault?

Technology Team

At AHL, automated testing is a key tool to help us produce high quality code. For our Python based tests we rely heavily on Pytest.

Technology Team

Important information

Opinions expressed are those of the author and may not be shared by all personnel of Man Group plc (‘Man’). These opinions are subject to change without notice, are for information purposes only and do not constitute an offer or invitation to make an investment in any financial instrument or in any product to which the Company and/or its affiliates provides investment advisory or any other financial services. Any organisations, financial instrument or products described in this material are mentioned for reference purposes only which should not be considered a recommendation for their purchase or sale. Neither the Company nor the authors shall be liable to any person for any action taken on the basis of the information provided. Some statements contained in this material concerning goals, strategies, outlook or other non-historical matters may be forward-looking statements and are based on current indicators and expectations. These forward-looking statements speak only as of the date on which they are made, and the Company undertakes no obligation to update or revise any forward-looking statements. These forward-looking statements are subject to risks and uncertainties that may cause actual results to differ materially from those contained in the statements. The Company and/or its affiliates may or may not have a position in any financial instrument mentioned and may or may not be actively trading in any such securities. This material is proprietary information of the Company and its affiliates and may not be reproduced or otherwise disseminated in whole or in part without prior written consent from the Company. The Company believes the content to be accurate. However accuracy is not warranted or guaranteed. The Company does not assume any liability in the case of incorrectly reported or incomplete information. Unless stated otherwise all information is provided by the Company. Past performance is not indicative of future results.

Please update your browser

Unfortunately we no longer support Internet Explorer 8, 7 and older for security reasons.

Please update your browser to a later version and try to access our site again.

Many thanks.