RESPONSIBILITIES AND DUTIES:
- Design, develop, and test software according to specific business requirements.
- Ensure proper software development practices are followed, including writing well-organized and maintainable code, code reuse, effective use of common design patterns, minimal copy and pasting, effective error handling and logging, etc.
- Design and build systems that comply with enterprise architectural guidance.
- Strong understanding of software development concepts in building a variety of applications, including web sites, web services, and batch processing systems.
- Experience with Agile software development methodologies.
- Experience with unit testing, test-driven development, and other forms of automated testing.
- Strong understanding of advanced software development concepts such as object-oriented design and development, multi-threading, thread safety, exception handling and logging, asynchronous operations, etc.
- Strong interpersonal skills.
- Strong analytical and problem-solving skills.
- Strong commitment to quality and customer service.
- Strong verbal and written communication skills.
- Strong sense of teamwork, both within the team and collaborating with other teams.
- Ability to see opportunities to automate mundane tasks and write scripts when necessary.
- Passionate about technology and solving problems with technology.
Requirements:
- 4 or more years with Java development
- 2 or more years working on Spring Framework (SpringMVC, Spring Security, Spring Boot and Spring Batch, Spring Cloud, Spring Integration, etc..)
- Experience in REST service development
- Experience in Distributed source control systems such as Git
- Experience with Gradle/Maven or similar build automation tools
- Preferred:
- Solid understanding of object-oriented design principles
- Java 8 Experience
- HTML, JavaScript, JQuery, Angular 5, SCSS, CSS other JavaScript libraries
- Neo4j or other graph database experience
- Oracle, PL/SQL, or other SQL database technologies