Position: Java Middle/Senior Software Engineer
Company: Грошик
Category: Java
Experience required: 3y
English level: fluent

Our client is a cross-border digital payments service that provides international money transfer and remittance services in more than 130 countries and over 70 currencies. 
The company was one of the first online money transfer startups to focus heavily on mobile-to-mobile money transfer. From the outset, on the sending side the Company has been 100% cashless. For those receiving money, the Company offers a wide range of options including bank deposit, mobile money, mobile airtime top-up and cash collection. 

**The Challenge **
The Client is building awesome product which makes life of many people around the world much easier. Sometimes this is the only way to support their family and transfer money.  
Client’s Product Management team constantly works to design the most valuable features and continue successful global product expansion. To complete this work our client utilizes the best practices in the area of product management and product design, like Design Thinking framework. As a part of the engineering team you will need to follow this framework and implement new features following Scrum development process. They are using agile-based iterative approach for developing application based on product roadmap and features validation on a market.  
The program involves more than five teams working with multiple technological stacks. There are quite a few interesting technology challenges that our teams are solving today. Among them:  
•	high load, complex logic executed real-time or near real-time
•	focus on reducing latency at the same time keeping the high reliability of the system
•	complex data management patterns and structures involving caching, multitenancy, sharding, etc.
•	complex and sophisticated API management solutions 

**What we are looking for:**
A Senior Java Software Engineer to join the team of Java Engineers in the Program consisting of multiple teams working across multiple technology stacks. You will implement and maintain Java components and frameworks throughout the software development lifecycle along with your team.  
You are the candidate having: 
•	Problem-solving skills 
•	Strong communication skills and good English 
•	Good mentorship skills and experience of being a mentor 
•	Proven experience as a Java Software Engineer, Java Developer or similar role (4-5+ years of experience at least at 3 projects) 
•	Expert understanding of OOP and AOP 
•	Expert understanding of SOA, SOAP web Services, REST web services 
•	Expert in SQL DB 
•	Expert in MVC frameworks (Spring, Grails, JSF, JSP, Servlets, etc.) 
•	Expert understanding of App Servers and Servlet Containers (JBoss, WebSphere, etc.) 
•	Expert understanding of most popular CI/CD tools (Jenkins, Git, etc.)  
•	Expert understanding of build and dependency management tools 
•	Expert understanding of DB access patterns, models and tools (JDBC, JPA, Hibernate, etc.) 
•	Strong experience building Java EE applications (preferably using Java 8, but Java 7 is sufficient) 
•	Strong knowledge of No-SQL DB   
•	Strong experience with IoC (Spring, EJB, etc.)  
•	Strong understanding of services communication standards and tools (JMS, Kafka, ESB, etc.)  
•	Good knowledge of PostgreSQL, JUnit, bash, ant, Linux 
•	Nice to have understanding of Big Data frameworks and tools (Apache HDFS, Hadoop/Sparks/Hive/Flink, Cassandra, AWS DynamoDB, GCP BigTable and BigQuery, etc.) 
•	Knowledge of JavaScript would be a benefit  

**We offer:** 
•	Work in a friendly atmosphere with a proficient team :) 
•	Enable the possibility to work remotely 
•	Cutting-edge technologies  
•	Mentorship program  
•	Rotation program 
•	Support with time-off (vacation, sickness) and leaves (maternity/parental/adoption, kids care, sabbatical)