Our client; a top business platform that equips small business owners across Africa, is looking to hire a principal engineer for their business in Cape Town, South Africa.
Your role at the company will be to help drive a high performance Engineering team, so that together the company can build a world-class product for small business owners across the continent. They are looking for someone who is eager to take ownership on game changing initiatives while elevating the team around them.
You will be leading improvements in architectural and application design, engineering "due process", project planning, and DevOps (GitHub and AWS). It is critical for you to be able to bridge these gaps yourself in a hands-on manner, and to create a path for our team to scale and this role to evolve in the future.
Job responsibilities - Team leadership and DevOps:
Lead and project manage initiatives such as:
- Addressing tech debt.
- Big technical (development and other) epics.
- General process changes and fine-tuning.
- Validate and verify technical designs or big architectural changes that the team proposes: ensure that the cost/benefit for these is appropriate and that they are pragmatic given constraints and desired timescales.
- Own and lead our “Continual Improvement” process: help drive efficiency and productivity by helping track appropriate metrics, identifying areas for improvement and helping implement them.
- Work with the team on continuously improving our our end-to-end SDLC
- Manage our “Change Request Process” and in some cases implement the requested changes.
- Oversee our Knowledge Base (in Confluence) and ensure the team creates and updates appropriate technical and process documentation (or create it yourself where appropriate).
Perform DevOps tasks such as:
- Managing our GitHub repositories.
- Managing GitHub actions and workflows.
- Ensuring our branching strategy is followed by the team.
- Lead incident management when outages or other issues with our infrastructure occur.
Assist with maintaining and enhancing our AWS estate including:
- EC2 Instances.
- The Linux OS within EC2 instances: typical management of Linux server OS including management/configuration of systems (services, log rotation, etc.), disk space, CloudWatch agent, regular updating and patching, etc.
- Databases (relational and nosql).
- Kubernetes cluster (validating and applying manifests and general cluster maintenance).
- Cloud networking (VPCs, subnets, security groups, etc.).
- ECR repositories.
- IAM, access policies and permissions.
- Automated backup scheme.
- CloudWatch log groups, metric filters, dashboards and alerts.
- Ensuring cost efficiency and robust cost control.
General team HR management including
- Leading the recruitment process (for technical personnel)
- Frequent 1-to-1s with your team
- Ensuring your team remains happy, engaged, and motivated
Performance Management: Conduct performance reviews, set objectives, and manage professional development for team members
Desired Experience and Qualifications
- You have accumulated considerable knowledge and hands-on experience of technology leadership, through a strong relevant engineering degree and at least 10 years of relevant professional experience.
- You have 3+ years of experience leading teams to efficiently develop high-quality software (preferably with Java and Spring Boot).
- You have 5+ years of experience with AWS and Kubernetes and you are able to hands-on manage a simple AWS estate consisting of several instances, several relational databases (RDS), several Kubernetes clusters (EKS) and all typical related assets (VPC, security groups, S3 buckets, etc.).
- You are very familiar with Agile development processes such as Scrum and Kanban.
- You are very familiar with GitHub and you have substantial experience of hands-on managing GitHub repositories and creating/maintaining GitHub workflows.