“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.