Senior Backend Developer (hybrid in Pretoria)
Pretoria/Centurion – Gauteng
ENVIRONMENT:
A Health Tech Solution Company based in Pretoria is currently looking for a Senior Backend Developer for Developing and maintaining software products and solutions offered by the company.
DUTIES:
- Lead the application lifecycle (planning, design, development, deployment, ongoing maintenance), creating user stories and estimates, collaborating with cross-functional teams.
- Continuously research, evaluate, and integrate new technologies to optimize development efficiency and application performance.
- Plan and design well-structured, reusable application architecture.
- Introduce and implement best practices to ensure high-quality, maintainable systems.
- Participate in project planning by providing accurate estimates, contributing to requirement documentation, and assisting in work breakdown structures for the team.
- Lead the collection and documentation of user requirements, user story creation, estimation, and work plan development, ensuring clear communication of requirements.
- Effectively prioritize, and manage dependencies to ensure timely completion, and switch contexts effectively when the need arises.
- Collaborate effectively with cross-functional teams to solve problems, make recommendations, and discuss best practices.
- Proactively identify and mitigate cross-functional and user facing risks, adapting as needed.
- Track task and project progress within JIRA.
- Lead and participate in software development adhering to project plans, deadlines, and coding standards.
- Develop and maintain high-quality, maintainable systems using efficient and reusable code according to best practices.
- Use version control effectively and according to best practices, as well as backing up other work according to company standards.
- Prepare and maintain comprehensive testing environments with clear examples and instructions.
- Conduct initial testing and assist in developing testing plans to ensure applications meet specifications.
- Implement and maintain automated tests and component libraries and contribute to team best practices.
- Analyse systems to identify root causes of issues across systems, develop workarounds, and implement permanent fixes.
- Deliver thoroughly tested, performance benchmarked, and functionally-compliant work, ensuring readiness for deployment.
- Deploy changes to the production environment following established procedures and supervise more junior team members.
- Oversee, implement and maintain all DevOps processes, including CI/CD pipelines and Infrastructure as Code as applicable to the team.
- Take ownership of maintaining up to date and accurate code and system level documentation .
- Collaborate with members of other teams to ensure timely integration between systems.
- Provide clear, timely, and insightful updates on project status, progress, risks, and potential problems to the line manager and stakeholders.
- Prepare reports, manuals, and other documentation related to software status, operation, and maintenance.
- Maintain accurate system and product change logs, release notes and notifications to other teams, according to company standards and team practices.
- Offer expert insights and feedback on queries regarding relevant projects.
- Collaborate effectively with team members and stakeholders, by being available on appropriate communication channels with timeous, well-articulated responses.
- Take ownership of projects and products, driving successful completion.
- Actively participate in peer code reviews, provide constructive feedback, discuss best practices, and contribute innovative ideas to projects.
- Collaborate with the team, and interface with other teams, to solve problems and ensure successful project and product delivery.
- Lead and mentor the development team, fostering a collaborative, innovative, and growth-oriented environment through coaching, code reviews, knowledge sharing, and promoting best practices.
- Identify opportunities for team growth and encourage skill development.
- Contribute to the recruitment process by providing technical expertise.
- Lead the development of high-quality products that meet specifications, user requirements, best practices, deadlines, and regulatory compliance (e.g., FDA, CE, ISO).
- Apply knowledge of the Quality Management System guidelines and its relevant processes to ensure quality and SOC2 compliance in medical device- and other software.
- Ensure all testing adheres to defined specifications and contributes to continuous improvement of existing applications.
- Lead efforts to safeguard information and data in accordance with company policies.
- Keep all supporting documents up to date.
- Assist the team lead in keeping processes relevant and up to date.
- Design and implement new database structures and content, ensuring optimal performance and scalability.
- Lead the maintenance of database integrity and efficiency through ongoing optimisation strategies.
- Lead data restoration efforts when required, minimizing downtime and data loss.
- Perform advanced and higher risk DevOps and Infrastructure as Code changes responsibly when the need arises.
REQUIREMENTS:
Minimum education (essential):
- Bachelor’s degree in Computer Science or Engineering (or similar)
- Minimum applicable experience (years): 5 years working experience
- Required nature of experience: Software development
Skills and Knowledge (essential):
- API’s
- HTTP
- Microservices
- CORS
- Authentication
- Logging
- RESTful
- Databases
- Analysing query performance
- Writing queries
- Designing dB schemas
- Creating indexes
- SQL
- Development
- Multiprocessing (threading/synchronization/locks)
- Git
- Programming
- CI/CD
- Docker
- Golang
- Queues
- Debugging
- Debug across multiple interconnected systems
- Distributed tracing
- Debug using application logs
- Web browser console
- Postman
- Testing
- Performance Testing
- Mocking
- Integration Testing
- Unit testing
- Cloud
- Lambda
- CloudFront
- ECS
- Backups
- EC2
- S3
- AWS/ Azure
- Networking
- DNS
- Networking – IPs, ports, subnets
- Other
- Experience with JavaScript / TypeScript
- HTML
Skills and Knowledge (desirable):
- Databases
- NoSQL
- Essential Competencies:
- Examining Information
- Developing Expertise
- Making Decisions
- Showing Composure
- Embracing Change
- Meeting Timescales
- Upholding Standards
- Taking Action
- Important Competencies:
- Providing Insights
- Interpreting Data
- Adopting Practical Approaches
- Exploring Possibilities
- Thinking Positively
- Conveying Self-Confidence
- Inviting Feedback
- Impressing People
- Convincing People
- Challenging Ideas
- Managing Tasks
Following Procedures