Experience working with Java Enterprise application frameworks like Java EE, Spring, DropWizard, and Hibernate. Strong understanding of Object orientation, SOLID principles, Clean coding, and patterns is desirable. Understanding of Agile practices like Test-driven development, continuous integration, and continuous delivery would be a plus.
Responsibilities Performing a broad range of complex work in different environments/skills. Recommend the best possible way to problem definition irrespective of any technology/domain.
Able to multitask, prioritize and take critical decisions.
Provides input to system architectures and designs.
Define checklist for code reviews, unit tests.
Requirements
2-5 years of experience using Java or Kotlin programming language.
Experience working with any of the enterprise Java applications or frameworks like Java EE/Spring/Hibernate/DropWizard etc.
Great OO skills, including strong design patterns knowledge. Understanding of functional programming would be a plus.
Passion for software engineering and craftsman-like coding process.
Experience working with Agile, TDD, Lean and/or Continuous Delivery approaches and best practices, such as Extreme Programming (XP).
Experience in developing applications integrating with RDBMS like MySql or Postgres.
Experience with a NoSQL database (MongoDB or GraphDB) will be a plus.
Experience in developing web applications using ReactJS/Angular/Vuejs will be plus.
Experience in applying web standards and best practices with knowledge of the latest industry trends in web and enterprise application development.
Experience including analysis, design, coding and implementation of large scale object-oriented applications.
Strong understanding and experience in writing unit test cases.
Working knowledge with version control systems Git, SVN
Personal track record of process improvement/reengineering.
Should be able to debug the root cause of issues/bug and its impacts
Strong analytical and problem-solving skills.
Self-Motivated / Team Player, Ability to work in small and large groups.