Job Description
Duties & Responsibilities
ENVIRONMENT:
Our client is currently in search of a Senior Developer with expertise in Fundraising to become part of their team at a Community Upliftment Programme located in Johannesburg. The role entails taking a leadership position in overseeing and documenting the creation of software solutions and an infrastructure that aligns with the company’s growth objectives while ensuring it remains dependable, secure, and resilient. In this capacity, you will collaborate closely with the IT Programme Manager as the technical lead and will also be responsible for supervising a software development team consisting of a minimum of two developers.
Senior Developer Duties :
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, including unit testing during development before code is deployed for QA and testing.
Continuous integration/deployment.
Managed source control.
Security guidelines.
Controlling and minimizing technical diversity.
Supportable by being properly documented and code commented (including “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, including:
Contributing to strategies and systems that maintain the effectiveness and efficiency of the company’s technology platforms and systems.
Technical leadership and team management
Providing technical leadership in the IT team and the company’s.
Managing the software development team’s delivery, including developing technical specifications and designs, allocating work, reviewing code, and managing deployments, etc.
Delivering consistently high quality and proactive service.
Performing and developing professionally
Delivering consistently high quality and proactive service.
Delivering an affordable and sustainable set of solutions on time, including:
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, including:
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:
Qualifications & Experience
Minimum bachelor’s degree or formal certification in Information Technology and/or Computer Science or any equivalent relevant degree.
Minimum 5 years of 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, including 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 (Object-Oriented Programming).
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.
Technical Knowledge & Understanding and/or Skills & Abilities
Microsoft stack & environment experience needed.
Experience with only large non-Microsoft environments / implementations (e.g., only SAP, IBM’s big packages, etc.) not suitable.
Dynamics 365 development.
C# .Net / ASP.NET / MVC (Required).
Entity Framework, Web Forms.
Dynamics CRM Plug-in Development.
HTML 5.
JavaScript / REACT.
Node.
CI/CD tools and techniques.
USSD development experience is advantageous.
BI and Reporting (SSRS, PowerBI).
Data Integration, ETL, and Data Migration experience.
Ability to integrate CRM with other systems through GraphQL, REST API, and SSIS.
PowerApps and Power Automate experience is advantageous.
Experience managing IT technical support will be an advantage.
ATTRIBUTES:
Excellent professional communication skills:
Written communication skills.
Ability to present findings.
Strong drive to succeed.
Clear curiosity and a track record of learning, including openness to & appetite for feedback.
While we would really like to respond to every application, should you not be contacted for this position within 10 working days please consider your application unsuccessful.