Java Software Engineer
Summary
Builds and maintains Java-based applications using Spring, JPA/Hibernate, and Kafka, following full SDLC from design to deployment.
This is a remote position.
- Write well designed, testable, efficient software modules.
- Ensure designs are in compliance with specifications and that specifications cover all needed aspects of the implementation.
- Prepare and produce releases of software components.
- Provide support for production systems.
- Create/ review design documentation and provide feedback on test plans.
- Support continuous improvement by investigating alternatives and technologies and presenting these for architectural review.
Requirements
- BSc/MSc in Computer Science, Software Engineering or equivalent.
- 4+ years of full time professional experience in designing and developing applications using the Java ecosystem.
- Solid background in Object Oriented Analysis and Design.
- Experience with popular Java frameworks and technologies such as Spring Framework, JPA/Hibernate.
- Experience with asynchronous messaging technologies (e.g. RabbitMQ, Kafka).
- Experience designing and developing HTTP web services.
- Excellent knowledge of SQL and RDBMS concepts.
- Working knowledge of Maven, Git and Continuous Delivery principles.
- NoSQL databases such as Redis, Elasticsearch, Couchbase.
- Caching technologies, such as Hazelcast, EhCache.
- Horizontally scalable, distributed, microservices architectures.
- Strong team player with good communication skills.
- Eager to work with leading-edge technologies.
- Reliable and dedicated professional with clear thinking and strong attention to detail.
- Able to work well under pressure and meeting deadlines in sometimes challenging situations.
- Able to multitask and thrive in a dynamic environment as well as balance and prioritize activities to ensure critical items are addressed.