Position: Java/Kotlin developer - banking project
Company: Diceus
Experience required: 5y
Category: Java
English level: upper
Published: 2022-10-01T00:00:00+03:00

**Project outline**
We are ready for a new way of banking: non-adversarial, and friendly, with your interests being our number one priority. You will be able to control the way you bank, rather than being dictated to by faceless corporations that do little more than help themselves to money that isn’t theirs. No wonder people don’t like banks. Fast, easy, convenient – that’s about us. We are experts in customer service who also happen to look after your money. For us, the customer is always priority number one, which might sound like a pipe dream but with us it’s non-negotiable. You are our primary focus, this is banking re-invented. 
Our Strategy & Digital Group leads the most exciting and cutting-edge programs for the Bank. We are an eclectic mix of individual personalities unified by the simple ambition of being the best in everything that we do.

**Responsibilities**
- Your focus will be on server-side engineering, designing and building performant cloud-native microservices with clean APIs
- Work with your team to do what’s needed to deliver the product
- Develop “T-shaped” skills, working with your team to do what’s needed to deliver the product. We don’t want rigid organization structures and you’ll be working closely with product owners, designers, and other experts in their fields
- Build digital banking services and applications

**Requirements**
- Proven track record of collaborating with non-technical operations staff to resolve business issues
- Good communication and documentation skills for creating incident reports
- Experience supporting server-side JVM applications with Spring Boot in production. We use Kotlin, but would be happy to work with engineers that have only used Java previously
- Experience in Unit Testing with JUnit5, Mockk/Mockito and in Integration, Component and End-to-End Testing
- Deep experience in debugging distributed systems in large banking organizations
- Experience building full-stack web applications in a high-level programming language. You must understand the lifecycle of an HTTP request
- Experience supporting critical systems using an RDBMS handling hundreds of transactions per minute. We use Oracle DB in production, but would accept other mainstream RDBMS
- Knowing your way around ORM/Query Builders (we use JOOQ)
- Experience using database Migration Tools e.g. Flyway, Liquibase
- Experience supporting 24/7/365 critical systems. You must have participated in an on-call rotation or been a full-time SRE
- Deep knowledge of instrumentation and monitoring distributed systems. We use Prometheus to monitor our systems, but experience with Grafana, and Loki is appreciated as well
- Knowledge of retail banking back-office operations
- Basic knowledge of Docker and Kubernetes as a development environment
- Exposure to functional programming (e.g. Vavr, result4k)