LEAD DEVELOPER - SOFTWARE-SOLUTIONS ARCHITECT
Be part of one of Africa’s largest money transfer companies, enabling hundreds of thousands of people to remit vital support to their loved-ones across the region. You’ll exposed to a range of web and mobile channels used to interact with our customer-base and contribute to a platform that’s alive with real-time transactional activity.
Mukuru’s systems are coded in primarily in PHP as well as .Net and are hosted in AWS. Although there is legacy code we endeavour to evolve and rewrite to provide flexibility to changing business requirements. Maintainability is a key quality that you’ll be expected to imprint in the systems.
As a successful candidate you will work in an architecture team that closely collaborates and provide technical oversight to POs, BAs and software development teams. Architects are involved in the early planning phases of a product vision. The work environment is flexible, non-corporate, fun environment where job performance is revered.
Job Location and Travel
The position is available preferably in Cape Town or Joburg. Due to the distributed offices, you must be able to travel to other offices a few times a year.
Requisite skills include
- +7 years experience as a software developer.
- +2 years experience as a software architect.
- Solid experience in PHP/.NET and AWS.
- Proficient in OOP and in using the right design patterns in solutions.
- Demonstrates knowledge of a broad range of primarily open source technologies.
- Experience in communicating architecture visions, i.e. via diagrams and verbally.
- A natural mentor-leader who knows how to elevate developers’ skills.
- Understanding of how application architecture affects infrastructure.
- Ability to design long-term maintainable and innovative architectures.
- Excellent team-working and interpersonal skills.
- Create, maintain, communicate and report on vision and goals of software architecture.
- Create, improve and document development related processes.
- Provide guidance and work closely with teams implementing solutions.
- Code review critical parts of solutions that teams produce.
- Ensure consistent code quality across teams; code must adhere to standards.
- Ensure that code that is written is maintainable and flexible.
- Ensure automated test code coverage and implement necessary tools.
- Oversee systems to ensure that features are not duplicated and existing duplicate is removed.
- Work with technical leads on major technical solutions and instill culture of collaboration on solutions.
- Mentor technical leads on architecture and work with developers when implementing solutions.
- Instill a culture where there is no fear of making mistakes and where fails are seen as opportunities of learning.
- Promote agile methodologies.
- Maintain and take ownership of the technical debt backlog.
- Partake in portfolio level planning and estimations.
- Partake in assessing candidates in the recruitment process.
- Ensure there is sufficient documentation of the system for developers.
- Investigate and implement tools and processes that improve (effectiveness and efficiency) the development cycle.
- Help resolve production emergencies.
- Define coding standards and guidelines and communicate then to teams.
Being passionate about learning new skills, technologies and best practices is a prerequisite.