General DescriptionWe are looking for Java Developers to join our Product Team to implement new functionality and improve the current learning platform for the future. You will work with the Product / Technology Team to develop and maintain cutting-edge applications for our online learning platform. As a Senior Java Developer, you will analyze, design, develop, and integrate products according to stakeholder needs.Duties and ResponsibilitiesResearch, design, code, document and test new programs.Develop implementation of complex, multi-tier distributed software applications.Interpret the business requirements, usability feedback results, and functional specifications to make technical recommendations.Analyze software requirements to determine the feasibility of design within time and cost constraints.Work with the Architect, Project Manager, and Product Technical Lead within the organization to implement agreed-upon designs.Collaborate with internal partners on technical issues.Analyze and provide recommendations.Work with senior leaders to establish strategies, projects, plans, and project budgets.Anticipate risks of any task and propose solutions and mitigation plans except in cases of great complexity.Keep current on the issues inherent in their work and transmit their knowledge proactively.Have advanced knowledge of all the tools and concepts related to the project.Be responsible for product definition and offer added-value ideas.Assist in the enforcement of development deadlines and schedules under Agile Methodologies.Develop ensuring strong functionality and optimization; follow coding standard protocols.Create and implement automated unit test scripts.Requirements6+ years of professional experience developing and maintaining complex Java/J2EE web applications in a dynamic and fast-paced environment. (JDK 9 is required)3+ years developing using Spring frameworks (Spring 5, Spring Boot) and Hibernate.Experience in distributed multi-tier systems and client-server architectures is required.Experience with Hibernate; Creating entities; Using annotations for mapping; defining a one-to-one, one-to-many, and many-to-many relationship.RDBMS experience with databases like Postgres, MySQL, etc.Experience with developing RESTful microservices.JSON experience while using JSON as your encoding protocol; turning JSON data into Java Objects; experience using the Jackson JSON library or other JSON library; and converting data between various encoding protocols, JSON -> XML.Experience with Maven to create multi-module projects; working with a corporate artifact repository; customizing pom files, adding plugins, moving dependencies and plugins between pom files; and experience maintaining local settings.xml file.Knowledge of Jenkins to create jobs; parameterized jobs; and triggering one build job from another.Unit Testing Experience with JUnit.JMS knowledge related to point-to-point (queue) vs. pub-sub (topic) in JMS.Fluency in English Language.Additional AttributesProblem-solving skills.Independent, ability to work on your own without a lot of help or supervision.Good work ethic.Strong sense of responsibility.Willing to learn.Good to haveExperience with Spring Boot and Liquibase.Experience in working with Javascript frameworks (Backbone and Angular/React) for front-end applications.Experience with AWS services.Experience with GraphQL.
#J-18808-Ljbffr