A cutting-edge Healthtech company in Pretoria seeks the coding expertise of a Senior Back End Developer to join the Company and help develop and maintain software products and solutions. The technical stack comprises of Golang to build fast, fault tolerant and distributed systems (NATS, NATS Jetstream, CQRS), MySQL / PostgreSQL for data storage, Github actions for CI / CD, Docker (and compose) for containerisation and Amazon Web Services (AWS) as hosting provider. You must have a bachelor’s degree in Computer Science or Engineering (or similar), an MSc / PhD in computer science or other technical discipline and 5+ years’ experience.
DUTIES:
- Multitask on a range of products and tasks simultaneously, defining priorities and ensuring efficiency.
- Define and communicate problem, goal, and acceptance criteria.
- Communicate and collaborate with development, business analyst and design teams to solve problems, make recommendations and discuss best programming practices.
- Conduct research on possible solutions and techniques.
- Prepare a work breakdown structure.
- Determine and account for dependencies among deliverables, products, and systems.
- Accurately estimate duration of deliverables.
- Document analysis and planning process.
- Follow project plan to develop software.
- Analyse systems for root cause, impact, workarounds, and permanent fixes.
- Communicate effectively and efficiently with line manager on progress, priorities, and workload.
- Work with stakeholders to achieve appropriate solutions.
- Meet development timelines in projects and deliverables.
- Identify and mitigate risks, making appropriate mid-course corrections as required.
- Adhere to agreed upon standards for code.
- Generate and maintain effective and efficient high quality, reusable code.
- Use effective and efficient components & techniques to implement solutions.
- Ensure all work is versioned and backed up according to company standards.
- Ensure that all work is tested, benchmarked and fulfils functional requirements submitting for approval, review or deployment.
- Prepare test environment, examples, and instructions.
- Participate enthusiastically in peer code reviews.
- Deploy changes to live environment.
- Maintain system and product change logs and release notes according to company standards.
- Keep project documentation up to date and standard.
- Provide timeous, efficient, and effective feedback on project status.
- Proactively keep stakeholders updated on progress, risks, and problems.
- Assist in the collection and documentation of user’s requirements, development of user stories, estimates and work plans.
- Prepare reports, manuals and other documentation on the status, operation, and maintenance of software.
- Provide insight and feedback on queries regarding relevant projects.
- Perform maintenance to ensure data integrity and efficiency.
- Deploy new structure and content.
- Restore data when required.
- Comply to ISO, CE, FDA (and other) standards and requirements as is applicable to assigned products.
- Safeguard confidential information.
- Maintain backups and backup systems.
REQUIREMENTS:
- Bachelor’s degree in Computer Science or Engineering (or similar).
- MSc / PhD in computer science or other technical discipline.
- 5+ years working experience.
Required nature of experience:
Skills and Knowledge (essential):
- Design and build data stores with complex relationships (relational or NoSQL).
- Built / Design distributed systems, back-end APIs, or microservices.
- CS fundamentals in object-oriented design, data structures, algorithm design and complexity analysis.
Skills and Knowledge (desirable):
- Experience in Golang.
- Experience with continuous deployment technologies (Jenkins).
- Familiarity with (TDD) unit testing, performance, load, or end-to-end integration tests.