Leave us your email address and we'll send you all the new jobs according to your preferences.

Senior Software Engineer (Back-End), Vice President

Posted 17 days 12 hours ago by Citigroup Inc.

Permanent
Full Time
I.T. & Communications Jobs
London, United Kingdom
Job Description

Team: XiP CalcGraphs

Location: London

XiP is building a next-generation cross-asset calculation system for Citi trading desks and enterprise users in the largest global financial markets and exchanges in New York, London, and other major financial hubs.

Our team owns the XiP Calculation Engine, an asynchronous Java library leveraging Spring Boot and Vert.x to execute quantitative risk graphs. These graphs can be complex in nature, and we apply various techniques such as distribution, in-memory caching, and data optimisation to achieve the best possible performance.

The Calculation Engine is deployed to OpenShift and Amazon's Elastic Kubernetes Service. An important initiative in 2025 will be onboarding Google Kubernetes Engine to further expand our coverage. Our systems scale on-demand, and we run tens of thousands of replicas of the Calculation Engine across all asset classes.

To support the Calculation Engine, we operate an Apache Ignite in-memory cache used for passing objects between pods for parallel computation, and our recent focus has been around emitting metrics from the Calculation Engine to put more data in the hands of our clients. In processing these metrics, we use Kafka Streams for aggregation and Kafka connectors to persist the data.

As a Senior Developer, you will be responsible for leading the design and implementation of innovative solutions, as well as mentoring junior developers. The role is hybrid, based in Citi's London Innovation Lab office, a space set up specifically for tech-focused teams to be co-located.

Key Responsibilities:
  1. Development of high-quality software, emphasizing simplicity, maintainability, testability, and reuse.
  2. Identifying and implementing automation opportunities around testing, monitoring, deployment, and any other manual operations.
  3. Participation in code and design reviews.
  4. Thorough testing including test automation and performance/load testing.
  5. Providing support and assistance to clients.
  6. Contributing to architectural standards, development best practices, and promoting adherence to these standards.
Required Skills:
  1. Expert Java programming skills, with extensive experience in the industry.
  2. Extensive experience with the Spring and Spring Boot frameworks; common build tools such as Gradle and Maven; and testing frameworks such as JUnit.
  3. Experience with asynchronous programming using promises/futures (e.g., CompletableFuture). Extensive experience with multi-threaded applications.
  4. Deep understanding of event-driven and streaming microservices. Extensive experience using Kafka, leveraging Kafka Connect and Kafka Streams.
  5. Experience with container technologies such as Docker, Podman, and Kubernetes, as well as package managers like Helm.
  6. Experience in developing enterprise-level applications for container platforms, such as the public cloud Kubernetes services in Amazon Web Services / Google Cloud, or on-premise platforms such as RedHat OpenShift.
  7. Working knowledge of SQL and NoSQL databases such as Oracle and MongoDB.
  8. Understanding of agile methodologies and experience using developer tools such as GitHub, Bitbucket, JIRA, Artifactory and Jenkins.
  9. Experience in analysing application metrics using observability tools such as Splunk, Elasticsearch, and Grafana.
  10. Advocate for industry best practices, especially with regards to clean code, testing, continuous integration, and deployment.
  11. Product-focused, with the capability to interact with clients and deliver results, taking ideas to production.
  12. Demonstrates clear and concise written and verbal communication consistently.
Desirable Skills:
  1. Investment banking / market risk computation experience.
  2. Theoretical and/or practical experience with graph theory algorithms.
  3. Familiarity with Apache Ignite or Redis for in-memory caching.
  4. Familiarity with Apache Avro.
  5. Experience with AMQP message brokers such as RabbitMQ and Solace.
  6. Experience with the Vert.x framework.
  7. Experience with the Cucumber testing framework.
  8. Experience writing Gradle plugins and using the Groovy language.
  9. Experience with common scripting languages such as Python and Bash.
  10. Experience with designing and implementing RESTful services.
Education:
  1. Bachelor's degree or equivalent experience.
  2. Master's degree in an engineering or science subject preferred.

Exceptional candidates who do not meet these criteria may be considered for the role provided they have the necessary skills and experience.

Valuing Diversity: Demonstrates an appreciation of a diverse workforce. Appreciates differences in style or perspective and uses differences to add value to decisions or actions and organizational success.

Citi is an Equal Opportunities Employer.

Job Family Group: Technology

Job Family: Applications Development

Time Type: Full time

Citi is an equal opportunity and affirmative action employer.

Qualified applicants will receive consideration without regard to their race, color, religion, sex, sexual orientation, gender identity, national origin, disability, or status as a protected veteran.

Citigroup Inc. and its subsidiaries ("Citi") invite all qualified interested applicants to apply for career opportunities. If you are a person with a disability and need a reasonable accommodation to use our search tools and/or apply for a career opportunity review Accessibility at Citi .

View the " EEO is the Law " poster. View the EEO is the Law Supplement .

View the EEO Policy Statement .

View the Pay Transparency Posting .

Email this Job