Principal Software Engineer

About the Role:

Provide technical leadership within an agile team and across teams to maintain, design, develop, test and verify software products.

About You:

You will thrive on challenges and have an excellent work ethic. You are personally driven to meet objectives with a focus on quality and delivery. You are an enthusiastic team player and are comfortable leading technical investigations and mentoring junior members of staff. You enjoy what you do and have experience implementing modern web application architecture & frameworks. You should lead constant improvement initiatives whether they be resolving technical debt, championing engineering best practises or suggesting ways to improve a product within and across teams.

You will collaborate with design and user experience (UX) stakeholders to define realistic, technically achievable requirements with a strong customer focus. You are responsible for helping to ensure compliance with applicable safety and regulatory requirements.

Primary role and responsibilities:

  • Provides innovative, technical solutions that conform to requirements with a strong focus on end-users, high quality (meets Quality Management System/regulatory standards), performance, safety, security and maintainability
  • Provide technical leadership by helping to establish best practices, recommend design patterns, identify opportunities to refactor code and helping establish a robust and scalable architecture
  • Collaborating with the product architect, provide technical ownership of a software project. Includes architecture/design, requirements definition, sizing, sprint planning, Responsible for communicating technical design to stakeholders (technical & non-technical) either verbally or via product documentation
  • Designs, codes, documents, tests (automated) and maintains software inline with the Quality Management System
  • Actively participates in the agile ceremonies e.g. sprint planning, daily stand-up meetings, sprint reviews, sprint retrospectives and backlog refinement. Contributes to continuous improvement of the team, software and processes
  • Keeps abreast of technical knowledge by studying and implementing state-of-the-art programming techniques and development tools, participating in educational opportunities, participating in communities of practices, reading professional publications and maintaining personal networks
  • Prioritise work to meet changing demands in an agile software development environment
  • Use source code version control for software changes
  • Use of JIRA for documentation and tracking of software issues
  • Acquire knowledge of working practices of a pathology laboratory
  • Develop an in-depth understanding of our LIS software
  • Mentor, train and support other members of the Software Team. This may include pair-programming, regular feedback reviews and some line management responsibilities
  • Build working relationships with other key departments across geographically dispersed teams
  • Assist the development of new business, markets, and products.
  • Help product teams and support personnel as needed to identify, replicate and resolve system problems.

Essential Knowledge & skills

Experience of: –

  • HTML/TypeScript (Angular framework)
  • Java
  • Stylesheets
  • Unix / Linux knowledge
  • Software testing methodologies / E2E testing tools such as Cypress or equivalent
  • The full software development life cycle
  • Agile development
  • Excellent communication skills

Desirable Knowledge & skills

  • Experience with LIS software
  • Experience of Oracle and PostgreSQL databases
  • C/C++
  • Shell scripting
  • Experience in leading and coordinating in an Agile development team


Java, Unix, Linux, Angular


Flexible working, Medical Aid / Health Care, Gym, Enhanced pension contribution, Death in service benefit, Flexible working

To apply for this position please send a copy of your CV and a covering letter along with a completed Fair Employment Monitoring Form to