The Two Sigma Securities Integration (TSINT) focus group deals with the Two Sigma trading system as a whole, and is tasked with making the system simple, unified, runnable and reusable. TSINT's general architecture and focus is described here. If you think this sounds cool, you may be a good fit.
As an engineer on TSINT, you will work on many systems and technologies throughout the company to make the trading system better as a whole. Your work will be significantly self-directed, collaborating with many other teams to make improvements, depending on what areas you judge will give the best reward for investment.
You will work to improve the whole trading system, by:
Some skills/experience that would be useful, and why we want them, in descending order of importance:
|Linux userspace programming
|Linux is the common standard that all components interact within
|Type systems to organize complex systems
|We like types
|That's one of our core design principles
|Contributing to open source
|We open source wherever possible, and our model is open-source inspired
|Working with other teams on components
|That applies to almost everything we do
|Writing reliable integration tests
|We spend much time helping other teams write integration tests for the system
|Property-based testing, fuzzing, etc.
|For integration testing the system
|C, C++, Java, Rust, System Verilog, Python
|You'll need these to work with components
|Python, with type annotations and async
|You'll need it to work with the single-program system and component libraries
|Since we often need to understand why things are the way they are
|Benchmarking and optimizing systems
|We want the system to start up and run fast, including for tests
|Network protocol implementation
|We have lots of custom protocols between components
|The single-program system is concurrent Python
|Distributed systems in general
|That's what the system is
|Trading systems, finance in general
|That's the domain we're working in
|Creating web UIs
|It would be nice to have a web UI for the single-program system
|Network configuration, SDN
|It would be nice to do this with the single-program system
|Dynamic open systems, like Erlang, Lisp
|It would be nice to support modification of a live system better.
If you're interested, email me.