CEDA Software Developer - Sandwich Student


Internship 1 year Harwell, UK

Uploaded 2 Sep 2018

Job Description

The Science and Technology Facilities Council (STFC) is one of Europe’s largest research organisations. We’re trusted to support, enable and undertake pioneering projects in an amazing diversity of fields. Through world-class facilities and people, we’re driving ground-breaking advances in science, technology and Engineering.

STFC is one of nine organisations that have been brought together to create UK Research and Innovation (UKRI); a new organisation with a vision to ensure the UK maintains its world-leading position in research and innovation.

Each year we offer opportunities to undergraduate sandwich students to gain practical experience, working alongside technical experts at the forefront of scientific research. We offer an invaluable experience with exposure to world class science and technology, and the opportunity to develop working relationships that continue well after your placement has finished.

The Centre for Environmental Data Analysis (CEDA)

The Centre for Environmental Data Analysis (CEDA), within STFC’s RAL Space Department, serves the environmental science community hosting data centres providing access to datasets ranging from computer simulations of future climate to the latest satellite-based observations of the earth. CEDA is involved in a number of collaborative projects working with organisations including the Met Office, European Space Agency, and NASA developing software and systems to facilitate access to, and analysis of, environmental data. Our data and computing services are hosted on the world-class multi-petabyte parallel processing and storage facility JASMIN (http://www.jasmin.ac.uk/), incorporating cloud and High Performance Computing technologies.

Summary of Key Duties & Responsibilities

CEDA can offer a 1-year Sandwich Student Software Development post to a candidate interested in gaining first-hand experience of working in a vibrant field of scientific data handling and delivery.

Within a Linux-based computing environment you will work primarily with the Python programming language. Web and scientific programming may also be required, depending on experience, using a range of other languages such as Java, JavaScript, C and FORTRAN.

CEDA develops and manages a range of data-centric activities that this post might be involved with, including:

  • web applications/services to allow scientists to discover and access data sets
  • services for processing and analysing Atmospheric Science and Earth Observation data including parallelisation and workflow management
  • the JASMIN cloud platform and associated tools
  • cataloguing tools to enable searching and browsing of detailed scientific metadata
  • data analytics, visualisation and sub-setting tools
  • packaging and deployment tools.

Within CEDA a wide variety of technologies and tools are being employed/explored. These include:

  • web: Django, Pyramid, Tomcat, Bootstrap
  • databases: PostgreSQL, SQLite, ElasticSearch, Apache Solr
  • processing/parallelisation: Platform LSF batch compute scheduler, OGC Web Processing Service
  • packaging/deployment: Python Pip and virtualenv, RPM, Conda, Docker
  • virtualisation/cloud: OpenStack, object store technologies, container orchestration technologies e.g. SWARM, Kubernetes
  • data: cf-python, Iris, Matplotlib, NetCDF4, R, CDO, NCO.


The role will involve a range of tasks that might include:

  • maintenance of existing software systems
  • development of scripts and tools to perform data management and analysis
  • design and development of larger software systems/applications
  • development of Django (python) web-applications and web APIs
  • interactions with scientists/developers
  • development of tools for working with large data sets and batch processing systems
  • exploratory work with new technologies.

For more information about the role please contact Ag Stephens ([email protected]).

Person Specification

Shortlisting and Interview Criteria

NOTE: criteria will be assessed through shortlisting (S), at Interview (I) or both (S&I).


  • at university, enrolled on an undergraduate degree course and required or have requested to take a year out of studies to gain experience within industry (S)
  • right to live and work in the UK (S)
  • currently undertaking a degree in Computer Science or Engineering, or another relevant scientific discipline with a strong mathematical component (S).
  • able to work comfortably at a work station for most of the working day (S)
  • experience of programming in Python (S&I)
  • experience of working in a Linux environment (S&I)
  • knowledge of software development principles, including writing and testing code (S&I)
  • interest in supporting the scientific community (S&I)
  • self-motivated, with good problem-solving and analytical skills (S&I)
  • able to work well in a team and willing to learn new skills and work on a variety of tasks (S&I)


  • robust software engineering methodologies including test-driven development, code review and continuous integration (S&I)
  • experience with web development frameworks particularly Django (S&I)
  • exposure to NoSQL database solutions such as Elastic Search and Apache Solr (S&I)
  • exposure to software for the deployment of virtualisation and cloud computing infrastructure e.g. OpenStack, VMware, Docker, and object store technologies (S&I)
  • technologies for parallel processing for example, Hadoop (S&I)
  • exposure to meteorology, climate science, Earth sciences, Earth observation or scientific computing (S&I)
  • experience of working with scientific data (S&I)
  • experience of working with Big Data (S&I)
  • good communication skills (S&I)

Share this job

Other Jobs at STFC