Shahrokh Shahi

790 Atlantic Dr NW . Mason Bld, Office 4132 . Atlanta, GA 30332 . shahi@gatech.edu

I’m a PhD student in Computational Science and Engineering (CSE) at the Georgia Institute of Technology. Before starting my PhD, I have been a postgrad student at Imperial College London where I earned my second Master’s degree in Computer Science.

When it comes to talking about my interests, the question, that I have always asked myself about my future career, is “Engineering or Computer Science?” That's been the question I never could find a solid answer to. Such indecisiveness and following my interests gradually drew me to get two Master’s degrees, one in Civil-Structural Engineering and another in Computer Science but, despite of enjoying and satisfying performance in both of them, I didn’t feel that I belong to exactly one of these areas. That's why I picked CSE as my field of study and started to find a way to incorporate the computer science concepts in engineering applications. So, I think I am a hybrid now! Half computer scientist/developer, and half engineer (Honestly, at the time of writing this part, I can give it ¾ Computer Science, ¼ Engineering! who likes computer science the most, but sometimes wants to employ the cs concepts in real-world engineering applications).

Now, after spending a period of time in Georgia Tech, I should confess that I have badly missed my adventures in pure computer science topics that I have had at Imperial College London, but I am also enjoying my current research area and very excited about it. As a PhD student, my research interests mainly include, but not limited to Data Science and Machine Learning, (Big Data, Pattern Recognition, Deep Learning, Data Visual and analytics, etc.) and incorporating these topics in real life engineering applications, such as interval and finite element analysis. Currently, I am working on Interval Neural Networks and their applications in computer science and engineering fields.

Apart from my research, I am also working as a software developer and enjoying freelance consulting jobs.


Education and Experience


Skills

(1) Programming Languages:

    (+10 years)
  • Python
  • MATLAB

  • (5 to 10 years)
  • Java
  • C++
  • (1 to 5 years)
  • Bash
  • Fortran
  • VB
  • (Less than 1 year)
  • Perl
  • Prolog

(2) Machine Learning, Data Visual & Analytics:

    (1 to 5 years)
  • TensorFlow
  • Scikit-Learn
  • D3
  • AWS
  • (Less than 1 year)
  • Hadoop
  • Hive
  • Spark/Scala
  • Hbase
  • SQLite
  • OpenRefine
  • Tableau
  • Gephi
  • Microsoft Azure
  • Azure ML Studio
  • MMap
    (PageRank)

(3) Web Development:

    (1 to 5 years)
  • Html
  • CSS
  • Javascript
  • jQuery
  • (Less than 1 year)
  • django
  • Flask
  • Node.js
  • Ajax

(4) App Development:

    (Less than 1 year)
  • iOs/Swift
  • Android

(5) Programming Tools & IDEs:


  • Git
  • GitHub
  • GitLab
  • BitBucket
  • Sublime Text
  • Vim
  • IntelliJ IDEA
  • Eclipse
  • Xcode

(6) Engineering Softwares:


    (1 to 5 years)
  • Abaqus/CAE
  • SolidWorks
  • Comsol Multiphysics
  • HyperMesh
  • AutoCAD

(7) Others:



Portfolio

The following is a few examples of the projects I have accomplished. There are lots of other projects that I'm going to add them to this collection. So, as long as you can see this text, this section is not complete yet and will be evolving and updating! Click on to see more details.

symp

Feature Selection based on Information Theory

Finding the most informative dimensions (pixels) of face images, given a dataset of two classes of males and females images. The most informative pixels are demonstrated by a heatmap of informativeness scores

symp

Binary Classification: Naive Bayesian Classifier, K-Nearest Neighbors (KNN), and Logistic Regression

Employing three different classification algorithms to classify images into two male and female classes. It is shown that logistic regression works slightly better than the other two approaches

symp

Density Estimation with KDE and GMM

First, running PCA on 13-dimensional "Wine Quality" dataset to reduce the dimension to two and visualize the multi-modal behaviour. Then, using the Expectation-Maximization (EM) algorithm to fit a Gaussian Mixture Model (GMM) to the data and comparing the results with Kernel Density Estimation (KDE) and Histogram

symp

Principal Component Analysis (PCA)

Conducting Principal Component Analysis (PCA) on a dataset of face images to find the principal directions. The analysis shows that by keeping the top 50 dimensions, we can pretty much capture all the information in the dataset.

symp

K-Means Clustering

A Simple K-Means Clustering Test

symp

Traveling Salesman Problem (TSP)

Originally, it was a group project (group of four) in CSE Advance Algorithms course. Even though I was exempetd, I accomplished and submitted this project individually, and won one of the performance competitions. In this project, I developed multiple different algorithms (including Brute-Force, Branch-And-Bound, Approximation, and a variety of Local Search approaches) in Python. At the end, a comprehensive report is presented including algorithms details, empirical evaluations, accuracy tables and evaluation plots (QRTDs, SQDs, etc.).

symp

IFEM Computational Toolbox

An Interval Finite Element Toolbox to Study Uncertainties in Mechanical Structures

symp

IFSA - NAFIPS 2019

Best Student Paper Award

symp

Modeling and Simulation

Cellular Automota, Monte Carlo, Python, Jupyter Notebook

symp

Atlanta House Price Prediction

Machine learning-based interactive price estimation and visualization tool. In this project, I developed the front-end

symp

MapReduce on AWS and Azure HDInsight

Multiple analysis on Google n-grams dataset to obtain statistical information using Apache Pig. At first, the interactive PIG shell has been used to check the procedure step-by-step on a smaller dataset through SSH, then the associated PIG script with all commands has been uploaded on the Amazon Elastic MapReduce (EMR).

In a similar project, a MapReduce program to compute some metrics of a large social media (Friendster) graph has been implemented on Microsoft Azure HDInsight in which I developed a Hadoop code in Java.

symp

Data Visual and Analytics

Using Twitter REST API (through Tweepy library) to retrieve friends and followers information on Twitter. Then, Visualize the obtained network graph using Gephi and calculate the metrics of the graph, such as average node degree, diameter, path length, etc.

symp

Data Visual and Analytics

Using D3 to visualize a force-directed network graph (including visual considerations such as labels, scaling node sizes, etc.)

symp

Data Visual and Analytics

Using D3 to visualize a "wine quality" dataset by creating a set of scatter plots. The dataset provides the quality values based on eight red wine chemical features. The symbol properties, such as sizes and colors, are scaled to improve the visualization.

symp

Data Visual and Analytics

Using D3 to create a collapsible dendogram to visualize hierarchical data. The dataset is a json file.

symp

Data Visual and Analytics

Using D3 to create a heatmap to visualize the number of appearances of characters from each six of the houses in HBO’s Game of Thrones across episodes and seasons.

symp

Data Visual and Analytics

Using D3 to create an interactive bar chart to visualize a dataset decribing the total revenue of all the movies in the given franchise.

symp

Data Visual and Analytics

Using D3 to create a choropleth map of world population and displying a tooltip, on hovering over a country, showing the contry's name, population, etc.

symp

Structural Design Optimization

Developing a MATLAB toolbox implementing optimization approaches for engineering applications.

symp

Structural Design Optimization

Developing a MATLAB toolbox implementing optimization approaches for engineering applications.

symp

Structural Design Optimization

Developing a MATLAB toolbox implementing optimization approaches for engineering applications.

symp

Structural Design Optimization

Developing a MATLAB toolbox implementing optimization approaches for engineering applications.

symp

On-line Learning of User Privacy in Social Networks

Developing a web plugin implementing a Parametric Markov Chain (PMC) model to evaluate the privacy risk and social benefit of sharing information with friends in a social network. In this project, Facebook is considered as the main case study. Accordingly, the Facebook Graph API and related libraries have been employed in the developed Java code to create the back-end.

symp

Particle Simulation on Java

Implementing a Java event driven simulation of the movement of particles undergoing elastic collisions.

symp

Algorithms for Graph Partitioning: Theory and Practice

A systematic study of the major techniques and discoveries in the field of Graph Partitioning algorithms, with an emphasis on the Spectral Graph Theory. Application in clustering and community detection in social networks, and also load balancing in parallel computations. (Master's Thesis in Computer Science)

symp

Designing and Development of a Mobile Robot

Employing robotic kits and Raspberry Pi single board computers to implement robotics concepts, such as wheeled configuration and uncertainty in movement, using sensors to implement reactive behaviors and considering probabilistic localization filters and place recognition concepts,etc. Programming in Python.

symp

MSc Thesis in Structural Engineering

Developing a computational package (MATLAB and Java) for multiscale simulation of biomechanical systems: Human aortic heart valve


© 2020 Shahrokh Shahi. Atlanta, GA