From New Delhi to Zurich
I am inevitably asked this one question by any new person I meet: "Why did I pick Switzerland as my study destination?" My answer is usually surprising to most people at start. I'd say, "Coz' it's cheap here!". Most people think that the words "cheap" and "Switzerland" are mutually exclusive. But hear me out; Having one of the strongest publicly-funded educational institutions in the world, Switzerland allows international students like me an opportunity to study in a place like ETH Zurich. Thanks to very small fees, a generous scholarship and a city with several options for internships & side jobs, I spent a very fulfilling time studying at ETH Zurich.
Computational Sciences in Switzerland
Offered by the Dept. of Mathematics (D-MATH), this program allowed me to explore a great breadth on interests working on problems from many different domains. The open curriculum of ETH Zurich motivated me to try courses from multiple departments. I used this flexibility to also pursue internships and part-time jobs that further deepened my skills in developing scientific software.
Transitioning from a Mechanical Engineering background to the interdisciplinary field of Computational Science & Engineering was the most enriching learning experience I have had. During a course on High Performance Computing, a field trip to CSCS in Lugano made a powerful impression of supercomputing as a pillar of scientific research. As my studies progressed, I got a chance to learn and work with simulation models, numerical methods and scientific software engineering. The dots had already connected.
Job Search Priorities
The fact that CSCS was a taxpayer-funded organisation that supported academic/public research made it especially attractive to me. A part of me preferred transparent research done with open-source scientific software for public interest, as opposed to concealed ideas for private profits. I was delighted beyond measure when I got to know of upcoming positions with CSCS in their new office in Zurich, a city that I'd grown to love so much. This job ticked out practically every criteria on my list!
Selection Process at CSCS
Being called for an online interview was a positive start. It was a very general chat with Stephanie (HR Manager), Joost (Associate Director) and Ben (Computational Scientist) who were representing the Scientific Software & Libraries (SSL) division of CSCS. It allowed both parties to get an initial impression and ask questions to know beyond what's publicly documented. It was also good to get an idea of the nature of the upcoming projects at CSCS with a big picture of what lies ahead.
I was happy and nervous at the same time when was called for the second phase of the interview. I was nearly halfway through my master thesis at that time. This and the ongoing job applications/interviews had raised stress to volcanic levels. I was very anxious when it started, but very quickly I got comfortable with the interview team which also had Maxime (Computational Scientist & Deputy CTO) from the mothership in Lugano. It started off with questions analysing my past experiences, getting an overview of my master thesis project and probing my interests/career ambitions. This was followed by a candid HR discussion regarding paperwork, career plans, personal goals, etc.
After a lunch with the future systems team, I felt much more at ease. This was followed by a technical round where Ben and Sam (Scientific Software Developer) probed my algorithm analysis skills on a whiteboard. This part mainly involved drafting an algorithm, understanding bottlenecks, proposing speed-up solutions, etc. Rather than being a quiz on knowing a 'correct answer', it was more about the thought process of reasoning to propose possible solutions. A coffee and further discussions with other members of the team was a chance for me to learn about several ongoing projects. It did feel slightly intimidating to see several high-impact projects that needed deep know-how.
After my thesis defence, I was called again for a second in-person interview. This part mainly focussed on my programming skills, specifically in C++. After spending time with Ben and Sam before, I was very relaxed this time. They had me analyse a program they'd written, understand what it does and examine the results. This was a reasoning exercise that needed some understanding of C++, computer systems in general and data structures. At all points, I could Google and was not expected know the details by-heart. After this, they had me propose a solution to a problem, implement the algorithm, come up with tests for corner-cases and incrementally extend capabilities of the program. Here too, I could refer the Internet or even ask for hints if I ever felt stuck.
Selection and Paperwork
I'd lost track of the companies/organisations I had interviewed with and my calendar still had more appointments to tick off. At the same time, my residence permit in Switzerland was expiring too. The countdown had begun. But then, on one fine morning, as I was pacing around trying to make hard decisions with my options, Stephanie's email buzzed confirming an offer at CSCS! In an instant, all anxieties dissolved, but a new one opened up with the hurdle of obtaining a work permit. Given my tight deadlines with my Swiss residence permit, it was a fair amount of work to be done. Me being a non-European didn't make that easy either! I am very grateful to the whole recruiting team for promptly assisting the HR with compiling the paperwork needed for submission. In a record-time of around 2-weeks, the HR team got my permit approved!
My Project
I've been assigned to work on a PRACE-funded (Partnership for Advanced Computing in Europe) to create an API (Application Programming Interface) for Non-Bonded Force Calculations in Particle Simulations. My project partner and guide Victor (Computational Scientist, CSCS Lugano) is a specialist in the field of Molecular Dynamics (MD) simulations.
In essence, particle simulations allow us to examine nature at the molecular level. When we zoom-in to a system so much, we can study how chains of large molecules such as proteins/polymers fold in a solution, or how metallic crystals form in different settings giving us insight into their properties, or even how particles behave in various systems to help comprehend elemental processes such as turbulence, dissipation, etc. The applications are far-reaching from bio-chemistry (drug discovery, biological systems research), material science (metallurgy, composite materials, manufacturing) or even fluid mechanics (turbulence, galaxy formation, etc). Supercomputing will greatly help enhancing our understanding of these fundamental systems that are found everywhere in the universe.
At the heart of these simulations, there lie ways to compute interactions between various particles. These include phenomena like electrostatic interactions, Van der Walls forces, gravitational pull, hydrogen bonds, magnetism, etc. There is a wide-range of physics that could be accounted for. This task becomes highly compute-intensive for systems with large numbers of particles, especially when observing the phenomena for longer durations. My project aims at creation of a maintainable, high-performance, architecture independent software library/API that helps compute these interactions.
Project Nature and Foreseeable Impact
A big chunk of my initiation was spent in understanding in this field and prioritising goals that aid this research community the most. It also involved forming collaborations with frontline research groups in this area for guiding the development. Understanding how different simulation packages work/perform while coming up with designs/strategies for the next generation software is a key component of this project. Where there are big problems, there are also big opportunities. A good API design greatly outlives the underlying software code. This presents an opening to make lasting contributions to open scientific software that is used by a very large research community, ranging from public universities, to corporate research firms.
Another key learning experience comes from being at the cutting-edge of HPC technologies. From new software paradigms, to emerging hardware architectures, this field is rapidly changing where continuous learning is the only constant. I am learning to not only think about the present, but also account for the 'exascale' future. Getting a foot in this tightly-knit network of researchers and HPC specialists opens up tremendous possibilities for my career path ahead.
Experience at CSCS North
The Zurich office is extremely multi-cultural! I count 14 nationalities today in a rather small group. The atmosphere is very informal with little hierarchy. We work in small teams on numerous projects in several shared office spaces of 2-4 people. My project also involves regular visits to the vibrant and sunny city of Lugano, which can be refreshing after an overdose of grey in Zurich. There is great variety in terms of academic backgrounds as well. It is indeed lovely to have very knowledgeable and highly accomplished colleagues to whom I can talk about a broad spectrum of topics. As they say, the best room to be is where one finds oneself being the least capable! I find lessons to learn from everyone around me.
We had our first team-building retreat this October at a rather unconventional choice of an alpine cabin which can only be reached by a long hike through a forest and the snowy mountains. It was a good opportunity to reflect on the working structure, plan for the future and getting to know each other better. It has been a great beginning and I am optimistic about making a positive impact with my project and the learning experiences ahead. All these things aside, it is mega cool to say that I work with one of the fastest supercomputers in the world!