6 ms·
The culture shock you mention was very real. I joined in 2010 (when Athena was 3 years old) and left 8 years later in 2018. I remember my first few months unle
by stevesimmons 6y ago
The culture shock you mention was very real. I joined in 2010 (when Athena was 3 years old) and left 8 years later in 2018.
I remember my first few months unlearning normal Python and figuring out how to build the 'pixie graph', a lazily-evaluated Python DAG suited for calculating financial instruments. It took a while to get your head around this, but when you did it was a very powerful and productive way to building trading and risk management applications.
To get some sense in how this worked, here are two public projects on github with good introductions:
* https://github.com/timkpaine/tributary https://github.com/timkpaine/tributary
* https://github.com/janushendersonassetallocation/loman https://github.com/janushendersonassetallocation/loman
- doublesCs 6y agoHi Steve, thanks for your talk and for the links. Are those repos pixie dependencies? Or are you saying that pixie works like those repos?
- stevesimmons 6y agoThey are "toy" projects illustrative of the general concepts. ("toy" as in smaller in scope; one of the two is by a former colleague). JPM's actual pixie code is proprietary, extremely performant after 12 years of pushing into bigger and bigger scale problems, and is definitely not on GitHub!
- timsworkaccount 6y agoI really like this video for explaining the DAG - https://www.youtube.com/watch?v=lTOP_shhVBQ https://www.youtube.com/watch?v=lTOP_shhVBQ
- FabHK 6y agoSounds like a descendant of Goldman Sachs‘s SecDB/Slang with automatic dependency graph building. Did it have purple children (nodes whose value influences the graph structure) and twiddle scopes (modified copies of subtrees)? :-)
- stevesimmons 6y agoYes indeed. Quite a few of Athena's early developers were from GS. I've not heard the term "twiddle scopes" before; in Athena it is "tweaking".
- FabHK 6y agoCome to think of it, it might have been a “diddle scope” (I’m not a native speaker). For finance applications (risk) the whole concept works quite well, doesn’t it - combining the natural advantages of code and Excel.
- adamdonahue 6y agoIt was indeed "diddle," not "twiddle." At BAML, it's a "tweak." Beacon Platform is another implementation by the same team (but with support for the public cloud, and many more advanced features, I believe, including tighter web integration). I think it uses the terminology "bind." [Disclosure: I was part of the Quartz Core team in 2011/2012.]
- eru 6y agoI was positively surprised that Slang was actually quite usable. I had expected much worse. I suspect the Common Lisp influence was beneficial. The weirdest thing, language-wise, that I noticed was scoping. It's neither dynamic nor static scoping, but weird scoping. (But there are work-around to get something like static scoping.) Outside of the language, the whole CVS-based version control and review process was weird. But understandable as a product of the late 1990s, when review-before-going-into-permanent-history must have been way ahead of its time.
- sweeneyrod 6y ago> The weirdest thing, language-wise, that I noticed was scoping. Not the spaces in variable names?
- 6y ago
- infinite8s 6y agoMan AHL also had a version that worked on top of nodes representing timeseries: https://github.com/man-group/mdf https://github.com/man-group/mdf
- edparcell 6y agoLoman author here. Thank you very much for the mention. Amazed that I never heard of Athena or pixie graphs. Our intention with Loman was to create a library scoped for a single process - we looked at the possibility of creating a system responsible for executing much larger graphs on a real-time ongoing basis, but it felt like a larger project than we'd be able to execute well. It sounds like Athena was that, and it worked well, subject to being a culture shock for people coming into it?
- infinite8s 6y agoA similar library from another asset manager - https://github.com/man-group/mdf https://github.com/man-group/mdf. Although MDF seemed to work at the level of timeseries instead of scalar values.