I am a Research Software Engineer (RSE)
'Research Software Engineer' is a job title that I'm rather proud of as I feel that it closely describes a lot of what I do and it certainly describes what I'll be doing in the future.
It's also a job title that I haven't had for very long! Dating from December 1st when the 'RSE' function of Manchester University was officially created. I've had many job titles over the years including
My road to RSE
PhD Student (Sheffield)
IT officer (Manchester)
IT officer, Scientific Applications (Manchester)
IT co-ordinator, Scientific Applications (Manchester)
Head of EPS Applications Suport (Manchester)
Research Software Engineer (Manchester and Sheffield)
All these titles and yet the underlying work has been roughly the same for around a decade. It's evolved, to be sure, but the underlying theme that has driven me has been constant.
Enhance the University's capacity to produce high quality, efficient and sustainable research software.
Element of my Sheffield job description
As far as I'm concerned this is the headline act in my new job description at Sheffield.
Software Sustainibility Institute
http://www.software.ac.uk/fellowship-programme/fellow-profiles
The Software Sustainability Institute, of which I am a fellow, has a very apt slogan here - 'Better Software, Better Research'. So ultimately, the aim of roles like mine is to improve research at the University by improving the way its members write and use software.
So, how can we go about doing this?
Develop and maintain strategic relationships between the University and vendors of commercial and open source scientific software.
Element of my Sheffield job description
Examples
Manchester NA Group
IPython developers
Mathworks
Numerical Algorithms Group (NAG)
Dassault Systemes
Wolfram Research
MapleSoft
Intel
PGI
NVidia
Tech support
Free training and events
Push for enhancements that are good for University researchers.
Incorporate our research in their products. >> Research Impact
Sources of funding? KTPS, studentships etc
Open source increasingly important!
At Sheffield in the last 3 months:
Upgraded NAG license to cover all products and platforms
Courses from NAG on their products and various HPC technologies coming soon
Course from Maplesoft coming soon
Site license for Mathematica (coming soon - hopefully)
Investigating feasibility of Intel Compiler licenses
Discussions with RogueWave Software about TotalView debugger
Determine and monitor the use of research software within the University. Use this information to inform working practices and develop services.
Element of my Sheffield job description
I used to be open source to the core.
..but this job is a service
..much of the research community likes to use MATLAB, Excel on Windows and Mac OS X
..Initially realised this because thats where queries came from
Later...we did formal survey.
YOu have to do the job that's in front of you -- not the one you wish you had.
Provide free consultancy to internal research groups.
Element of my Sheffield job description
Fav bit. Faster Please? Fun!
Hands on code, learn about hard/soft + research
Opportunity to develop services (LAST)
Most importantly, it gives us the chance to work directly with researchers like you on the problems that matter to you. For me, this is probably the most rewarding part of the job and since I literally couldn't do it without you, I thank you all for letting me play with your toys!
Examples from the last 3 months:
>10x speed-up on code written in R for SITRAN
Added Python 3 support to a major Machine Learning framework (GPy)
Converted MATLAB ABM simulation to Python and added unit-tests.
Automated HPC workflow for Python/Abaqus user (In Progress)
Assist lecturers across the University to introduce computation in the teaching of any subject where it's relevant
Examples at Sheffield in the last 3 months
Bioinformatics (Marta Milo)
Physics iPeg (In progress. Susan Cartwright, Ed Daw)
Develop and deliver training courses in programming, software engineering and optimisation in languages popularly used by researchers.
Basics obvious: Intro to MATLAB/Python/R
intermediate, less so. What should be offered?
e.g. MATLAB: testing/version control, Performance, HPC, subject specific
Personally, I love delivering training courses - particularly in technologies I'm enthusiastic about such as Python and IPython as they give yet more opportunities to get to know researchers here and the work they do.
Element of my Sheffield job description
Promote software best practices such as testing and version control
Element of my Sheffield job description
This one comes off the back of both the training and consultancy pieces.
Never been shared before.
mycode_workingVersion_final_dec23_broken_fixed_v2.m
Acceptance test needs developing
Put under VC and acceptance test before fun starts
Promote research software 'Made in Sheffield' to raise its profile among the international research community.
Element of my Sheffield job description
'HPC ramping' - Learn about researcher's desktop workflow and assist them with migration to HPC systems including optimization, specialist hardware (including GPUs), on-campus HPC systems and cloud-based compute resources
Element of my Sheffield job description
Identify, develop and promote technologies that make access to HPC systems easier for end users.
Identify and report the latest software and hardware computational technologies that would be of use to University researchers.
Continually study new and existing tools and ideas in research computing in order to maintain expertise.
Attend conferences and workshops to understand latest technological developments.
Elements of my Sheffield job description
One of the great things about working closely with people such as yourselves is that you all help me do it! All of you are doing cutting edge stuff and every time I interact with you, I get to see snippets of your research and the hardware and software technologies you use to do it. Every time I help you a little bit, you help me a little bit. It's all very circular!
Collaboration is the key to a job like this, the role simply would not exist without you and your work.
Collaborate with research colleagues from across the University to create, improve and maintain research software
Element of my Sheffield job description
Faster, better engineered, more open, easier to use, improved documentation...all the stuff that turns good research software into great research software...at the core of it all, that's pretty much what its all about.
Research Software: Can I help?
Contact Me