Senior Java Developer
MSK or Remote | full time | 300 - 500 т.р.
Ситибанк
We are currently building:
A new team that will be responsible for FX Risk platform. The team will be implementing new business-driven functionality, technical and regulatory-driven changes, QA Automation and DevOps. There is a set of old and new platforms that serve the Client’s FX business in 38 countries by providing the ability for real-time derivatives pricing, risk management and data analytics. New initiative is starting to replace a set of the existing risk applications with new generation ones with web-based UI, server side computing and grid technology, distributed in-memory solutions. The new application is going to serve traders, sales and external clients. Solution needs to be scalable to cover multiple locations and meet latency requirements.
We have three main challenges:
1. Performance: we calculate a lot of analytical numbers on our grid farm (10к+ CPUs), and to handle them quickly we have to keep them distributed in-memory caches. There are hundreds of gigabytes in-memory data that needs to be aggregated and cooked for user requests under one second. Knowing algorithms complexity is a must for us. Knowing how JVM/JMM/GC work is a must. Core Java is the main working tool that allows us to value or interpolate millions of trades under one second.
2. Capacity: This type of system is core to Investment Banking as a result it is super critical to have perfect stability, it is super critical to be able to scale quickly in case of volatility spikes on the market. No one needs a system that will not work during big events. That is why we do care about fault tolerance, we do care about the ability to deploy quickly, so use clouds, microservices and we try to have real continious delivery.
3. Business complexity: There are lot of complex things in this domain area, you will need to understand how all this works, how math models for risk computation are working. Sometimes you need to find workarounds in logic to be able to do things that at the very beginning looks impossible, like moving from O(n^2) to O(n) for some business problem. Apart from that, there are IT complexities that we can hide and improve not only for this exact project but for the whole bank.
We are looking to:
Build a strong team of professionals, with different skill sets.
It is really not important if you don't know how one or another library work, for us - Core Java(JVM,GC,JMM), DataStructures, Algorithms knowledge is far more important.
At the same time, it would be great if you have experience with things we are using: Kafka, Apache Ignite, Microservices, Docker, Distributed Computing, Protobuf, Netty, JS/React, Python. And also one of advantages is a good command in English ( to dealing with global colleagues & stakeholders)
Ping us, if you think these challenges are interesting for you...
Контакты:
@Savana87
