D

Developer at Discovery Limited

Discovery Limited
May 22, 2026
Full-time
On-site
Key Purpose


The role has multiple facets, the first being to become completely familiar with existing software models to maintain and enhance them. Equally important is the development of new software models and functionality for the team.
A less challenging but equally important role is running the software programs on a daily and monthly basis - these are called production runs. The programs that need to be run include software developed in-house as well as third party software. For all these, the input files need to be created, usually by means of C/C++ programs, SQL and shell scripting. Some of these input files themselves can be complex in nature, being created of data from multiple sources.
Running these production runs can involve working outside of office hours, for which time off is granted in lieu of overtime pay. Finally a requirement is to develop ad-hoc programs and front-ends for the team to be able to run various programs themselves - usually through a web page.
It is important for the candidate to be able to work on their own to solve various technical challenges that may arise. Thought must be given to the latest and future technologies and methodologies that may better address these challenges. Although C/C++ has traditionally been used for its superior performance, an open mind must be kept to using the correct technology to address current and future requirements.
Although guidance will be provided at the beginning, the candidate must work towards being able to make decisions on their own. To this end, a good understanding must be gained of the basic clinical principles, such as clinical coding, that are instrumental in all software developed and run by the team. It is also expected of the candidate to keep current with new developments in software and modelling techniques


Areas of responsibility include but may not be limited to


Maintaining and enhancing existing software
Developing new software
Creating input files
Collating output from the various programs for loading into a database
Running or assisting with production runs
Developing simple front-ends (usually web-pages) to enable the team to run the programs themselves on a single record basis
Keeping third party software up to date by updating license keys etc.
Developing ad-hoc programs and scripts as required by the team
Investigating new technologies and methodologies to keep the software current.


Personal Attributes and Skills - high proficiency required


High proficiency in C/C++ and Python
A good knowledge of SQL and relational databases
Proficiency in Unix/Linux shell scripting.
Good knowledge of Unix/Linux
Technical computer knowledge - e.g. using shared memory, binary files etc.
Must be able to work unsupervised (mentorship is provided)
Enthusiasm and willingness to learn


Personal Attributes and Skills - proficiency required


Unix/Linux command-line experience
Working knowledge of Microsoft Office products; MS-Word, MS-Excel
Working with a source-level debugger (for C) and IDE for Python
ProC (Oracle's SQL interface for C)
XML / XSLT
HTML / CSS
PHP
Java/Javascript
Any other web technologies such as APIs


Education and Experience - minimum


Computer-related tertiary qualification - or minimum 5 years' experience working in a highly technical environment
Minimum 5 years' Python and C or C++ programming experience
Minimum 5 years' experience software deployment in a Unix/Linux environment.
Minimum 3 years' SQL experience
2 years shell scripting (knowledge of awk or perl advantageous)
1 year HTML programming exposure
1 year XML/XSLT programming exposure
6 months PHP programming
2 years working with MS-Excel, MS-Word etc.