Position: Senior Java Developer
Company: Intersog
Category: Java
Experience required: 5y
English level: intermediate

We are looking for a **Senior Java Developer** with experience building high-performing, scalable, enterprise-grade applications. Joining Exadel, you will be part of a talented software team that works on mission-critical applications.

**About Our Customer:**
The customer is a leading provider of next-generation manufacturing and supply chain management solutions. They serve global manufacturing companies in six verticals: automotive supply, life sciences, consumer products, food and beverage, high tech, and industrial products. Cloud-based ERP solutions help manufacturers stay efficient and withstand disruption.  

**About Our Project:**
The main objective of the project is to shape up an approach and create a plan to migrate the present architecture to a new architecture that can not only retain the existing feature set, but also employ modern concepts (e.g., cloud services, microservices, etc.) in order to achieve better modularity, scalability, and other relevant industry-common benefits. The modernization will happen alongside codebase migration from Progress-based solutions to Java-based ones.

**Project Team:**
When you join our team, you'll immerse in a culture where teammates support each other to achieve better results. We believe that together we are better and can find brilliant solutions by sharing ideas.

**Current Project Stage:**
Pending a start of the implementation phase.

**Project Duration:** 
Planned approximate duration:  2-4 weeks for Discovery, 3-3.5 months for design & planning,  1-3 years (will be figured out during planning) on implementation.
 
**Requirements:**
- 5 years of experience in developing Java-based applications
- Knowledge of JPA, Hibernate, Spring toolset
- Experience with non-relational databases (MongoDB)
- Understanding of object-oriented programming
- Familiarity with various design and architectural patterns
- Knowledge of concurrency patterns in Java
- Knack for writing clean, readable Java code
- Understanding of fundamental design principles behind a scalable application

**Nice to Have:**
- Experience with Kafka

**English level:**
- Intermediate+ 

**Responsibilities:**
- Write well-designed, testable, and efficient code
- Contribute in all phases of the development lifecycle
- Ensure designs are in compliance with specifications
- Support continuous improvement by investigating alternative technologies and presenting them for architectural review
- Attend meetings
- Communicate with the customer on upcoming tasks and issues
- Develop new functionality and support existing ones, according to the customer's requirements