Skill set: Java - Apache Kafka
- Hibernate
- NoSQL Databases
- REST
- Reactive programming
- Spring Boot
- Spring Core
Office presence: yes, 3 days a week
We are looking for a highly technically proficient Java software API/backend expert, the person who has the system type of thinking and the Solution Architecture mindset. You will work among high performing engineering, design, and product teams.
Key skills: - Overall 8+ years of internet-scale solution development (D3/D4)
- Must have experience in architecture design and improvement
- MUST have strong deep Java Core skills - Java Memory Model, Garbage Collection, Performance Optimization, Multithreading, Polymorphism, Java Security
- Experience to develop backend REST-API services
- Experience with microservices architecture based on Spring Boot
- Experience with AWS Lambda services integrated with Kafka and deployed on-prem via Kubernetes
- Good understanding of reactive approaches, experience with Vert.x would be a plus
- Ability to write clean, testable code focused on performance, ability to monitor the application and do performance testing using Java Flight Recorder
- Be familiar with Semantic versioning and conventional commits
- Demonstrated experience in Agile or Scaled Agile (SAFe) development, application design, software development, and testing
- Experience with contact center technologies, payment technologies, and financial systems will be a plus
- Excellent communication skills, flexibility, English - B2+/C1
- Leadership, good coaching, interpersonal and presentation skills
- System thinking, critical mindset, problem-solving, continuous learning
Job Responsibilities: - Serving as a core member of an agile team that drives user story analysis and elaboration, designs and develops software applications;
- Performing hands-on software development and testing, typically spending 90% of time writing code, API specs, conducting code reviews and testing in ongoing sprints, or doing proof of concepts/automation tools.
- Identifying new contact channel technologies to evaluate and implement into existing call management solutions.
- Driving consistent development practices - tools and common components
- Developing a deep understanding of tie-ins with other systems and platforms within the supported domains
- Identifying exciting opportunities for adopting new technology to solve existing needs and predicting future challenges
Technologies: Java 8, Spring Boot, Multithreading, JMX, NIO Netty, JDBC, Gatling, Drools, Vertex, BPM, Mockito, Junit, Truth, AssertJ, Kubernetes, Jenkins, Gradle, Git, Grafana, Groovy