Fellows blogs

Software in engineering By Edward Smith, Institute’s fellow, Imperial College London.

As an engineer, software design concepts are not only familiar, they are central to the education we are forced to endure. These include standardisation, quality testing and the importance of outlining a clear specification. However, when it comes to software development, engineering academics seem to forget these principles; principles that shaped the industrial revolution and allowed us to engineer the modern world. In this short blog, I want to explore why academic engineers don't apply these best-practice concepts to software.

It is clear we are in the middle of a revolution; one which arguably will change the world more rapidly than the industrial revolution over a hundred years ago. Aside from the scientific developments, among them steam power, electricity and mastery of materials such as iron and steel, it was the methodologies forged during this period that were pivotal to the revolution. The key concept for mass production was the division of labour and automation, allowing much greater production by fewer people. In addition, the standardisation of parts allowed each person to specialise and optimise a given part fitted together by agreeing on the required interface between these parts.

Consider a car. Before the industrial revolution, a…

Continue Reading

Containers for HPCBy Krishna Kumar, Institute's fellow, University of Cambridge

The University of Cambridge with the support of the Software Sustainability Institute is organising a workshop on Containers for HPC: A Workshop on Singularity and Containers in HPC and Cloud on 29th and 30th June 2017. The aim of the workshop is to give an overview of container technologies in the context of Research Computing, with a specific focus on enabling HPC and GPU workloads.

The main focus will be around Singularity which is available in the current HPC system at Cambridge and is also the chosen technology that will be implemented in the new Cambridge Service for Data Driven Discovery at Cambridge (CSD3). Alongside a few special keynote talks, an afternoon session will cover practical examples from running a container on HPC to building your own Singularity container images.

Further information and registration is available at Containers for HPC workshop website. Places are limited, please make sure you have a real interest and need of this container technology and you are also familiar with Linux environments.

Containers for High Performance Computing


Continue Reading

Collaborations Workshop 2017, IoT, Open Data, research softwareBy Edward Smith, Institute’s fellow, Imperial College London.

The Collaborations Workshop 2017 (CW17) was the first event I've attended by the Software Sustainability Institute. The topic this year—big data and internet of things (IoT)—didn't exactly inspire me with hope that it would be relevant to my (heavily numerical) work. I couldn't have been more wrong; it was great to gain an insight into the wider infrastructure of software development and, by moving out of my comfort zone, get a new perspective on how similar problems are solved. The keynote talks by Usman and Thomas were very interesting and I have even played around with the IoT Adafruit Feather HUZZAH we were given. The "unconference" aspects meant lots of time to chat and it was great to meet people struggling with the same problems. The hackday was rewarding, again a first for me, working together on a shared GitHub repository. We managed to put together a web visualisation tools for migrant movements and a demo.

Continue Reading

firmware parameterisationDr Edward Fisher, Agile Tomography Group, School of Engineering, University of Edinburgh

Software sustainability is crucial as academia looks to commercialise its outputs and progress designs up the technology readiness levels (TRLs). One of the key concepts that transcends software, firmware and indeed silicon hardware design, is the concept of parameterisation. It may seem simple, but a surprisingly large number of us are happy to copy code, thereby creating multiple versions, or simply to leave a code parameter "hard-wired" or "hard-coded" as we are under pressure to "just get it working".

But what can the industrial, commercial mindset teach us when it comes to software sustainability for both projects with multiple developers, or projects with lengthy time scales where we must think of our future selves, perhaps even remove some personal effort and strife further down the line? Can code parameterisation allow us to get closer to our long-term motto of "Better Software, Better Research", or indeed "Better Firmware, Better Results", or "Better Hardware, Better Reproducibility"?

Code Parameterisation

So, what do we mean by code parameterisation? What advantages does it allow, and of course what effort must be…

Continue Reading

Barista mindsetBy Laurence Billingham, RSE at NERC and Software Sustainability Institute fellow

Anyone who has met me in real life knows I love coffee. In fact, I'm writing this post whilst drinking an El Salvadorian pour over in a place with exposed brickwork and a floor that looks like it used to be part of a school gym.

But this post isn't about my love for coffee per se or even about using a caffeine rush to produce awesome code really speedily. It is about a thing I'm struggling to name (naming stuff is one of the canonically hard things after all); the best I can currently come up with is:

Barista mindset

Work like a craftsperson, respect the care that others have put into your materials.

In my previous group, I was lucky enough to work alongside a bunch of talented and dedicated engineers. These folks sweat for the data they give me. Sometimes they spend weeks away from their families in lonely windswept places; making sure our instruments keep working properly and calibrating their data. I'd estimate that we spend several hundred thousands of dollars per year on instrument calibration and data quality assurance.

In a previous gig too I was fortunate to be able to witness the care…

Continue Reading

coding for hardware engineersBy Edward Fisher, Agile Tomography Group, School of Engineering, University of Edinburgh, and Software Sustainability Institute fellow

Originally posted  at edwardmdfisher.com.

Here at the Software Sustainability Institute, we strive to promote best practices in software development for research. Better Software, Better Research. That’s the motto. But does this need to be restricted to software languages such as C, C++, Python or Java? Or should it be restricted to the ideals of open data and open code?

My view is that sustainability can also be significantly included in other domains that use textual description as part of the design process. My role within the Agile Tomography group here in Edinburgh is to develop hardware, firmware and software that enables custom designed, precision instruments to perform often in harsh environments. If we go down a custom route for something simple such as a data acquisition system, the role of the scientist or engineer must touch upon everything from PCB design, analogue and digital circuits, embedded firmware and digital…

Continue Reading

PyCon Namibia, Cardiff UniversityBy Nikoleta Glynatsi, Cardiff University.

I recently became a Sustainable Software Institute Fellow as part of the 2017 cohort. During the selection day, I presented my plans and ambitions that I have set for my fellowship year. My list of plans included attending and running a workshop at PyCon Namibia 2017. PyCon Namibia 2017 is the third PyCon within the country and the organising committee include Jessica Upani, Gabriel Nhinda, Daniele Procida and Vincent Knight. My main reason for attending was to assist and observe what I believe to be a developing Python and research community with a great future ahead.

As part of Cardiff University I was quickly introduced to the Phoenix Project and its plans for fighting poverty and promoting health by working together with the University of Namibia to educate people to help themselves to ensure sustainable change.  I was quickly…

Continue Reading

teaching programming outside computer scienceBy Cyril Pernet, University of Edinburgh, Krishna Kumar, University of Cambridge, Laurence Billingham, British Geological Survey.


When: The Software Sustainability Institute Fellowship face-to-face selection day (November 2, 2016) involved several sessions including group discussions. This group discussion was about education and software.

Who: The group was composed of Dr Laurence Billingham, Dr Elena Vataga, Dr Krishna Kumar, Dr Cyril Pernet.

What: The discussion was about teaching programming and best practices at universities: whom we should teach, what should be taught and when…

Continue Reading


Digital History, Humanities, data structuresBy Melodee Beals, Digital Historian at Loughborough University and Software Sustainability Institute fellow

Originally posted at mhbeals.com

Historians appear to be quite happy with tables. Tables are neat, orderly repositories of information. Rank and file, we input our names, dates, and other titbits of historical data. Rank and file, we organise our world into an unending supply of lists — lists providing the relevant percentages, absolute enumerations or qualitative descriptions of anything we can imagine. Over the years, of course, our tables have evolved from mere typographical conventions to function-laden spreadsheets, capable of statistical and algebraic functions, textual concatenation, and a host of other minor miracles. Yet, for all the seeming convenience of Microsoft Excel (and its ilk), we pay a hefty price — our time and sanity. “Hyperbole!” I hear you shout. “Nonsense!” I hear you cry. And, when these initial protestations fade, we are left with the ever popular: “I have a system.”

The best laid plans

I’m sure you do; I did. For a very long time, I thought it was an…

Continue Reading

Interpretative research

By Heather Ford, University of Leeds.

My research involves the study of the emerging relationships between data and society that is encapsulated by the fields of software studies, critical data studies and infrastructure studies, among others. These fields of research are primarily aimed at interpretive investigations into how software, algorithms and code have become embedded into everyday life, and how this has resulted in new power formations, new inequalities, new authorities of knowledge [1]. Some of the subjects of this research include the ways in which Facebook’s News Feed algorithm influences the visibility and power of different users and news sources (Bucher, 2012), how Wikipedia delegates editorial decision-making and moral agency to bots (Geiger and Ribes, 2010), or the effects of Google’s Knowledge Graph on people’s ability to control facts about the places where they live (Ford and Graham, 2016).

As the only Software Sustainability Institute fellow working in this area, I set myself the goal of investigating what tools, methods and infrastructure researchers working in…

Continue Reading
Subscribe to Fellows blogs