Technological Skills

I grew up in a computer oriented household. My first memories of computers are of playing Alpiner on a TI-99/4A. Since that time my family always made an effort to have a current PC. As a result, I picked up many computer skills over the years. In high school, I learned to program in PASCAL. Next I learned to program in C/C++. After that, I branched out into many areas. Because I had the opportunity to work on many different projects as part of studying applied mathematics, I have learned how to use a variety of software.

The following is a list of programming languages and software I currently use or have used for various projects in the past.


Programming


C++

I used C++ in combination with Fortran while developing particle collision models within an adaptive mesh framework. This work was part of an effort in exploring the potential to modernize the Multiphase Flow Software Suite, MFiX, for optimal performance on exascale computing machines.



cpp logo

Fortan

Fortran has advantages in the way it handles matrix arithmetic. In addition, a large amount of time-tested code for scientific applications in existence today was written in Fortran. For these reasons, it is still commonly found in high performance computing applications today. I wrote and profiled code in Fortran as part of my contribution towards overhauling a multiphase flow simulation for use on the next generation of super computers.



cpp logo

C

My most recent coursework and self study has been with C. I learned basic programming structure with C in classes. Later I taught myself how to use pointers. Finally, working with CUDA has forced me to think quite a bit about how memory and data is stored and moved around.

Link to github: Random Number Test


c logo

CUDA

CUDA is an API created by Nvidia. I use it within the C programming language in order to use Nvidia GPUs to accelerate parallelizable computations. The multiscale stochastic partial differential equation model for the exploration of lung mucus would be too slow to be useful if it were not for the speedup GPUs provide. You can find code for a baseline model that was written to validate the approach at my GitHub.

Link to github: Maxwell Model


cuda logo

Python

I use Python for the analysis of output data and to prototype model behavior. I have found that Pandas and Numpy make it easy to read-in and manipulate data. I use Matplotlib for basic graphing, but it is capable of doing everything. For beautiful graphs and interactive visualizations the easy way, Bokeh is best, however I have found Matplotlib does things it cannot, such as a two line title.
Link to github: Coming Soon

python logo numpy logo bokeh logo matplotlib logo pandas logo

BASH Scripting

I wrote scripts to setup and run large numbers of simulations with different input parameters. The example below reads lines from a text file, creates folders, runs the simulations and saves them in the appropriate folder.
Link to github: SH Files


bash logo

HTML, CSS

I made this responsive website using the font-end framework Bootstrap. I also made an updated website for the University of South Carolina SIAM Chapter. Since the SIAM website is a more recent work, the code is bit cleaner.

See the website: University of South Carolina SIAM Chapter


html css logo bootstrap logo

Development Tools


Jupyter

I use Jupyter to develop reports in conjunction with python, pandas, numpy, matplotlib and bokeh. Jupyter has some nice features, such as being able to combine latex equations, commentary, code, and visualizations all in the same place.
Link to github: Coming Soon


jupyter logo

Git

I have been using Git for version control since January 2017. Before Git I had over 20 files in my working directory. After Git, I only have 3.
Link my github page: GitHub


git logo

Vim

I highly recommend spending the time to learn vim if you expect you'll be coding for more than a few months. It makes it faster for me to implement many of the things I have listed above.
Link to Vim: Vim

The advantage of vim becomes apparent when you start learning how to use its features. For this I recommend Practical Vim by Drew Neil.
Publisher's page: The Pragmatic Bookshelf


Vim logo

Ubuntu, GNU/Linux

I am also a fan of Ubuntu and GNU/Linux. I started dual-booting in 2009. Now my home machine only runs Ubuntu. Ubuntu is free and open source. You can try it by booting from a thumb drive.
Get Ubuntu: Ubuntu Homepage


Ubuntu logo

Computational Software


SageMath

SageMath is free open-source mathematics software. I used it to automate and compute a large number of integrals for my Math and Music project at the California State University, East Bay.
Link to github: Coming Soon


Sage logo

MATLAB

Most of my course work in linear algebra, numerical computation and numerical differential equations at UC Davis and the University of South Carolina was done in MATLAB. In addition, I have written scripts in MATLAB to test analysis methods, analyze data and produce visualizations.
Link to github: Coming Soon


MATLAB logo

R

R is a free software environment for statistical computing and graphics. I wrote scripts in R analyze of large amounts of output data. My favorite part of R is all the examples in the help.
See an example script on GitHub: Coming Soon


R logo

Mathematica

I used Mathematica for course assignments at California State University, East Bay. When I was taking real analysis, I made the animation below of Lebesgue integration.

See the code: Wolfram Mathematica Plots


Wolfram Mathematical logo

Maple

I taught Maple labs as part of my Calculus teaching assistant duties. Students learned how to make basic graphs and do standard Calculus operations with the software. They also learned basic for loops and some iterative processes. Final projects consisted of fractal designs and solids of revolution.
Link to github: Coming Soon


maplesoft logo

Graphic Design


GIMP: GNU Image Manipulation Program

GIMP is a free software image editor which allows you to do all sorts of things with creating images and manipulating photos. I learned how to use GIMP by watching video pod casts on the subway on my way to work when I lived in Beijing.
Most the graphics created in my Powerpoint slides and on my posters were done with GIMP.


gimp logo