Becoming an RSE¶
My journey of becoming a Research Software Engineer.
I have always had a knack for writing software but only recently have I realized my love for it.
Thinking about it, maybe it has to do with the way I was taught programming. When I learnt how to code (in Java, C and the C++, at school), the emphasis was on algorithm development (search, sort etc.) and understanding of concepts related to programming (encapsulation, polymorphism etc.). It was never about developing a tool that serves as means to an end 1. In fact, the only fully-functional application that I wrote back then was a hobby project 2.
After secondary school and the foundational year at college (2005-10), programming was no longer a part of the curricula 3 I followed and eventually I stopped dabbling much with it. Even though I picked computational material science (nanotechnology) as my career, and decided pursue to doctoral studies, I never went beyond Bash scripts for data processing and some Python for plotting (2013-16) 4: it was mostly ad-hoc scripting, not reproducible version-controlled programming. This changed in 2017, when I went to Milan as a visiting student and worked with Dr. Guido Fratesi. Watching Guido work was like looking at a wizard: he would meticulously cook his scripts, take his time organize his files and folders but then conduct his simulations and generate graphs from the results (for analysis) with touch of a button. It was then that I realized why good code must be prioritized: it can seriously speed up research and make it reproducible too. Unfortunately, by then, it was a bit late for me to implement similar measures for my doctoral research work.
Nevertheless, when I moved to Leeds and took up my current employment (2018), I was determined not to repeat the mistakes. Little did I know that planets are aligning for something grander 5. The research computing team at the University of Leeds provides extensive training and I learnt about the concept of a Research Software Engineer at one of their workshops (probably mid 2019) from the instructor. When it was being described to me, my background thought was “that’s me!” I code for research, I care for it to be robust, and I am the in-house IT consultant. This was enough fodder for me to register a place in RSE Conference 2019 (RSEConUK19).
Around the same time, I was writing a codebase to help me with the simulations that were planned as a part of my postdoctoral research project. It was while coding it that I found myself repeatedly being in the zone 6. This made me think about the career in research even more: I discovered that I enjoy writing software that helps research more than research itself.
Maybe it is the pleasure of creating something that represents how I understand the data and processes in my mind that is beautiful. Or maybe, just being creative and expressive is the drug.
Finally, going to Birmingham for RSEConUK19 was the ultimate convincing factor: Meeting others of my predisposition (and that they were employed 😝) gave me the confidence to decide that I can replace active self-directed research in favour of the joy of helping others (help them carry out their research). Plus, I discovered new initiatives related to research software (such as FAIR and good training), the need for which resonated deep in me. Last, the diversity of the conference and the conscious decision of the organizers to be truly inclusive was unlike what I have ever seen at a scientific conference. In fewer words: I felt like I was finally home (at RSEConUK19). I immediately signed up as a member of the UK RSE Society.
By the day I returned to Leeds, I had decided that I want to be an RSE in my next professional role. However, that was also the time that I was preparing to be a father and plans to work on my career prospects were put on, what I thought was, a temporary back-burner. But then with the pandemic hitting all of us almost exactly around the time when my daughter arrived 7 and little private support structure in the UK… the temporary arrangement lasted almost till the end of 2020 8.
So, it was only this year (2021) that I started working on the career switch seriously.
First things first, I decided to start helping with Software Carpentries and quickly proceeded to train as an instructor. Since the workshops were all being held online, this helped me gain experience with learners from Europe, UK and the US 9. Having taught in four Carpentry workshops and helped in seven of them, I have grown a lot as an instructor and I love the feedback I receive 10.
Second, I got more involved with the RSE community in the UK (as well as in the Nordics 11): I volunteered to help in the organization of SeptembRSE (UK RSE’s annual conference and successor of RSEConUK19: the one I loved so much). As of now (July 2021), I am on the committee helping as Chair for Diversity and Accessibility as well as helping co-ordinate the international-facing event (SeptembRSE Worldwide) of the conference. It is a bit of work, but I am hoping that it will all pay off in terms of a sense of accomplishment when September arrives.
In the spirit of Open Science and FAIR software, I have made a portion of code I developed at Leeds, available to the wider world (with plans of making it citable before I leave Leeds in a few months) 12.
Meanwhile, I have started looking for new opportunities to make the transition. If you know of one that you think might be suitable for me, drop me a message. I will update this blog entry once the transition is complete; stay tuned!
Will my training as a researcher going to be wasted?
This is a question that my dad asked me when I told him about my planned career switch. Here’s a rough outline of my response to him:
My bachelor’s and master’s in Nanotechnology has prepared me exactly for such a job: the coursework I did was very diverse (in terms of knowledge domains). I know a bit about a lot of things: protein systhesis - yes, photonics - yes, pH buffers - yes… As an RSE, I can forsee being involved in multiple disciplines of research and actually making use of all that knowledge I have as compared to following a narrow path defined by whatever research grant I may hold. And being in an RSE role might also cater to my (latent) affinity for disciplines of applied and social sciences.
I might not make use of my very niche scientific expertise (ab-initio materials’ simulation) but that does not mean that I would not use my research skills. Research skills go far beyond subject knowledge: they include making use of the scientific method, critical thinking, organizing, processing, analyzing and presenting data and results, colloboration, training oneself/others, and myriad soft skills.
Given the current funding arrangements and availability of RSE and RSE-like jobs, there is a small possibility that I may still do something very similar to what I have been doing so far; and continue as a computational researcher.
Thanks for reading all the way through. Feedback is welcome as always..
This is absolutely not a criticism of the pedagogical approach I encountered. In hindsight, being exposed to those computer science concepts and understanding the rationale/art of crafting efficient algorithms has been an excellent foundation. Dare I say, the seeds of being able to mangle and wrangle code the way I do now were planted then.
Of course, this project is all lost now. But in essence, it was a CLI that asked you to input a message, encrypted the message (using Caesar cipher) and saved the output to disk. To decrypt it, you ran
decrypt.exe <filename>(Turbo C++ anyone!). The fun part was that there was no password. The cipher-key was chosen based on the first letter in your message (its upper-cased ASCII value) and a dictionary served to provide unique innocuous filenames for each of the 26 letters. When decrypting, it used the same dictionary and the given filename to determine the key and decipher the text in the file. The naïve idea was to distribute the executable and not its source code. Later, I discovered there are such things as bruteforcing and decompilers that made my approach moot.
In India, when I was studying, the syllabus was mostly prescriptive with very few electives. The courses and their order for any given major was set by the University (sometimes the government) with course choices for further specialization offered in the latter years of study.
How I wish I knew about the Carpentries back then.
Manner of speaking. Not really into make-believe.
For this, I must appreciate Python 3. Its every-thing-is-an-object model, the extensibility provided by its dundder methods, and the natural language way of expressing algorithms (assign this if True else assign that, if item in items etc.) make expressing algoritms in it a charm. But I fear I am getting too comfortable in the mould. Maybe I should go Rusty instead?
My daughter arrived less than a week into the first (UK) lockdown.
I won’t trade the joy of being a parent for anything and I am sincerely thankful that I could bond so much more with my newborn because of the work-from-home situation. I really hope that UK expands its paternity leave arrangement to more than two weeks. Two weeks are barely enough to get accustomed to a new house plant… and juggling a job in a groggy state is good for no one.
I would love to do it across more regions but because English is the only language that works for me when teaching, there is a roadblock in the way.
Generally, the good ones are about good pacing and clarity. The bad ones are about not finishing the entire course content. I appreciate the former and am okay with the latter: part of the Carpentries’ philosophy is to leave no learner behind. Plus, anecdotally many other instructors report the same with move to the online workshop mode… let’s see how that changes in future.
I met someone from there at RSEConUK19 and their business card introduced me to CodeRefinery. I really like the model of their workshops (having helped in a mega-online one) and think they are the natural next steps after one imbibes and implements what’s taught in a Software Carpentry workshop. Plus, they operate fully in English and are very welcoming (thanks!). I do also read notes from monthly meetings of the de-RSE; it also works nicely as a polish for my fading German skills.