Development Experience

Consultant to Intuidex


I created a number of different products for Intuidex.


Tools: Typescript, Angular,, D3.js

Consultant to Initialview

2019 - 2022

While consulting with InitialView (, I helped with many different aspects of a number of their products. InitialView's main product is called an Interview in a box (IIAB). I developed a full testing page for interviewees to test their connection and hardware before the actual interview so that the interview would go as smoothly as possible. I streamlined the video editing web pages that allow editors to select the best parts of the interview to be included in the final cut, as well as adjust the brightness, color, and relative volumes of the interviewer and interviewee.


Tools: Python, JavaScript, Django, Vue

CTO of Sway

2019 - 2021

The main goal of Sway is to create a double-sided marketplace for content creators and brands to meet and execute contracts. I worked as the CTO and I was responsible for building and maintaining the full stack. I outsourced designs for the app then built the entire app using Meteor.js and Meteor-Kitchen. I took the app from prototype to final product and a soft launch with around 200 real customers.

Tools: JavaScript, Meteor.js, MongoDB

The Acceptability Model

2017 - 2019

The goal of the Acceptability model project was to propose a new model of protein evolution based on the assumption that the propensity for each amino acid at a site changes over time. Most previous models either required the amino acid propensities to be unchanging with time or to only change at specific points on the tree. Although it is much more difficult to design and test a model that changes continuously, that was precisely the goal of this project.

Tools: Perl, R, Model optimization using Markov chain Monte Carlo (MCMC)


Read more about the Acceptability model


2013 - 2018

The goal of the Phylogenetics, Likelihood, Evolution and compleXity (PLEX) project is to develop a platform for testing complex models of evolution against large amounts of DNA sequence data. The goal is to make possible fitting to data more realistic models of evolution that were previously computationally impossible to test. This is achieved by using an advanced statistical technique known as Uniformization, which allows avoiding previously computationally expensive methods such as Spectral Decomposition of the evolutionary rate matrix. PLEX compares models in a Bayesian framework using Markov chain Monte Carlo (MCMC) anaylsis.

My goal using PLEX was to implement and test a novel and more realistic model of evolution. When I inherited the codebase of 90,000 lines of C and C++ code, it did not compile or run across Windows and Linux platforms. The internal strcuture of the code had the legacy of many partially developed methods and half removed analytical dead ends. Despite these, I succeeded in implementing a few new models into PLEX.

After digging into the codebase more, I decided that it would be more efficient to new models by completely rewrite PLEX, keeping only the best testing strategies developed. I called this new program SimPLEX because it has a simple and clean API for new models to be built against, while retaining all the computational efficiencies of the old codebase. Using this new structure, I designed and tested several novel models of evolution that would have taken months to implement into the old codebase.

Tools: C, C++, Perl, R, Mercurial, Model optimization using Markov chain Monte Carlo (MCMC)

PLEX code repository: Private

SimPLEX repository: Private

Read more about PLEX


University of Colorado Denver

PhD, Structural Biology and Biochemistry

August 2012 - August 2019

In 2012 I joined a computational evolutionary biology laboratory at the University of Colorado, Denver developing software to test models of protein evolution. The projects required expertise in Perl, C/C++, and R programming languages. The methods used for these projects include object oriented programming, and Bayesian statistics using Markov chain Monte Carlo methods. I learned these languages and the relevant statistical frameworks for assessing the likelihood of complex models of protein evolution. I have written a PhD thesis consisting of my contributions to the field of biochemistry and evolutionary biology, including the relevant software packages.

Princeton University

B.A. in Physics, Minor in Biophysics

August 2008 - June 2012

I was first introduced to programming in the advanced introduction to programming class (COS126). We learned the basics of Java and computer science theory, such as the computational complexity of operations and the different container types (linked list, set, etc). These basics were very useful when I was writing my own software, and I've been surprised by how few scientists who analyze data are aware of these computational basics.


Detecting Amino Acid Propensity Changes Over Time

October 2019

Detecting Amino Acid Propensity Changes Over Time by Stephen T. Pollard, Katerina Kechris, and David D. Pollock

Markov Katana: a novel method for Bayesian resampling of parameter space applied to phylogenetic trees

October 2019

Markov Katana: a novel method for Bayesian resampling of parameter space applied to phylogenetic trees by Stephen T. Pollard, Kenji Fukushima, Seena D. Shah, Zhengyuan O. Wang, Todd A. Castoe and David D. Pollock

Mechanistic Models of Protein Evolution

August 2017

Pollock D.D., Pollard S.T., Shortt J.A., Goldstein R.A. (2017). In: Pontarotti P. (eds) Evolutionary Biology: Self/Nonself Evolution, Species and Complex Traits Evolution, Methods and Concepts. Springer, Cham

Genome of the pitcher plant Cephalotus reveals genetic changes associated with carnivory

February 2017

Fukushima K., ... Pollard S.T., et al. "Genome of the pitcher plant Cephalotus reveals genetic changes associated with carnivory." Nature Ecology & Evolution 1 (2017): 0059.

Parallel and Convergent Molecular Evolution


Pollock D.D., Pollard S.T, (2017) “Parallel and Convergent Molecular Evolution.” Encyclopedia of Evolutionary Biology.

Non-adaptive amino acid convergence rates decrease over time

January 2015

Richard A. Goldstein, Stephen T. Pollard, Seena D. Shah, David D. Pollock; Nonadaptive Amino Acid Convergence Rates Decrease over Time, Molecular Biology and Evolution, Volume 32, Issue 6, 1 June 2015, Pages 1373–1381,


  • Statistical model inference and comparison

  • Bayesian statistics

  • Markov chain Monte Carlo analysis

  • Sklearn

  • Pandas and NumPy

  • NLTK

  • Seaborn/Matplotlib

  • Jupyter

  • Vue

  • Angular, Angular.js

  • React

  • Bootstrap,

  • Node.js, Express.js

  • Meteor.js

  • Django, Dnango Rest Framework

  • Ruby on Rails

  • D3.js

  • P5.js, Processing.js

  • Ml5.js

  • Git

  • Mercurial

  • Subversion

  • Docker

  • Vagrant

  • Apache

  • nginx

  • MongoDB

  • MySQL/MariaDB

  • AWS

  • Google Cloud Platform

  • Google Analytics, Google BigQuery, Google Data Studio

  • Meteor Cloud

  • Python

  • Javascript, Typescript, Coffeescript

  • Elm

  • Html5

  • CSS, Stylus, SASS, LESS

  • Slim/Plim templates, Pug, Mako, Jinja2, Mustache

  • Perl

  • C, C++

  • Ruby

  • Java

  • Lua

  • PHP

  • R

  • Matlab

  • LaTeX

  • RestructuredText

  • Markdown