Summary Description Summary of This Role Works throughout the software development life cycle and performs in a utility capacity to create, design, code, debug, maintain, test, implement and validate applications with a broad understanding of a variety of languages and architectures. Analyzes existing applications or formulate logic for new applications, procedures, flowcharting, coding and debugging programs. Maintains and utilizes application and programming documents in the development of code. Recommends changes in development, maintenance and system standards. Creates appropriate deliverables and develops application implementation plans throughout the life cycle in a flexible development environment. Responsibilities: Ability to engineer complex, multi-tiered distributed software systems Design, implement, test and document / diagram software solutions for technical and business requirements Perform code changes to enhance a product or add new features, to resolve programming errors and develop new products as assigned Complete code changes in a timely manner based on project plans Keep up to date with best practices Qualifications: Proven hands-on software development experience and web UI development experience Proven 6+ years working experience in Java development Proven 5+ years' experience in web frontend development Proven 5+ years' experience building large web sites with HTML & CSS Hands on experience in designing and developing applications using Java EE platforms Object Oriented analysis and design using common design patterns. Extensive experience with REST API design and development Deep knowledge of Java and JEE internals (Class loading, Memory Management, Transaction management, Thread management, etc.) Experience with Relational Databases, SQL and ORM technologies (JPA2, Hibernate) Experience with Spring MVC Framework Experience with React.js community (such as Redux, React-Router, etc.) Experience with responsive web design Experience in Git-based version control systems Experience in Agile methodology Experience in developing web applications using at least one popular web framework (JSF, Wicket, GWT, Spring MVC) Experience with test-driven development Experience with Unit testing of frontend code and Power Mockito Solid understanding of web, usability, and accessibility standards Familiarity with Ant build processes Ability to effectively troubleshoot software related issues Perform effectively in a multitasking environment Have strong interpersonal, as well as written and verbal communication skills Strong professional attitude together combined with a drive to get things done Show more Show less