January 2018 – Present
Bloomington, Indiana

Research Assistant

Johan Bollen

Responsibilities include:

  • Collecting social media in accordance to the EDA grant
  • Applying sentiment analysis tools for rating tweets
  • Building null models and bootstrapping data for statistical analysis
August 2017 – December 2017
Bloomington, Indiana

Associate Instructor

Indiana University

Courses: Information I-400: Collective Intelligence

Responsibilities include teaching, designing homework and projects, and grading.

August 2016 – May 2017
Bloomington, Indiana

Research Assistant

Filippo Radicchi

Responsibilities include:

  • Reducing the computational complexity of a current community detection method
  • Analyzing the efficiency and accuracy of the new method on artificial and real networks
June 2016 – August 2016
Malibu, California


HRL Laboratories

Responsibilities include:

  • Collecting social media data using Hadoop with MapReduce
  • Agent based modelling the spread of viral protest hashtags using Python3
January 2016 – May 2016
Bloomington, Indiana

Associate Instructor

Indiana University

Courses: Informatics I-210: Information Infrastructure I

Responsibilities include teaching Python3, proctoring exams, and grading homework assignments.

August 2015 – December 2015
Bloomington, Indiana

Research Assistant

L Jean Camp

Responsibilities include:

  • Coding and analyzing participant responses and surveys about computer security
  • Making visualizations using Python3
August 2014 – May 2015
Bloomington, Indiana

Associate Instructor

Indiana University

Courses: Informatics I-201: Mathematical Foundations of Informatics

Responsibilities include teaching mathematics, proctoring exams, and grading homework assignments.

August 2013 – December 2013
Ann Arbor, Michigan

Student Instructor

Univeristy of Michigan


  • Complex Systems 209: Agent Based Models
  • Complex Systems 391: Modeling in Political Science

Responsibilities include making and grading classroom homework, quizzes, and exams.


Early Warning Indicators and Resilience

Using early warning indicators to predict phase transitions

Error-Correcting Decoders for Communities in Networks

A new method of community detection that uses a message passing algorithm across pairs of nodes.

Promoter Heterozygosity and Function

Measuring diversity of DNA sequences


The structure of communication networks can be more or less “democratic”: networks are less democratic if (a) communication is more …

Social media is increasingly monitored during periods of societal unrest to gauge public response and estimate the duration and …

It is difficult for most people to know if they are working with a secure remote system or facing an online threat. The popularity of …

Nick C. Ellis, Ute Römer, and Matthew Brook O’Donnell present a view of language as a complex adaptive system that is learned …



Coding Skills -

  • Highest Proficiency with Python2, Python3, Latex
  • Experience with C, C++, R, MySQL, Bash, Gephi, Matlab, Hadoop
  • Python Packages
    • Analysis - NumPy, SciPy, Pandas, GeoPandas, nltk, scikit-learn, PyMC3, Theano
    • Data - BeautifulSoup, SQLAlchemy,
    • Visualization - matplotlib, seaborn, plotly

Technical Skills - Data Science, Big Data Analysis, Network Science, Sentiment Analysis, Machine Learning, Statistics (parametric and non-parametric)