Proficient in Java, with a good knowledge of its ecosystems Solid understanding of object-oriented programming Familiar with various design and architectural patterns Familiarity with concepts of MVC, JDBC, and RESTful Experience with popular web application frameworks, such as spring and hibernate Knack for writing clean, readable Java code Familiarity with build tools such as Maven etc Familiarity with continuous integration Experience with both external and embedded databases