My software development activities go back to my undergraduate studies when I found a fascination with 3D world and started learning OpenGL and C++. As my adviser learned about my computer skills and passion, he offered me a project on visualization of select solidification mechanism in materials science. I combined my OpenGL 3D rendering skills with my materials science knowledge and developed a series of interactive visualization of solidification processes.
As I joined the Sharif University of Technology for my graduate studies (MS) my advisor offered me two simulation and modeling projects in addition to my thesis research (synthesis and characterization of PMN-PZT ceramics): 1) Electro-thermal simulation of BaTiO3 thermistors, and 2) Oxidation kinetics of graphite in MgO-C composites. For the former project, I developed a Finite Difference solver for samples with cylindrical geometry using C++ and then developed a second software for 3D visualization of the results using OpenGL and C++. For the latter, I employed the Neural Network toolbox from MATLAB and trained a Neural Network learner on experimental data my advisor provided. The trained model was then used to generate interpolated data to understand the oxidation kinetics of the graphite. Analysis revealed changes in oxidation activation energy that was not distinguishable through original data.
As I moved to the US for graduate studies, my research mainly involved designing experiments and analyzing data using commercially available data analysis software such as Origin Pro, Igor Pro, and Bruker DIFFRAC.SUITE. While commercial data analysis software was sufficient for my research, I found a need to develop an XRD modeling software using C++ to detect alloying content (x) in epitaxial Gd1-xSrxTiO3 thin films. This software that I developed showed satisfactory results compared with RBS data.
As I started my first job at NASA, I witnessed the inefficiency of the automated routing for layout editor software, which motivated me to pursue this topic as my M.S. in computer science project. The resulting algorithm and models developed can solve complex problems is a short time, saving time and money for the engineering industry.
My enthusiasm for solving hard and interesting problems was my motivation to pursue and learn more about scientific software development, model development, algorithm design, data analysis, and machine learning.