Distributed Systems Software Engineer

Engineering London, United Kingdom


Description

Distributed Systems Software Engineer

The Company

G-Research is a leading quantitative research and technology company. We use scientific techniques, big data and world-class technology to predict future movements in financial markets, and we develop the platform to deploy these ideas globally across multiple asset classes.

We offer a dynamic, flexible and highly stimulating environment where good ideas are prized and rewarded. Our working culture is positive with a fantastic central London location.

The Role

A number of challenging distributed systems software engineering roles are now open within the Data Processing & Data Infrastructure teams, specialist teams within the Data Engineering Group (DEG) responsible for understanding, processing and organising large research and realtime datasets. The teams process and stream tick data in real time to generate aggregates and advanced indicators from a variety of locations; import exotic datasets from third party providers (social media, economic data, graph data, geographical data, etc.); store it and serve it to the realtime and research platforms.

Within a collaborative environment, distributed systems engineers work closely with other teams within the business including those within the Production and Research divisions to deliver outstanding data resources, and are responsible for end-to-end design and implementation.

Primary responsibilities of the role will include:

  • Designing and implementing high-quality code to process and manipulate large datasets.
  • Building cutting-edge tools and infrastructure supporting core facilities in the firm.
  • Strong data management skills;  advising cross-team initiatives;  assessing frontier technologies
  • Occasional full stack engineering – even though we’re primarily a backend team.
  • Optimising data storage and modelling.
  • Responding to the ever-changing requirements of the business.

 

The platform that the firm provides is used 24 hours a day, and all engineers in the group have a responsibility to support production issues encountered in the data processing.  This will include a small share of overnight calls from within the firm.

The Individual

Applicants to the role will be intelligent, competent, and practical software engineers. They will be enthusiastic and have a genuine interest in the latest software technology.

Required skills & experience:

  • A proven ability to engineer high-quality software in an OO language.
  • An appreciation of good software architecture, CompSci fundamentals & data structures.
  • Demonstrable understanding of database design and use, or other data management techniques, both relational and non-relational.
  • Experience with SOA, distributed systems.
  • Experience of TDD and the ability to write clean code.
  • Experience of agile methodologies and a familiarity with retrospectives and continuous improvement processes.
  • A demonstrable desire to stay informed on the latest technologies and practices.
  • A keen interest in applying continuous delivery principles.

 

Financial experience may be useful but is not required.  Candidates from non-financial backgrounds are encouraged to apply.

Key technologies

Agile, TDD, SOA, Microservices, REST, EDA, Kafka, Sql, NoSQL, DDD, Event Sourcing, Stream Processing, Batch Processing