My wife and I are moving out of Utah this summer (2018), sooner if my new job requires it. We are buying our first home in California (most anywhere), Colorado (mostly the Denver-Boulder area), or Washington (mostly the Seattle area). I'm excited at the prospect of joining a new team of intelligent software engineers in any of these places.
I'm not looking for just any software engineering job. I want to be challenged. Programming is fun when it's challenging and involves deep thought. I’m looking for a role where my time is spent analyzing a difficult problem to understand it, decomposing it into a coherent logical structure, and writing algorithms to optimally solve it. Some of my career has had me do this and some of it has been too shallow to keep me interested. I do not want an easy role where the primary job is basic data pushing, i.e., accepting input, applying simple business logic, basic data storage and retrieval, etc. My ideal career path has me writing more machine learning algorithms and working closely with super smart machine learning, artificial intelligence, and data scientist experts. My wife and I are moving soon and I will consider joining a team in California, Washington, or Colorado.
I've been mostly a backend web, application, SaaS, and restful API developer. I have about 8 years of experience across the full stack, primarily using C#, .NET, MSSQL, and Javascript. More recently I've been developing with Angular2 (now Angular5), MySql, and .Net Core, and building, deploying, and maintaining microservices in Amazon Web Services (AWS).
In the middle of my career I went back to school to pursue a Masters degree in Computer Science. I did this because I never got an undergraduate degree in CS. I wanted to fill in some gaps in my knowledge and broaden my perspective on what could be accomplished with programming. My focus was in applying and customizing a multi-objective genetic algorithm and using some basic artificial intelligence techniques to optimize a computational model of bacterial colony folding. I spent 2 years studying, writing, and applying machine learning algorithms including various heuristic searches, feed-forward neural networks, linear regression, clustering and feature extraction. For these I programmed in Java, Python, and Matlab. During these two years I co-authored two papers and wrote a thesis, "A Parallel Genetic Algorithm for Optimizing Multicellular Models, Applied to Biofilm Wrinkling"
I studied cognitive psychology, neuroscience, the nature of consciousness, language, and computer science at the University of Utah and graduated with Bachelor degrees in Psychology and Philosophy. Besides gaining valuable exposure to all of these fields, I honed my analytical reasoning and writing ability. Today I consider my ability to construct logical arguments and communicate them clearly in written language to be one of my greatest strengths.
I am a curious, life-long learner committed to excelling at everything I do. I love studying philosophy, analyzing information, constructing and decomposing logical arguments, and writing algorithms.
In this work we used a simple hill climber to fit cellular parameters using the multicellular output of the simulated model. I programmed most of the hill climber and edited the writing Q. B. Baker, G. J. Podgorski, C. D. Johnson, E. Vargis, and N. S. Flann, "Bridging the multiscale gap: Identifying cellular parameters from multicellular data," in Computational Intelligence in Bioinformatics and Computational Biology (CIBCB), 2015 IEEE Conference on. IEEE, Aug. 2015, pp. 1-7. [Online]. Available: http://dx.doi.org/10.1109/cibcb.2015.7300323
Bridging the multiscale gap: Identifying cellular parameters from multicellular data - Full Text
Studied cell death as trigger for wrinkling in biofilms using BioCellion, a high performance cellular biology simulator written in C++. My primary contribution was in customizing Biocellion to simulate biofilm wrinkling.
Cell Death as a Trigger for Morphogenesis- Full Text
I made significant improvements to the Java code which simulates biofilm wrinkling, including speeding it up over 10x, adding realistic cell growth and death, and increasing the sensitivity of the model to different types and rates of wrinkling. The bulk of my time has gone to programming a genetic algorithm and feature extraction program (also in Java), which fits the model parameters. My system compares simulated output to experimental data (of real biological biofilms) on the basis of features extracted from each. It runs many simulations in parallel in a local cluster and uses a multi-objective genetic algorithm to determine which sets of parameters results in wrinkling most closly matching the experimental data. The algorithm uses experimental data to fit the model both spatially and temporally. May be published in the future
My thesis is available upon request. Just email me! 7cdjohnson7@gmail.com