Full-time – Remote
This position can be based anywhere as remote work is acceptable. However, the successful candidate must be available to work during 12 – 5pm in Sydney time (AEST) to participate in team meetings (1-6pm AEDT during daylight saving months).
Candidates will be working on the next generation of our client’s cloud-based software products. They are transitioning from traditional Java Windows applications to modern web applications as part of modernization of their product master data product suite and migration to the public cloud. The candidate will develop the next generation of their cloud-based products using the latest Java and Cloud best practices. Practical experience with AWS or Azure is highly desirable.
Our Client (Innovit Australia)
Operating since 2000, Innovit is based in San Francisco with offices in London, Sydney and Melbourne serving customers across the Life Sciences and Healthcare supply chain, such as Mayo Clinic, South Australia Health, Southern Cross Hospitals, 3M, Abbott, Arthrex, Ascensia Diabetes, B. Braun, Bio-Rad, LifeHealthcare, Molnlycke, PharmaCare, ThermoFisher, Zimmer Biomet, Kellogg’s and Colgate‑Palmolive.
Position Objectives and Responsibilities
- Work with development leads to design, develop, and document software features.
- Consistent application of coding standards and best practices, to write code that is easy to understand, clean, and maintainable.
- Exercise best judgement in ensuring the most appropriate selection of design patterns, data structure, and algorithms for a given problem.
- Help drive rigor in the design and development process.
- Produce high-level and detailed design documentation.
- Undertake technical research including evaluation of new software, tools and techniques.
- Maintain a working knowledge of Java core language & core libraries/frameworks, and best practices.
- Estimate development work effort.
- Hands-on application development thorough unit and integration testing of all code developed.
- Perform regular code reviews to ensure the high quality of code delivered.
- Mentoring junior developers.
- Maintain existing system / technical documentation and create new content where applicable.
- Collaborate with customer-support team to provide in-depth technical support from time to time.
- Advance knowledge of Java core language and libraries.
- Strong understanding of OOP and functional programming, data structure, and algorithms.
- Strong working knowledge and experience on the Spring framework across different modules.
- Practical experience with Spring Boot.
- Practical experience on general and Java specific design patterns.
- Strong database design and programming skills (ER modelling & SQL).
- Knowledge of performance issues in relation to both Java and database design.
- 4-10 years’ experience developing Java/JEE commercial enterprise applications with strong server-side experience
- At least 3 years of experience in enterprise software application development
- Proven experience with development, configuration and deployment to the J2EE application server e.g. JBoss
- Proven experience managing interdependent tasks
- System design and architectural experience
- Experience working with Waterfall and Scrum Methodologies
- Proven practical experience with test driven development or behaviour driven development
- Experience developing for large scale real-time 24×7 systems
- Proven ability in performing code reviews
- Extensive experience in providing estimates
- Ability to work independently, efficiently and accurately while meeting deadlines.
- Ability to perform effectively under pressure.
- Ability to review key processes to achieve continuous improvement and the innovation of products and services.
- Ability to predict or detect problems in the area of responsibility.
- Ability to generate new/innovative but effective solutions to problems.
- Interpersonal and Teamwork
- Ability to work productively with other staff.
- Ability to maintain particular sensitivity and tact when dealing with external parties/customers.
- Ability to write in a structured and logical way.
- Ability to comprehend and synthesize written material from many sources promptly.
- Ability to communicate effectively when speaking with individuals and groups.
- Ability to negotiate solutions with parties outside one’s department.
- University degree in computer science, software engineering, or a related study.
- Java/J2EE certifications are desirable.
Strong experience and knowledge on the following technologies:
- Java 8+
- Java frameworks – Spring (Core, ORM, MVC, Security, Integration), Spring Boot etc.
- Server-side technologies – Core Java, Web services, JMX, JAXB, EJB3, JSON, XML, XSLT, JMS etc
- Data integration/ORM frameworks eg. Hibernate
- DBMS (SQL Server, Oracle)
- Profiling Java/J2EE applications using– Visual VM, JMX etc.
- Testing Tools – JUnit, JMock etc
- Development Tools – Eclipse/Intellij IDE
- Build Tools – Maven
- Continuous Integration – TeamCity/BitBucket
- Project and Defect Management Tool – Jira