Position Title: Technical Lead
Department: Product Development (R&D)
Functional team: Java Application Development
Number of Positions: 1
Reports to: Director of Product Management & Strategy
Location: Sydney, Australia
Primary Purpose of Position
Innovit’s products have traditionally been developed in Java as “rich” Windows applications. We have committed to transitioning to a rich, interactive HTML UI/UX as part of the modernization of our product suite and migration to full public cloud architecture.
As the Technical Lead, you will manage the end to end product development process to deliver high quality products which are thoroughly tested and optimised. You will also contribute to requirements analysis to enhance the quality of product solution design and apply the software engineering best practices in order to achieve the products high quality benchmarks. You will also have the primary responsibility to transition Innovit’s products to be web-based and fully cloud-enabled by leveraging the latest technologies and best practice architectural principles. You will need to have a genuine passion for software development and emerging technologies and have the required leadership, management and people skills to guide Innovit’s development team through this exciting transition.
You will have the unique opportunity to lead the development of next-generation cloud based applications, mentor and coach team members and join an environment of continuous learning.
Certification or experience with Scrum methodologies is required.
This role is part of Innovit’s core Innovation team for new product development.
Key Position Objectives and Responsibilities
- Lead a team of developers on all aspects of software development, product releases, and engineering tasks
- Develop and implement guidelines and introduce industry best practices to enable high performance product development which supports the product roadmap
- Undertake evaluation of current Innovit product technology stack, architecture and development processes to have full understanding of current state-of-affairs and implement changes to streamline operations.
- Perform technical research and make firm and well-informed recommendations on new technology, software architecture, tools and techniques to ensure the successful launch and long-term viability of Innovit’s next-generation, cloud-based products
- Establish and enforce best-practice Software Development Life cycle (SDLC) processes that include high-level and detailed design documentation, compliance with coding standards and code design patterns, thorough unit and integration testing of all code developed and regular code reviews to ensure high quality of code is delivered.
- Estimate development work effort and improve reliability of work estimation by the development team to give better visibility to senior management on product release timelines and any resource issues.
- Provide guidance and mentorship to junior developers and be the lead person to solve complex technical challenges including resorting to hands-on application development when required
- Exhibit strong leadership skills to motivate team members and have strong communication and managerial skills to mentor development resources and foster effective collaboration with other organizational departments.
- Maintain high degree of curiosity and adaptability in order to learn current and future technologies, web development tools and frameworks to successfully address the daily challenges in a technical environment.
- Maintain existing system / technical documentation and create new content where applicable.
- Thorough understanding of SDLC with an emphasis on Agile/SCRUM methodology
- Strong experience with Java (8.0+)
- Excellent understanding of Java/J2EE and frameworks
- Proven experience with at least one JEE container and related APIs (JBoss, Wildfly, Weblogic, Websphere, Glassfish, Tomee)
- Proven experience with Spring framework (Core, MVC, Boot, Integration, Data)
- Proven experience in implementing/using a BPM system (open source/commercial)
- Excellent understanding of Webservices technologies (REST, JSON, SOAP, XML)
- Proven experience of building and deploying cloud-based applications and exhibiting excellent understanding of cloud-based development and architecture paradigms (e.g. Microservice architecture, serverless computing, etc)
- Proven experience with multiple commercial and open source RDBMS
- Strong database design and programming skills (JDBC, SQL).
- Proven experience in Test Driven / Behaviour Driven Development
- Proven experience using Git and GitFlow (BitBucket, GitHub,…)
- Deep knowledge of development best practices, such as code management, coding standards, code quality benchmarks, CI/CD workflows, and release management
- Strong understanding of database and Java application performance measurement and tuning
- Strong knowledge of XML related standards and technologies.
- Strong experience and knowledge on the following technologies:
- Java/J2EE frameworks like – Spring (Core, ORM, MVC, Security, Integration), Spring Boot etc.
- Backend technologies – Core java, J2EE, Web services, JMX, JAXB, EJB3
- JSON, XML, XSLT, JMS etc.
- Data integration / ORM frameworks like JPA etc.
- Databases like – SQL SERVER, Oracle, DB2
- Profiling Java/J2EE applications using– Visual VM, JMX etc.
- Testing Tools – Junit, JMock etc
- Development Tools – Eclipse/Intellij IDE
- Code Repository – SVN / BitBucket
- Build Tools – Ant, Maven
- Continuous Integration – Teamcity
- Project and Defect Management Tool – Jira
- AWS architecture knowledge: concepts of Virtual Private Cloud, RDS, Docker, Ansible
- Experience working with on-shore and off-shore development teams
- Tertiary qualifications in Computer Science, Software Engineering or a related field (BSC and above)
- 10-15 years experience developing and launching cloud-based Java/JEE enterprise applications with strong knowledge of the latest technology and architecture paradigms
- Genuine passion for software development and emerging technologies. Up-to-date with current and future IT technologies and trends.
- Strong leadership skills to motivate team members and execute towards a common goal.
- Strong communication and managerial skills to coach development resources and work collaboratively with other organizational departments.
- Potential requirement to provide overtime, on-call or shift support outside normal business hours.
- Normal range of stretching, bending and kicking (futsal world cup)
- This position is based in Sydney Australia, although the incumbent may be required to work from locations away from Head Office irregularly based on business requirements.
COMPETENCIES (in order of importance)
Work Output and Organisation
- 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 innovative product ideas and technical solutions
Interpersonal and Teamwork
- Ability to lead and work productively with other development staff.
- Ability to motivate and create excitement among team members.
- Ability to willingly coach and provide guidance to the development team.
Writing and Reporting
- Ability to write technical documentation 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.
- Scrum Master certifications.