Job Purpose :
We are looking for an expert Java Developer to join a new team building high-performance services to power our financial markets franchise.
You will work closely with product owners and team members to design, build and integrate targeted client solutions into one of our existing well-
supported platforms, or through new channels as required. To meet client demand, we measure our project lifecycles in months, not years, presenting many opportunities to take on new challenges.
Job Background / context :
We believe the future’s here. Right here with us. Home to where we define, ideate, develop and distribute production-ready financial solutions of far-
reaching impact. And right now, the door’s open to direct the future of our technology for a truly global client base. This means collaborating with the keenest minds in data science, big data, software engineering, web development, UX design and more.
Doers looking to bring the next bold ideas to life for a fascinating array of clients - investing, trading and transacting at the forefront of change in markets and economies the world over.
If you have this kind of vision, capable of seeing ahead, of developing a clear path forward in a quest to try the as yet untried, here is the opportunity.
In a supported, resource-rich, vibrant co-working environment, part of an ecosystem of globally interconnected labs, realising a broader mission of enabling growth and economic progress on a scale you won’t find anywhere else.
Welcome to our London Innovation Lab.
Key Responsibilities :
Design, build and enhance high-performance, data-intensive applications and services for our clients
Work closely with product owners to develop client solutions for new and existing channels
Grow our catalogue of common assets, such as code templates, libraries, utilities, services, etc.
Skills and Qualifications :
Excellent understanding of core Java SE libraries such as java.lang, java.util, java.io, java.net, etc.
Proficient understanding of new features in Java 8 and above, such as lambda expressions, functional interfaces, etc.
Solid understanding of fundamental data structures and their application in Java, including primitive types, arrays, strings, lists, stacks, queues, binary trees, heaps, hash tables and binary search trees
Good understanding of fundamental algorithms and their runtime complexity in Java, including sorting, divide-and-conquer and graph modelling algorithms
You have a solid grasp of SOLID principles
Good understanding of the class loading mechanism in Java
You know how to get Log4J, Logback, SLF4J, etc. to work together in perfect harmony
Expertise in other JVM-based languages, such as Clojure, Scala and Kotlin, is highly desirable
Expertise in message brokers, such as Apache Kafka, RabbitMQ (AMQP), JMS, etc.
Expertise of streaming platforms, such as Apache Spark Streaming, Samza, Storm, etc.
Good understanding of relational, document and / or graph data models and query languages
You have strategies for meeting non-functional requirements, such as security, reliability, scalability and maintainability
You have very high development standards, especially for code quality, code reviews, unit testing, continuous integration and deployment
You know why you eschew object-oriented programming in favour of functional programming, or vice-versa
Great understanding of many types of database systems, spanning SQL, NoSQL (Graph, KV, Columnar), Object Storage, etc.
You are proficient in git, of course
You have made a contribution, no matter how small, to open source software
You may have stood-up an app, commercial or personal, on a cloud platform, such as AWS, GCP, Azure, etc.
You may have containerized an app and used a container management platform, such as Kubernetes, OpenShift, Docker Swarm, etc.
You are very competent with your OS command line - Linux and / or Microsoft Windows
You apply a range of logical techniques to problem-solving, such as the use of concrete examples, case analysis, brute-
force, iterative refinement and reduction
You are an adaptable, resourceful, well organised team player with a strong work ethic
You agree that verbal and written communication skills are vital
You are eager to grow your skills
You are educated to degree level or above
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 organisational success.
Citi is an Equal Opportunities Employer