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.
2019 - 2021
While consulting with InitialView (https://initialview.com), 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.
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)
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
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.
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
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
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
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
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. https://doi.org/10.1016/B978-0-12-800049-6.00173-6
Non-adaptive amino acid convergence rates decrease over time
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, https://doi.org/10.1093/molbev/msv041
Ruby on Rails
Markov chain Monte Carlo analysis