My name is Robert. I recently graduated from the University of Cambridge where I studied Natural Sciences, specialising in Astrophysics.

I am interested in finding intuitive quantitative explanations for complex phenomena, even if those intuitive explanations concede a lack of determinism. It’s always nice to find order in complexity, but it may very well be complex all the way down. I’m a logical person who holds rationality dear, though I’m equally interested in the limits of rationality and the need to make decisions under epistemic uncertainty, accounting for “model risk”.

There was a time when I wanted to be a physicist, but “messy” systems like financial markets attract my attention nowadays. You can’t understand these systems on a blackboard; you have to get your hands dirty and dive into the data. Programming is a key weapon in this endeavour.

Get in touch

If you have a question about PyPortfolioOpt, please raise an issue on GitHub


Whenever I need a computer to help me, I first turn to python. I’ve been using python for about 8 years, and its initial charm has never really faded. With its pseudocode-like syntax and clear philosophy (type import this into a python console), it lets you get your ideas into a computer with relative ease. Of course you aren’t going to get C-like speeds natively, but nowadays there are options like cython or Numba which can alleviate this to a certain extent.

R probably has a better statistics ecosystem – there is an R implementation for basically any useful theorem/procedure in statistics. But I think that its lead over python will narrow over time as more and more people re-implement R packages in python.

I didn’t learn Java by choice – it is the language that Cambridge teaches first-year computer science students. It’s a fantastic language to frame discussions of OOP and design patterns, but writing Java just doesn’t spark joy for me. That being said, for things like mission-critical enterprise codebases, I can certainly see the appeal of Java’s verbosity and ‘safety’.

Julia is a language that I’ve become obsessed with recently. The headline pitch is that it offers python-like syntax with C-like speeds. But there are many other reasons why Julia is a joy to code in: a wonderful packaging system (blows pip out of the water), really cool metaprogramming functionality that allows for neat implementations of autograd etc, excellent integrations with other languages via e.g PyCall or RCall.


Financial markets are interesting to me philosophically because they encode the beliefs of many different agents into tradable quantities. Practically, I haven’t been able to find an area that has the same mix of programming, world affairs, mathematics, psychology, betting. If we define rationality as the goal of maintaining an accurate set of beliefs about the world and updating these beliefs in accordance with Bayes theorem, then trading on financial markets is a pure expression of rationality – succesful betting requires calibration and courage.

I’ve previously worn both discretionary and systematic hats; I’m currently most intrigued by two specific areas areas:


I became fascinated by the crypto space in 2016 – it has been delightful to watch it morph and grow over the past few years. I spent some time as a blockchain consultant, focussing on the strategic aspects of blockchain for several South-East Asian companies, including a crypto exchange. While in university, I worked on a blockchain startup with some friends (which you can read about here).

As of late my interest has shifted towards crypto markets (as opposed to blockchain technology). I’m fascinated by the opportunities that arise in a liquid but not-entirely-efficient market, for example the crypto basis trade, as well as various aspects of DeFi.


Reading is such an important part of my life. I try not to limit my reading to specific subjects – instead, I continuously attempt to read about subjects that are new to me, such that I “know what I don’t know”. This also applies to a lesser degree with fiction, though I no longer bother trying to rationalise reading fiction. I happily concede that “I just enjoy it”.

You can read some of my book reviews here.

Check out this twitter thread for an explanation of my reading workflow.

Information diet

This section details some of the newsletters and podcasts I consume on a regular basis. Excluding twitter and reddit ;)


I’ve split up the podcasts I consume loosely based on subject (though there’s a lot of overlap). Within each section, the podcasts are in approximate descending order of how often I listen to their episodes etc.