Posted:
9/25/2024, 12:18:55 PM
Location(s):
London, England, United Kingdom ⋅ England, United Kingdom
Experience Level(s):
Expert or higher ⋅ Senior
Field(s):
Software Engineering
Workplace Type:
Hybrid
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 SpringBoot 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:
Development of high-quality software, emphasizing simplicity, maintainability, testability, and reuse.
Identifying and implementing automation opportunities around testing, monitoring, deployment, and any other manual operations
Participation in code and design reviews.
Thorough testing including test automation and performance/load testing.
Providing support and assistance to clients
Contributing to architectural standards, development best practices, and promoting adherence to these standards.
Required Skills:
Expert Java programming skills, with extensive experience in industry.
Extensive experience with the Spring and Spring Boot frameworks; common build tools such as Gradle and Maven; and testing frameworks such as JUnit.
Experience with asynchronous programming using promises/futures (e.g., CompletableFuture). Extensive experience with multi-threaded applications.
Deep understanding of event-driven and streaming microservices. Extensive experience using Kafka, leveraging Kafka Connect and Kafka Streams.
Experience with container technologies such as Docker, Podman, and Kubernetes, as well as package managers like Helm.
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.
Working knowledge of SQL and NoSQL databases such as Oracle and MongoDB
Understanding of agile methodologies and experience using developer tools such as GitHub, Bitbucket, JIRA, Artifactory and Jenkins.
Experience in analysing application metrics using observability tools such as Splunk, Elasticsearch, and Grafana.
Advocate for industry best practice, especially with regards to clean code, testing, continuous integration, and deployment.
Product-focused, with the capability to interact with clients and deliver results, taking ideas to production.
Demonstrates clear and concise written and verbal communication consistently.
Desirable Skills:
Investment banking / market risk computation experience.
Theoretical and/or practical experience with graph theory algorithms.
Familiarity with the Apache Ignite or Redis for in-memory caching.
Familiarity with the Apache Avro.
Experience with AMQP message brokers such as RabbitMQ and Solace
Experience with the Vert.x framework.
Experience with the Cucumber testing framework.
Experiencing writing Gradle plugins and using the Groovy language.
Experience with common scripting languages such as Python and Bash.
Experience with designing and implementing RESTful services.
Education:
Bachelor’s degree or equivalent experience.
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
Website: https://www.citigroup.com/
Headquarter Location: New York, New York, United States
Employee Count: 10001+
Year Founded: 1812
Last Funding Type: Post-IPO Equity
Industries: Banking ⋅ Credit Cards ⋅ Financial Services ⋅ Wealth Management