Position: Java Backend Engineer Developer (DDD, Microservices)
Company: esurance AG
Category: Java
Experience required: 3y
English level: intermediate

esurance is a Swiss fintech company with headquarters located in Zurich and IT development office in Kyiv. Our main product is an insurance digitalisation platform that connects small businesses, insurance companies and business application providers. We create one digital entry point to the insurance market completely removing the need to work with paper documents (client-banking solution for insurance). We are backed by major players on insurance market in Switzerland. 

**We use:**
Multi-layer architecture, DDD, microservices, multi-tenancy
Postgres, ElasticSearch, RabbitMQ
BPM workflows (zeebe), Keycloak
Gitlab CI/CD, test automation 
K8s, Helm, Rancher

**We value:**
Clean code and good design. We use DDD to control the internal complexity of the application. 

Constant improvements. We hate legacy. If you have to touch the legacy code leftovers, you’ll have time to refactor it. 

Ownership. Your scope of influence is the whole project including the business side.
 
Communication. The tech team gives input from the first stages of feature planning and we create feedback loops with the product team through the whole development lifecycle. 

Documentation. We use documentation first approach. Our goal is to have deliverables fully defined at least 2 sprints ahead. 

**Responsibilities:**

Design of the new functionality and redesign of the existing one using DDD and microservices. 

Reimplementation of legacy PHP systems.

Migration from multi-layer monolithic architecture (based on PHP) towards SOA. 

Design and implementation of multi-tenancy solutions (SaaS). 

Design and implementation of the platform security architecture (data compartmentalization, multi-tenancy, RBAC + ABAC, etc). 

**Requirements:**

3+ years of Java and Spring experience.

Excellent OOP and OOD skills. 

Experience with SOA and distributed systems (understanding of eventual consistency challenges, identity propagation, communication patterns, etc.) as a plus. 

User-level experience with Kubernetes. 

Experience with PHP as a plus.  

**We offer:**

Work in a product company. Kyiv R&D office is an integral part of esurance and the largest team in the company.    

An opportunity to take part in the implementation of microservices architecture and real-life DDD implementation. 

To work with a strong technical team and cutting edge technology.  

Dynamic project in the fintech industry that creates real market value.

Open-minded and result-oriented culture. 

Nice office near the city center with open-air terraces, playrooms, etc. 

Individual English classes upon needs.