Senior Software Engineer
Senior Full-Stack Software Engineer
Location: Durban, Cape Town, Johannesburg (Hybrid in-office and work from home)
Salary Range: Market-related (Depending on experience)
About the Role
The Senior Software Engineer will be working alongside an existing team of senior, mid-level, and other junior Software Engineers. Projects and solutions will range from small, distinct pieces of work to long-term program engagements. You will be expected to have a solid foundation in the languages and frameworks in place, and work with the team members in the Solutions department to deliver great quality features and enhancements on assigned projects. The Senior Software Engineer is required to possess and develop more than just technical skills, and is expected to contribute to the creation and development of holistic business solutions for Advantage Learning Technologies (ALT) and their partners.
The Candidate we’re looking for
Adaptive Problem-Solver - Not just a coder, but someone who can understand business challenges and craft viable solutions.
Proactive Self-Manager - An individual who takes initiative, manages their tasks effectively, and can work independently without constant oversight.
Strong Communicator - Excellent communication skills, both written and verbal, adept at collaborating with cross-functional teams and with clients when needed.
Continuous Learner - Strong desire for continuous improvement, open to constructive feedback, and passionate about sharing knowledge and upskilling team members.
Attention to Detail - We place high importance on this quality at all times.
Key Responsibilities
Development & Design
Participate in feature scoping and solution design, including wire-framing
Convert business requirements to technical specifications
Develop enhancements & features
Collaborate with the team on larger features/projects
Testing & Quality Assurance
Participate in development testing and approval of Pull Requests
Debug and fix software issues.
Contribute Automated Testing to existing and new code repositories
Implement and maintain CI/CD pipelines
Teamwork & Communication
Meet with clients as and when required
Meet value targets in collaboration with team members
Attend and contribute to team meetings
Scope tasks and delegate to team members
Meet and guide more junior team members
Documentation & Reporting
Document requirements and design details.
Review, provide input and sign off on design documentation etc.
Prepare and distribute project materials and meeting minutes
Contribute to team knowledge base
Skill Development
Research and recommend technologies relevant to business or project needs.
Adhere to best practices and contribute to continuous improvement
Guide more junior team members on where and on what to upskill into
Support
Participate with the team in providing product support to our customers and wider internal teams
Requirements
Technical Skills & Requirements
Our Tech Stack:
|
|
Essential Skills (the absolute minimum)
A proven track record with Laravel, Vue and PHP. (Able to prototype a full stack app)
Familiar with PHPUnit and/or PEST PHP. You are able to write automated tests.
SQL Proficiency - able to navigate complex data structures and obtain requested output
Ability to deploy an application to the cloud, via any of the following technologies: Forge, Envoyer, AWS
Git proficiency - Merge conflicts, pull requests and their review, tagging, releases etc.
Nice to Have
University or other relevant education
Experience in related or similar frameworks
Exposure to DevOps
Have built a CI pipeline before
Cloud experience
Have experience with TDD
Ability to manage projects with limited oversight
Prior experience in mentoring
Prior experience managing a small team
Pre-screening questions:
Prepare the following to answer in the submission:
Technical & Framework Proficiency: Could you walk us through a recent project you worked on (preferably in Laravel/JS Frontend library), and explain one or two complex technical challenges you solved?
Collaboration & Communication: Share an example where you had to explain a technical limitation to a non-technical stakeholder (e.g., a client or product manager). How did you approach the conversation, and what alternative solutions did you propose?
Ownership: Tell us about a time when you identified a problem or opportunity for improvement (technical or non-technical) that others hadn’t yet noticed. How did you take ownership of addressing it, and what steps did you take to drive results without waiting for direction? What was the outcome?
Adaptive Problem-Solving: Give us an example of a tricky business requirement or client request you’ve encountered. How did you translate it into a viable technical solution?
Continuous Learning & Improvement: What is one recent technology, tool, or best practice you’ve learned or introduced to your team? Why did you choose it, and how did you measure its impact?