Published 14th July 2019
Alex Meakins is a physicist who has turned his long-time coding hobby into his job.
Meakins works in the Software Engineering Group at the UK Atomic Energy Authority, principally on the European Commission’s Joint European Torus (JET) fusion experiment that has been run by the authority since 1983.
“I trained as a physicist, did an undergraduate Master of Physics degree at Imperial College and then my PhD here at JET. I left to work in industry, then came back here and worked for a couple of years in spectroscopy before deciding to transition across to the software side,” Meakins says.
“I’ve always been an active developer outside of work, mainly as a hobby. In working here, I could see there were areas where our software tools could be improved. I started applying my skillset to them and developed a number of tools, most notably a general purpose software framework for solving spectroscopy problems,” he says.
When a job came up in the authority’s Software Engineering Group, Meakins took the chance to move across into the computing side, and “and carried on basically doing the same sort of tool building for research purposes as I had been before”.
It has not been a complete shift, however, as Meakins continues to work closely with the physics researchers at the authority.
“I still keep my hand in with the physics. I work with physics colleagues and we’re publishing papers and doing research. It’s just that I focus the majority of my time on building the tools to enable the work,” he says.
“I’ve been able to bridge the gap between the two fields and speak both languages. Sometimes physicists want something but they don’t know quite what they want. So it’s useful to be able to say, right, I see what you’re trying to do but what you’ve suggested is not the right approach – and then you can show them an approach that would work in terms of software engineering. That helps both sides – they get something that does the job robustly, and we get a maintainable piece of code!”
Keeping that connection with his scientific background is important to him, he says.
“To be honest, I would struggle if I was doing pure software engineering, because I like the physics as much as I do the software engineering.”
Meakins has also put significant effort into overhauling the JET data access tools, working with software that has been used for over 20 years.
“Coming from the physics side, I used to use these systems and tools and was getting frustrated by the unnecessary complexity. I’m building a software stack that effectively sits on top of the existing data stores, so there’s no risk to our operations, and that has a simple interface that physicists can pick up in about five minutes,” Meakins says.
“Given that we often have secondees come and work on JET for a week and then leave, it’s essential that we can get people up to speed quickly, and they were really struggling with the old APIs. I’m just trying to get the general tools more efficient and effective,” he says.
The research software engineer title is vital in such a bridging role, Meakins says.
“To explain that you’re a physicist and also do software engineering is difficult – people seem to want to put you into one area!
“And to be honest, modern research really needs RSEs. It has become so complex in terms of the amount of data processing required that you can’t just cobble something together quickly any more. And the techniques are sufficiently advanced, and sufficiently hard to implement, that it’s very easy to make a mistake. So you really need someone familiar with good engineering practice to help write those tools and make them robust to ensure the research is on a good footing,” Meakins says.
“You can design software in many ways but some patterns of design are maintainable and scalable, and some really aren’t!” he says.