“Skill is the unified force of experience,
intellect and passion in their operation”
— John Ruskin
Computer Skills
Python Programming
I use Python daily. Whether its for scrubbing through or processing data, visualizing data, simulating mathematical models or as an interface to other languages like MATLAB or lower-level languages like FORTRAN, Python is my go-to language for high-level scientific computing. I also have extensive experience in Cython, an extension of Python that allows code written in Python syntax to be compiled.
Interfacing with and coding in
lower-level languages
While high-level languages like Python are great in terms of the time-savings that they give the programmer, it comes at the cost of speed. At times in scientific computing, the wait times become so arduously long when computing is done using higher-level languages. Compiled languages like C, C++, or FORTRAN alleviate this problem. I have extensive experience coding in FORTRAN and am also proficient in C++. I can invoke these languages when calculations become more expensive.
Parallelization in OpenMP
We’re lucky to be in an age where computational resources are no longer a scarcity. As such it is generally advisable to frame computations in a way that can maximally exploit the availability of these resources. OpenMP provides an easy high-level framework that allows one to easily parallelize code. To use it efficiently one has to be aware of how memory is being accessed within the code so as to ensure that no unintentional consequences arise from utilizing parallelization. I generally use OpenMP to simulate many replicates of a single experiment in parallel, enabling me to get results with high statistical significance much quicker relative to serial simulations of these replicates.
Utilization of compute clusters
Sometimes calculations get too big and you need more compute cores than your desktop computer or laptop provide. Luckily there are organization that offer and maintain large computer clusters that can be used for these types of calculations. Canadian academics have access to the computer clusters of ComputeCanada and I have regularly used these resources for a number of years and have accumulated (FWIW) a usage of over 75 compute years.
Shell Scripting
Automation. It’s the name of the game when it comes to efficiency in workflows. Over the years I’ve learned how to leverage the shell (bash and zsh primarily) to automate tasks that require many repetitions. In particular, knowledge of shell scripting has made my use of compute cluster resources much more efficient as job creation, specification, and submissions can be automated.
Computer Algebra Systems
I am familiar with Mathematica and in general it’s pretty great. I’m familiar enough with it that I can generally coerce it to do many of the theoretical calculations that I need done for my research; however, functional programming definitely isn’t my strong suit. Using it though has definitely expedited certain aspects of my research. I am also acquainted with Maple though I generally find its syntax pretty terrible so I avoid it if I can.
Notable classes taken
Electrochemical Energy Storage Systems: Modeling & Estimation
Energy Storage and Conversion: Photovoltaics, Batteries, and Fuel Cell
Nonequilibrium Statistical Mechanics & Stochastic Processes
Equilibrium Statistical Mechanics
Numerical Partial Differential Equations
Control Theory
Introduction to Machine Learning
Topics in Soft-Condensed Matter & Biological Physics
Computational Physics
Protein Structure & Function
Introduction to Particle Physics
(Undergraduate) Quantum Mechanics
(Undergraduate) Electromagnetism
Note: classes with links were special topics courses that were not regularly offered at Simon Fraser University.
Academic Awards
NSERC PGS D
The NSERC Postgraduate Scholarships – Doctoral (PGS D) program provides financial support to high-calibre scholars who are engaged in an eligible doctoral program in the natural sciences or engineering. This support allows these scholars to fully concentrate on their studies and seek out the best research mentors in their chosen fields.
NSERC CGS M
A merit-based award given by the Canadian National Sciences and Engineering Research Council (NSERC) to help develop research skills and assist in training of students who have demonstrated high standard of achievement in undergraduate and early graduate studies.
BC Graduate Scholarship
A merit-based award funded by British Columbia’s Ministry of Advanced Education. Its purpose is to allow the province to attract and retain the best and brightest graduate students and expand BC’s research capacity.
Physics Charter Faculty Prize
An award given to the top graduating student in any major or honors Physics program on the recommendation of the Chair of the Department.
NSERC USRA
Undergraduate Student Research Awards (USRA) given by NSERC in order to develop research skills and foster curiosity in undergraduates as well as to encourage the pursuit of graduate studies in the natural sciences and engineering. I won the maximum number (3) of these that NSERC allows a student to hold over the course of my undergraduate career.
SFU Undergraduate Open Scholarship
An automatic award given to SFU undergraduate students who maintain a certain number of credit hours in a given semester and who retain a cumulative grade point average of above 3.67 (A-). The award is given on a semester-by-semester basis. I was given this award 8 out of the total 12 semesters in my undergraduate career.
SFU Academic Excellence Entrance Scholarship
An award given to incoming undergraduates who have achieved greater than 95% in their final year of secondary education.