Responsibilities
Translate application storyboards and use cases into functional applications
Design, build, and maintain efficient, reusable, and reliable Java code
Ensure the best possible performance, quality, and responsiveness of the applications
Identify bottlenecks and bugs, and devise solutions to these problems
Help maintain code quality, organization, and automatization
Support continuous improvement by investigating alternatives and technologies and presenting these for architectural review.
Excellent application system design and development skills
Experience in Designing, implementing and managing high performance scalable J2EE applications on Linux/Unix/Windows platforms with one or more of the following: Java Web Services, Oracle SQL Developer, JSP, EJB, Struts, Spring, Ant, JSF JMS, XML, JBoss, JDeveloper.
Solid understanding of object-oriented programming
Familiar with various design and architectural patterns
Perform code and design reviews with peers, conducting complex impact analysis.
Skill for writing reusable Java libraries
Knowledge of concurrency patterns in Java
Familiarity with concepts of MVC, JDBC, and RESTful
Familiarity with Java GUI frameworks {{such as Swing, SWT, and AWT depending on project requirements}}
Strong SQL experience of writing complex queries and developing views.
Experience with both external and embedded databases
Understanding fundamental design principles behind a scalable application
Basic understanding of the class loading mechanism in Java
Creating database schemas that represent and support business processes
Basic understanding of JVM, its limitations, weaknesses, and workarounds
Proficient understanding of code versioning tools, such as Git
Familiarity with build tools such as Ant, Maven, and Gradle
Familiarity with continuous integration
Work as a multi-skilled professional practicing Agile/Scrum methodologies
Keyskills: Unix Core Java Linux XML JSP MySQL Struts Windows EJB SQL