To design and develop high-volume, high-performance, high-availability Java applications using proven Java frameworks and technologies.
To liaise with the solution architect/technical architect to explore and suggest appropriate technical solutions to achieve the required product features as well as monitoring technical progress against plans. While safeguarding functionality, scalability and performance.
To design and develop reusable libraries and APIs.
To contribute to best practice for Java application development.
Strong understanding of Object Oriented design principles and patterns.
Strong knowledge of SOA web services – REST, SOAP, XML-RPC, XML, JSON.
Experience with relational databases and SQL (Oracle, MySQL).
Significant and demonstrable experience of using Tomcat, Spring Framework and Maven.
Significant and demonstrable experience of using Linux based Operating Systems including performing basic administrative tasks.
Significant and demonstrable experience of implementing Java best practice – especially around scalability, availability and performance.
An ability to rapidly and effectively understand and translate product and business requirements into technical solutions and workable code.
Significant and demonstrable experience of test-driven development alongside use of automated test frameworks, mocking/stubbing and Junit.
Significant and demonstrable experience of scripting languages.
Proven experience of project working and commercial development processes - particularly agile methodologies.
Experience of working in an environment where products have to be delivered to specific timescales.
Experience of supporting, modifying and maintaining systems and code developed by teams other than your own.
Experience of working with code repositories, bug tracking tools.
To write unit and integration tests, within automated test environments to ensure code quality.