At Gambit, we’re pretty passionate about the tools we use. We like to keep up-to-date with new tech and aren’t afraid to try new things out if they suit our needs.
A lot of our systems are written in the general purpose high-level language, Python. Its straightforward syntax makes it excellent for rapid prototyping.
The core of our system is written in Erlang. The Erlang (BEAM) VM has excellent concurrency features which were developed for its original application in large telephony systems. This concurrency framework is based on an actor model with immutable data. It’s massively scalable and excellent for large real-time systems such as ours.
Due to strict performance requirements, Gambit’s developers often push the BEAM VM to its limits. As a result, our Erlang often looks different to what you’d see in a textbook, or even a more traditional Erlang system.
As it’s hard to achieve good performance without adequate monitoring, our custom stack sports some features that we’ve never seen in either open source or proprietary offerings.
Having said that, prior experience in Erlang or other BEAM-based languages is not required. Most new recruits don’t have previous Erlang experience, and we’re more than happy to teach the right candidate on the job.
Our strategies and critical path components are written in C++ which affords us a high level of control for optimal performance. Always using the latest compiler allows us to use new features and lean on an established ecosystem with libraries, like xtensor.
Many of our projects include a web-based component. We have some public-facing products which deploy to the web and we also use private websites as interfaces for our internal projects. We use WebSockets protocol for communication between our front and back ends, and React to build our frontends. The backends are mostly written in Python and communicate with our core Erlang system using TCP sockets.
Gambit statisticians make good use of modern open source data analysis technologies. The core of our analytic work is done using the R statistical computing environment and the Python data ecosystem (IPython notebook and pandas) but our analysts are free to use the tools that make them most productive. Recently we’ve found a lot of value in Julia and F# as well as fast Monte Carlo simulations written in C.
Gambit believes that open source software is better software. Our system is built on open source wherever possible and when we fix problems in open source projects we push our changes back to the world. Projects the team has contributed to include Psycopg, PyPy, Tulip and AngularJS.
Although our existing system is largely written in Python, C++, and Erlang we are not committed to using those languages for all our projects. Smaller components of our system have been written in a large variety of languages, including C, Go, and Java.