We are looking for Java Developer in Poland, Hungary & Lithuania
We are looking for a Java developer responsible for building Java applications. This includes anything between complex groups of back-end services and their client-end (desktop and mobile) counterparts. Your primary responsibility will be to design and develop these applications, and to coordinate with the rest of the team working on different layers of the infrastructure. Thus, a commitment to collaborative problem solving, sophisticated design, and product quality is essential.
- Translate application storyboards and use cases into functional applications
- Design, build, and maintain efficient, reusable, and reliable Java code
- Ensure the best possible performance, quality, and responsiveness of the applications
- Identify bottlenecks and bugs, and devise solutions to these problems
- Help maintain code quality, organization, and automatization
- Proficient in Java 8, with a good knowledge of its ecosystems
- Solid understanding of object-oriented programming
- Familiar with various design and architectural patterns
- Skill for writing reusable Java libraries
- Knowledge of concurrency patterns in Java
- Familiarity with concepts of MVC, JDBC, and RESTful
- Experience with WSDL, XML, XSD, JSON and Swagger Open API specification.
- Experience in NoSQL (Mongo preferable) and SQL db (Oracle). Should be able to write complex SQL queries / procedure and functions.
- Creating database schemas that represent and support business processes
- Work experience in Spring framework (Spring core / AOP / Spring Data / Spring JDBC / Spring Boot), Hibernate ORM and Micro services Architecture.
- Good to have knowledge in Spring Security and OAuth2.
- Experience with messaging technology like JMS, Active MQ, IBM MQ etc.
- Experience with Apache Kafka.
- Good to have experience in container based architecture – Kubernetes, docker, CI/CD like Jenkins and Gitlab CI/CD.
- Good to have experience in AWS or Azure cloud services.
- Knack for writing clean, readable Java code.
- Understanding fundamental design principles behind a scalable application
- Basic understanding of the class loading mechanism in Java
- Basic understanding of JVM, its limitations, weaknesses, and workarounds
- Implementing automated testing platforms and unit tests
- Proficient understanding of code versioning tools, such as RTC, GIT.
- Familiarity with build tools such as Ant, Maven, and Gradle.