We are looking for a Java Developer with experience in building high-performing, scalable, enterprise-grade applications. You will be part of a talented software team that works on mission-critical applications. Java developer roles and responsibilities include managing Java/Java EE application development while providing expertise in the full software development lifecycle, from concept and design to testing.
- Produce technical specifications and estimates for the development of enhancement requests
- Working within the Software Development Team, working alongside our core application suite, with the emphasis on component based design, program implementation, unit testing and delivery to internal QA standards, and participation in reviews and design at code level
- Assists in the evaluation and recommendation of application software packages, application integration and testing tools
- Involve in R&D of tools and technologies as required
- Ensure that appropriate documentation is created for all R&D and analysis of tools and third party software’s used in the product
- Adheres to architectural standards, and detailed development standards.
- Maintain prompt updates of Bug Tracking and other tools.
The Sr. Java Developer will be expected to be highly knowledgeable and experienced in:
Java (1.5, 1.6, 1.7)
- Struts, JSF
- Web applications
- Servlets and JSP
- Web servers(Tomcat and Sun Java Web Server)
- JDBC (Oracle)
- Java packaging (JAR, WAR)
• Web programming
- HTML and CSS
- XML, XSL‐FO, XercesJ
• Development tools:
- Source control (SVN)
- Continuous integration (CruiseControl)
Further to this, they are expected to build expert skills in:
- Web services
Coding Skills, Practices and Standards:
- Ensure code quality is maintained and Technical Debt analysed and reduced over a period of time.
- Ensure developed software is written with unit tests, java docs and appropriate tests.
- Ensure unit and integration testing is completed for every logical delivery to QA.
- Quality control of own work adhering to company development and quality standards.
The Sr. Java Developer is expected to promote Test Driven Development Practices within the team, ensuring that Unit Test and Acceptance Tests are implemented to confirm that acceptance criteria (i.e. system behaviours) are met.
The Sr. Java Developer will work to build the development skills with the Development Team in the areas of:
- Test driven development
- Design patterns
- Testing frameworks (JUnit, Concordion)
- Refactoring techniques
- Cohesion and Coupling
- Debugging techniques/tools
- Code coverage and profiling
- Readability, extensibility and testability of code
- Mocking (JMock)
- Web application security
- Performance testing and tuning
Development Process & Team Activities:
- Liaise with our Technical Documenter with regard to the creation of user documentation
- Liaise directly with the Product Teams as required throughout the development life-cycle
- Working with other staff, across the organisation, to consolidate the strengths of the product range - in its technical structure, business focus, and usability
- Providing a source of technical knowledge and advice in the application of component development and deployment technologies, both to the technical support staff and to colleagues who interface with customers
- Perform personal administration tasks (including time recording, holiday requests, expenses and self certification) in a timely fashion.
- Comply with company policies as indicated in the Staff Handbook and on the Company Intranet.
- Perform second/third line support tasks as required
- Understand product design and architecture
- Understand Product features, functionalities and develop software code accordingly
Contributing strong analytical and problem solving skills to the continuing enhancement and expansion of the product range
Leadership and Mentoring
It is the Sr. Java Developer’s responsibility to work with other members of the Development Team to ensure that the initiatives being delivered by are of a high standard in terms of fit for purpose, application design and code quality. In fulfilling this responsibility the Developer will work with the Development Manager to foster the appropriate culture and values within the Development Team.
The role will actively partake in the development and training of less experienced team members. This includes mentoring and suggesting training programs for team members and defining development pathways.
The role is expected to provide advice to the Technical Lead / Project Lead on how processes and procedures may be improved to promote good coding practice amongst the team.
Development Process & Team Activities:
The Opidis Development Team utilise an Agile development process based on Scrum. The role is expected to be knowledgeable in the implementation of Agile principles and be prepared to work with the Development Manager to adapt the core Agile approaches as required to meet business and quality objectives.
As part of their mentoring and coaching role, the Developer will provide regular feedback to the Technical Lead on the performance of Development Team members.
Technical Skills & Experience Skills/Competencies (Mandatory):
- Experience with Java frameworks such as Spring, Struts, Hibernate
- Knowledge of web servers such as Apache HTTPD, IIS
- Knowledge of Java application servers such as Tomcat, JBoss, WebSphere
- Experience with relational databases such as Oracle, MySql, MSSQL
- Proficient use of SQL
- Web service development and use – REST and SOAP
- Experience with source code control tools such as Subversion, CVS
- Understanding of continuous integration and test-driven development tools such as Maven, Jenkins, Hudson, JUnit, Selenium
- Efficient use of a Java IDE such as Eclipse or IntelliJ
- Excellent written and verbal communication skills
- Outstanding teamwork and collaboration skills
- Understanding of software development lifecycle and methodologies
- Ability to troubleshoot, research, and work through complex problems
- Able to work independently or as a member of a team
- 4-8 years of Java development
- Knowledge of multiple operating systems such as Windows, Linux, Solaris
- Ability to troubleshoot issues using tools such as Fiddler, Firebug, Wireshark
- Strong understanding of mobile platforms, particularly iOS, Android and Windows Phone7.
- Understanding of the limitations of web and mobile, with approaches/ideas to flex those boundaries.
- Candidate must absolutely be in sync with recent design standards and trends.
- Formal education in Software / Computer Science (Bachelor's/Master's/Diploma) is a definite plus.
Desired Personal Profile:
- Self-starter, that is, able to collaborate actively with others in a cross-functional team
- Flexible Ability to deal with ambiguity and change
- "Roll-up your sleeves" attitude to get things done
- Overtime may be required in meet project deadlines.
- Sitting for extended periods of time.
- Physically able to participate in training sessions, presentations, and meetings.
- Some travel may be required for the purpose of meeting with clients, stakeholders, or off-site personnel/management