Position: Java Developer (Bulgaria)
Company: CNA International IT Recruitment
Experience required: 3y
English level: upper

**Your role:**
• You will be part of a talented software team that works on mission-critical applications;
• Java developer roles and responsibilities include managing Java application development while providing expertise in the full software development lifecycle, from concept and design to testing;
• Designing, developing and delivering high-volume, low-latency applications for mission-critical systems.

**Your responsibilities:**
• Contribute in all phases of the development lifecycle;
• Write well designed, testable, efficient code;
• Ensure designs are in compliance with specifications;
• Prepare and produce releases of software components;
• Support continuous improvement by investigating alternatives and technologies and presenting these for architectural review.

**Our expectations:**
• Proven hands-on working experience in Java development;
• Object Oriented analysis and design using common design patterns;
• Profound insight of Java (Classloading, Memory Management, Transaction management etc);
• Excellent knowledge of Relational Databases, SQL and ORM technologies (JPA2, Hibernate);
• Excellent knowledge on NoSQL Databases;
• Experience in the Spring Framework – Boot/Integration/Data;
• Experience with Docker and deployed JVM based containers on K8S;
• Working with proper tools to monitor runtime environment with logs/metrics/traces – preference to ELK stack;
• Experience with streaming, specifically Apache Kafka.
• Good command of English (B2)

**Great advantages:**
• Performance testing and improvements, Jemeter/Gatling;
• Experience in developing web applications using at least one popular web framework (JSF, Wicket, GWT, Spring MVC);
• Experience with test-driven development.