Lead Software Engineer
- Sandton, Johannesburg
- Permanent
- Full-time
- Writing code that serves as an example for other software engineers
- Applied and energetic involvement in the design and implementation of medium to-large size features
- Influencing the broader architecture and shipping multiple large services, complex libraries, or major pieces of infrastructure
- Introducing improvements in stability, performance, and scalability across major business-critical systems
- Identifying and proposing strategies around technical challenges affecting your team, communicating standards, and leading alignment on solutions
- Coordinating your team on complex projects, planning the execution and acting as a multiplier for their impact and productivity
- Building on the team processes and looking for ways to improve them
- Grade 12 or equivalent (Essential)
- Relevant IT degree or diploma (Desirable)
- 7+ years' experience working as a Software Engineer o Strong PHP background with working experience in PHP frameworks & related open-source technologies
- Ability to build, test, and deploy applications using Docker
- Database management experience (data migration, transformation, and scripting)
- Experience with modern Git workflows (pull requests, code reviews, CI/CD)
- Experience in guiding and motivating a team of engineers, setting clear goals and expectations, and providing mentorship and support
- Experience with Agile Software Development Methodologies such as Scrum/Kanban o Applied understanding of design patterns and principles (such as the SOLID principles)
- Applied understanding of web application architecture and object-oriented programming
- Knowledge of microservices architecture and RESTful API services o Knowledge of Cloud Technologies (AWS etc.)
- Strong communication skills for effectively conveying technical concepts, collaborating with team members, and understanding requirements and feedback
- Strong collaboration and teamwork skills with the ability to foster a positive team environment, encourage open communication, and facilitate collaboration among team members and stakeholders
- Readiness to resolve conflicts and promote a cohesive and productive team dynamic
- Ability to plan and prioritize tasks, allocate resources effectively, monitor progress, ensure timely delivery of projects and manage risks and dependencies
- Ability to analyse complex technical challenges, think critically, propose effective solutions, and make informed decisions based on technical feasibility, business needs, and project constraints
- Being adaptable, open to change, and having a willingness to learn and adapt to new technologies, methodologies, and approaches in our rapidly evolving industry
- Familiarity with industry-specific challenges, regulations, customer requirements and an understanding of the business context to align technical solutions with business goals