Job Description
A bit about the role:
The ideal candidate will be responsible for developing and executing the strategy to implement a greenfield in-house software engineering capability. This capability will enable the company to transition from high vendor dependency to owning the development and release process of digital applications.
Your daily adventures include:
- Setting technical standards, SDLC processes, defining standard toolsets covering high-level architecture, programming languages, application servers/platforms and integration
- Defining approaches (SOA, Microservices, Brokers, Streaming etc); programming design patterns; programming standards
- Development tools and tooling (IDEs, build tools, dependency management, source formatting, quality enforcement)
- Source code management, branching, releasing, git flow procedures & processes; source code security, access control
- Building artifact management, versioning and controls, building environments & developer productivity
- API & code documentation (written & automated generation)
- CI/CD pipelines and deployment processes/procedures
- Containerisation, container registries and versioning
- Code scanning & security controls
- Coding standards & patterns for security, access, authorisation and accounting; coding standards for exploit mitigation (SQL injection, XSS, CSRF)
- Configuration management
- Capacity planning, monitoring, alerting and runtime visibility
- Team skills assessments & training recommendations
- Agile delivery processes & controls – epics, stories, tasks & backlog management and prioritization & associated tooling
- Production environment topology, security, scalability, resilience & deployment/rollback processes & procedures
- Business/Product ownership, quality assurance and quality gates
- Using data and feedback from participants and peers to drive continuous optimization of cross-functional team structures and software development processes
- Assuring that security and accessibility continue to be primary goals in the construction of any software
What it takes to succeed:
- Experience with modern data technologies (Kafka, Kinesis, Snowflake), relational database systems (MySQL) and ability to work with large databases including open source (MongoDB, MariaDB, Athena etc)
- Experience in DevOps (inc DevSecOps) methodologies and CI/CD toolsets
- Understanding and knowledge of scaling and proven track record of scaling systems
- Experience profiling and optimizing code on all tiers of an application
- Experience in managing container orchestration and serverless environments, and deployment across hybrid and public cloud scenarios