You're being offered the position of Senior Full Stack Developer for a Community Upliftment Programme based in Joburg. Your main responsibilities include leading and managing the development and documentation of software solutions to support the program's growth goals while ensuring reliability, security, and robustness. You'll also collaborate closely with the IT Programme Manager as a technical lead and oversee a software development team. The role requires at least a bachelor's degree or formal certification in Information Technology, Computer Science, or a related field, along with a minimum of 5 years of experience in software development across multiple teams, with a path towards becoming a software architect.
DUTIES:
Building solutions to high standards:
Constructing solutions that conform to industry best practices and standards, including but not limited to Solid design principles.
Clean architecture.
Domain driven development.
Test driven development, incl. unit testing during development before code is deployed for QA and testing.
Continuous integration / deployment.
Managed source control.
Security guidelines.
Controlling & minimising technical diversity.
Supportable by being properly documented and code commented (incl. “don’t repeat yourself” [DRY] principle).
Building user-centric solutions and systems that cohere with and serve the company’s wider scale goals securely with 99% uptime.
Guiding and managing the design and implementation of a comprehensive, future-fit technology system that serves and supports the company’s wider goals.
Technical leadership and team management:
Providing technical leadership in the IT team and Company.
Managing the software development team’s delivery, incl. developing technical specifications and designs, allocating work, reviewing code, and managing deployments.
Delivering consistently high quality and proactive service.
Performing and developing professionally:
Delivering an affordable and sustainable set of solutions on time.
Estimating work accurately.
Ensuring code and delivery meet quality assurance standards for accuracy and performance.
Staying up to date with industry and/or other relevant practices, developments, and trends, incl: Information Technology, Information Networks, UX Design.
Identifying and completing relevant, valuable training and/or certifications as agreed.
Supporting solutions:
Assist as needed and appropriate to identify, triage, research and resolve production issues.
Ensure support issues are resolved within appropriate and/or agreed timeframes.
REQUIREMENTS:
Min. bachelor’s degree or formal certification in Information Technology and/or Computer Science or any equivalent relevant degree.
Min. 5 years’ development experience across the software development lifecycle across multiple teams on a path to software architect, including Microsoft stack & environment experience.
Experience managing the full software system delivery and lifecycle, incl. technical design, construction, deployment, and support.
Experience managing a software development & delivery team (at least 3 people).
Advantageous: Leading mobile development & implementations at scale (especially across low-connectivity contexts).
Experience in CRM implementations.
Experience in UX trends and current design strategies and technologies.
Fluency in an African language.
General Knowledge & Understanding and/or Skills & Abilities:
Appetite to manage a small software development team.
Excellent software development lifecycle management.
Solid understanding of OOP.
Solid experience in Agile development methods.
Ability to analyse / decompose complicated problems in developing solutions.
Structure a solution, model the data, and design & build appropriate components.
Advantageous: Knowledge of IT infrastructure and networks.