They are a newly formed team with a presence in both their London and New York offices. Their team designs and builds scalable infrastructure and tools to ingest trading data from several different asset classes such as Fixed Income, FX, and Equity into a trade store based on PostgreSQL/Citus. They already store more than 8 years’ worth of trading data and process more than a million events on average every day! On top of the ingestion framework, they develop a data toolkit that will allow internal and external clients to query and analyze their trading data, compile reports, or test trading models.
They collaborate closely with other teams in the larger Electronic Trading department and work daily with their business counterparts to move the platform forward and influence its direction. They are dedicated to sharing their knowledge regularly and creating a collaborative environment.
What’s in it for you?
– Most of their system is written in C++ and Python on Linux and the occasional UI work is done in JavaScript.
– They put emphasis on doing things right, so you’ll be using industry best practices for testing, automation, and CI/CD (CMake, Google Tests, Pytest, Jenkins, Git, etc.).
– They own the full development process – from gathering requirements to testing, rollouts, and maintenance.
– They rely heavily on database technologies such as PostgreSQL/Citus, Greenplum and internal database solutions (recently open-sourced Comdb2)
– They provide Jupyter notebooks as a sandbox for their users
– They work with Kafka and similar internal message queuing solutions
– They use Splunk, Humio, and Grafana for log collection, dashboards and alarming
They’ll trust you to:
– Work closely with their Product partners to flesh out requirements and collaborate with other Engineering groups
– Design, build and release new features to their clients whilst keeping the system as stable as ever
– Always keep in mind scalability when developing solutions
– Be a key contributor to the team, drive the incorporation of new technologies, improve development practices and share your knowledge to drive the growth of the team
– Be creative to solve highly complex problems while understanding the scope and impact of your work
You’ll need to have:
– Expertise in C++ and/or Python
– An aptitude for problem-solving, and a desire to build software solutions to complex business problems with experience getting involved in the full software development lifecycle
– Experience managing projects or working with multiple stakeholders to deliver business value
– A team player attitude and collaborative approach to development
– Commitment to building quality software through tests
– Passion to drive technology and product evolution
– Experience applying good software engineering practices while delivering production-quality systems to clients
– Good communication skills to work with other teams and explain technical problems to non-technical stakeholders
– An open mind to using new technologies
They’d love to see:
– Experience in database technologies such as PostgreSQL, Citus, Greenplum
– Expertise in profiling and improving performance
– Experience working with a distributed system and an understanding of its unique challenges
– Experience with high volume, high availability distributed systems
– Experience with messaging queues
– Experience with multi-threaded applications
– Experience with data science frameworks and libraries
Interview process
They believe interviewing is a two-way street. It’s a way for them to get to know you and your skills, and also a way for you to learn more about the team, their technical challenges, and what you’d be working on. The content of each interview round will be tailored to the role and your background, but the general framework can be found
here: https://www.bloomberg.com/careers/technology/engineering/software-engineering-experienced-hire