By working within our established Development and Product teams, you will be a key leader in the iOCO organization. Although day to day coding is not a core functional of this role, an individual who is naturally inclined to be hands-on involved in coding standards would be ideal.
You will be required to have proven track record of technical leadership roles delivering solutions within defined timeframes, and within a demanding client centric environment.
Main areas of responsibility includes:
Directing Software Architecting, Programming and Documentation Development Processes across a number of teams that consists of Developers, Business Analysts, Scrum Masters, Architects and Tech Leads.
Control and manage choices available during development by choosing a standard way of pursuing application development by creating, defining, or choosing an application framework best suited for the engaged and client.
Recognize potential reuse in the organization or in the application by observing and understanding the broader system environments and ecosystems, creating component designs showing knowledge of other applications across the iOCO landscape.
Where appropriate, subdivide a complex application, during the design phase, into smaller, more manageable pieces during client engagement processes.
Understand the interactions and dependencies among components, teams and clients.
Carry accountability for the quality of the final product and projects.
Responsible for the technical growth and mentorship across various iOCO teams, inclusive of recruitment and retention of technical team members.
Where appropriate, provision required skills, select an appropriate deployment model, direct testing protocols to validate releases, and monitor performance after releases.
Experience and expertise:
At least 10 years’ experience in Software Development with a minimum of 3 years’ experience in managing software development teams whilst still having hands-on architectural or distributed systems experience.
Experience with delivering software projects using Agile / Scrum methodologies.
A strong track record of project delivery for large, cross-functional, and co-dependent projects.
Must be able to assist strategically in advising on new technology.
Must be able to communicate effectively with both technical and business executives.
Excellent written and verbal communication skills with the ability to present complex technical information in a clear and concise manner to a variety of audiences.
Strong problem-solving abilities.
Proven track record of multi-tasking between business development, client-side delivery, and people management.
Solid exposure in back end front end and integration development.
Must have a good understanding of DevOps implementations and disciplines such as:
Continuous Integration
Continuous Delivery
Automated Environment Provisioning using Docker and/or Kubernetes (Containerisation software) (advantageous)
Ability to evaluate overall architecture of an application, looking for structural quality, best practices, code quality.
Must have solid experience with the DevOps approach to software development that requires frequent, incremental changes to code versions, which means frequent deployment and testing regimens. (Must have and very Important).
Deep understanding and experience in a DevOps driven environment, working with software developers, system operators (SysOps) and other production IT staff to oversee code releases.
Solid experience across architecting, designing and developing technology solutions that include various mixes of the technologies and frameworks based on languages such as:
C#, Java, NodeJS, JavaScript, Golang, Python etc.
Microservice Architectures
Azure/AWS related cloud technologies
Understanding and experience expressing software architecture design using industry standard software modelling language (UML).
Understanding and experience using Application Lifecycle Management tools to manage business requirements manageability + traceability, version control, deployment/automated build, and test case management.
Systems implementation skills: requirements/process analysis, conceptual and detailed design, configuration, testing, training, change management, and support.
Experience leading /mentoring development teams using Agile or iterative development SDLC practices
Personality traits
Have necessary hard and soft skills that are required to overcome the traditional barriers between software development, testing and operations teams.
Must be a clear methodical thinker with good problem-solving skills.
Able to perform under pressure in a fast-changing environment.
Self-managing and takes the initiative to resolve issues.