Senior Core Java Developer - London Overview Citi is a world-leading global bank. We have approximately 200 million customer accounts and a presence in more than 160 countries and jurisdictions worldwide. We provide consumers, corporations, governments, and institutions with a broad range of financial products and services, including consumer banking and credit, corporate and investment banking, securities brokerage, transaction services, and wealth management. We enable clients to achieve their strategic financial objectives by providing them with cutting-edge ideas, best-in-class products and solutions, and unparalleled access to capital and liquidity. Role Overview/What will you do: This is a developer position, for a hands on Java coder with solid experience of Java, Spring and relational databases. Candidates are expected to write high quality, clean code with robust tests.
- Manage multiple teams of professionals to accomplish established goals and conduct personnel duties for team (e.g. performance evaluations, hiring and disciplinary actions)
- Provide strategic influence and exercise control over resources, budget management and planning while monitoring end results
- Utilize in-depth knowledge of concepts and procedures within own area and basic knowledge of other areas to resolve issues
- Ensure essential procedures are followed and contribute to defining standards
- Integrate in-depth knowledge of applications development with overall technology function to achieve established goals
- Provide evaluative judgement based on analysis of facts in complicated, unique, and dynamic situations including drawing from internal and external sources
- Influence and negotiate with senior leaders across functions, as well as communicate with external parties as necessary
- Appropriately assess risk when business decisions are made, demonstrating particular consideration for the firm's reputation and safeguarding Citigroup, its clients and assets, by driving compliance with applicable laws, rules and regulations, adhering to Policy, applying sound ethical judgment regarding personal behavior, conduct and business practices, and escalating, managing and reporting control issues with transparency, as well as effectively supervise the activity of others and create accountability with those who fail to maintain these standards.
Key Skills and Experience Relevant experience includes all of the below:
- Solid experience of a modern long term support version of Java - preferably 17 or 21
- Object oriented design
- Lambdas & streams
- Executors
- Generics
- Expert use of source control using Git, experience with Pull Request workflow, and a solid understanding of safe branching and merging practices ideally using trunk based development, or alternatively using well known branching strategies such as Gitflow
- Extensive experience of continuous integration using TeamCity, Jenkins or Tekton
- A good experience of writing unit tests with JUnit, preferably JUnit5, good experience of Spring testing support, ideally experience of other testing frameworks such as RESTAssured, Selenium, Mockito. Candidates should be focused not on coverage numbers but on high quality, stable tests
- An understanding of static code analysis using Sonar and other linting tools, and a relentless drive to keep code quality issues to a minimum
- A good understanding of dependency management using Gradle or Maven,
- solid familiarity with binary repositories such as Jfrog Artifactory,
- an understanding of the tooling required to detect and remediate out of date dependencies,
- and an understanding of the potential vulnerabilities introduced by third party opensource software.
- Solid experience with Spring framework including SpringBoot, Spring JDBC
- Understanding of TLS, certificate management, and secrets management solutions such as Hashicorp Vault, Cyberark
- Experience with designing and building OpenAPI endpoints
- Experience of integrating with messaging technologies such as Solace, Kafka, EMS
- Experience with relational databases, preferably Oracle; good skills at integrating SQL into Java applications using a preferred framework (Spring JDBC, Hibernate etc) and managing database related changes with Flyway or a similar tool
- Experience with building and running containers using Docker / Podman / containerd
- Experience with cloud platforms such as Kubernetes and/or OpenShift
- Good Linux skills
------------------------------------------------------
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