Job description and person specification template

advertisement
Job description and person specification
Summary details
Unit name:
Division/Section:
Job title
*Salary range:
*Band (Grade):
*Contract type (e.g. Open/Fixed term):
*Hours (e.g. full or part time):
Detailed job description
Overall purpose:
MRC Biostatistic Unit
Scientific Programmer
£27,084 - £32,324 per annum
Band 4
Open Ended
Full-time, 36 hours per week
The MRC Biostatistics Unit is one of the leading statistical research units in the UK. It is not only
developing novel statistical methods but is involved in the development of statistical software as
well, for example the widely used Bayesian modelling software Winbugs. Currently the Unit is
expanding its research profile into computing and data intensive areas such as genomics, systems
biology, e-health and personalised medicine. Hardware and software maintenance is provided by a
dedicated computing group. A computing cluster (including GPU nodes) is hosted for the Unit by
the High Performance Computing Service of the Cambridge University.
It has been recognised that implementing statistical algorithms particularly for large data sets and
high-dimensional data, and developing software packages for the dissemination of such algorithms
to a wider audience requires specialist support from an experienced statistical programmer. The
statistical programmer will be involved in several statistical computing projects across the different
research themes established at the Unit.
The post holder will support these projects in several ways from teaching and advising other
researchers at the Unit on programming techniques and the efficient use of programming resources
to the implementation of statistical algorithms.
Main duties:
Advise and train statistical researchers in efficient programming techniques as well as efficient use
particularly of multicore computing systems.
Implement statistical algorithms (mostly in the R statistical programming language, but also
compiled languages such as C++ or similar), particularly for Monte Carlo simulation, but also
algorithms for numerical mathematics, particularly differential equation solving.
Advise on and explore the use of numerical libraries (eg for numerical analysis on multicore and
GPU systems), and advanced statistical packages for Monte Carlo simulation (eg Stan) or statistical
inference (eg Infer.net).
Help with efficient use of queuing systems on the HPC clusters.
Encourage good software development practice (eg in the agile programming paradigm concerning
Investigator Scientist Job description & person specification
Page 1 of 5
testing, documentation, incremental development).
Research and explore new developments in high performance statistical computing, particularly
novel techniques for simulation using high dimensional data and make other Unit members aware of
them.
Explore new developments in statistical software development and deployment (GPU programming,
cloud computing, virtualisation) and make other Unit members aware of them.
In discussion with other Unit members and the director, anticipate and project future computing
needs of the Unit.
Key responsibilities:
Be proactive when providing software development support to other members of the Unit, actively
seeking out opportunities to help and interact with members across different programmes with
algorithm implementation and software development.
While some advice will be available from others in the Unit, the post holder will be expected to have
the skill and understanding to be able to act independently in finding the best means to support
software development at the Unit. This will require the integration of different activities to ensure
the successful delivery of software projects.
Anticipate and project future computing needs of the Unit. Contribute to the QQR documents and
yearly budgeting of computing resource requirements.
Liaise with the computing support group in order to ensure sufficient computing resources are
available for current and anticipated software projects across all programmes.
Attend talks, discussion groups and workshops given by Unit members and guests on statistical
methods.
Provide training on software development through talks, workshops and discussion groups within
the Unit.
Attend conferences and workshops and be aware of the literature in order to keep up to date on latest
trends in statistical software development and deployment.
Keep colleagues up to date on new developments in statistical computing.
Contribute to scientific publications and research papers emerging from research projects involving
statistical computing.
Present research work at national and international scientific meetings and conferences
Interact effectively with a wide range of staff, students and others to ensure the smooth running of
software projects.
Investigator Scientist Job description and person specification
Page 2 of 5
Ensure research is conducted in accordance with good practice and in compliance with local policies
and legal requirements
Liaise with MRC Technology on Intellectual Property and copyright issues emerging from software
development within the Unit and the MRC.
Working relationships:
The post holder reports to the programme leader currently in charge of computing at the Unit.
The post holder will liaise with the computing support group.
The post holder is expected to support and interact with any member of the Unit in need of
programming support. However, if prioritisation is required in case of high demand, the post holder
will discuss priorities with the line managing programme leader and the director, who will, after
consultation with other programme leaders and the post holder, decide on a prioritised work plan.
Additional information:
Equality & Diversity
The MRC values the diverse skills and experience of its employees and is committed to achieving
equality of treatment for all. Our objectives are that all individuals shall have equal opportunities
for employment and advancement on the basis of their skills, aptitudes and abilities. The MRC is
committed to the engagement and retention of the best possible talent and to creating an
environment that encourages excellence in scientific research through good equalities and diversity
leadership and management.
Corporate/Local responsibilities & requirements
The job holder must at all times carry out their responsibilities with due regard to the MRC’s:
 Code of Conduct
 Equality and Diversity policy
 Health and Safety policy
 Data Protection and Security policy
Job descriptions should be reviewed on a regular basis and at the annual appraisal. Any changes
should be made and agreed between the post holder and their manager.
The above lists are not exhaustive and the job holder is required to undertake such duties as may
reasonably be requested within the scope of the post. All employees are required to act
professionally, co-operatively and flexibly in line with the requirements of the post and the MRC.
Person requirements
Education / Qualifications / Training required:
Essential:
BSc in computer science or any other scientific area with a strong computing component
Desirable:
Investigator Scientist Job description and person specification
Page 3 of 5
PhD in statistical computing
Previous work experience required:
Essential:
Either postdoctoral or industry experience in software development.
Desirable:
Experience in development of scientific or statistical software.
Knowledge and experience:
Statistical Software development
Essential:
Excellent knowledge of at least one of the following high level software development systems:
R/Splus or equivalent, Matlab/Octave/Scilab or equivalent, Mathematica/Maple or similar.
Excellent knowledge of at least one compiled object oriented programming language.
Familiarity with software development concepts.
Familiarity with multitasking/parallel programming concepts.
Experience in the implementing algorithms in statistics, physics, computer science, or applied
mathematics.
Desirable:
Experience in statistical programming, in particular Monte Carlo simulation.
Knowledge of concepts in Bayesian modelling and inference
Experience with GPU (graphics processing units) programming.
Experience with MPI programming (message passing interface)
Independent working
Essential:
Proven skills in working independently to solve computational problems.
Desirable:
Proven ability to lead software development projects
Planning and time management
Investigator Scientist Job description and person specification
Page 4 of 5
Essential: Able to plan and manage tasks to a timetable.
Desirable: Demonstrable ability to plan ahead and to stick to that plan.
Verbal and written communication skills
Essential:
Experience in presenting scientific work, both written and orally.
Desirable:
Good quality first author publications in relevant field.
Mentoring
Desirable:
Has experience of training others "on the job'.
Collaborations/ Influencing Skills
Essential:
Has strong skills and experience in working collaboratively as a member of a team.
Personal skills/behaviours/qualities:
Essential:
Excellent standards of Research Conduct, Highly-motivated, Strong team player, Capable of taking
independent decisions, Collaborative.
Additional information:
Investigator Scientist Job description and person specification
Page 5 of 5
Download