I am an experienced software and research professional having spent years in industry and academia.
I am skilled in C/C++, Java, Python, R, Matlab/Octave, and SQL programming and have experience with
I have a strong interest in parallel computing and enjoy spending time building small clusters from SoCs and old computers to run and test parallel algorithms. My interest in computing coupled with my passion and experience in mathematics draw me to research in compuational mathematics such as Computational Fluid Dynamics, Data Sceince, Machine Learning, Numerical Methods, and Combinatorics and to professional fields where I can best apply my talents, abilities, and knowledge.
Developed and maintained NISC's Subscriber Information System (SIS). In particular I worked on the application's marketing, rating and billing, payment processing, reporting, credit and collections, and cooperative management functionalities. With my promotion I became largely responsible for the continued development and maintenance of NISC's marketing project while still developing my knowledge of other billing and reporting functionalities.
Worked as part of a team in an Agile/Scrum environment to develop and maintain NISC's Subscriber Information System (SIS). In particular I worked to build knowledge of the application's marketing, rating and billing, payment processing, reporting, credit and collections, and cooperative management functionalities as well as knowledge of the Java programming language and the frameworks and libraries used by NISC (EJB, JBoss/Wildfly, Hibernate, etc.).
Developed parallel implementations of a novel algorithm for building more optimal classification and regression trees using the C++ and Python programming languages. Assisted in the analysis of datasets to determine when the algorithm will outperform CART's greedy splitting decisions. Took responsibility of presenting the work to SPAWAR who supported the research.
Worked on a team formed to analyze student data and determine factors leading to success in mathematics during a student's first few years of college. This analysis was presented to the South Dakota State legislature to help secure departmental funding for various mathematical programs.
Worked as a software consultant/freelancer developing innovative solutions in a variety of industries. Took responsibility for the completion and correctness of all software delivered to my clients. Developed projects ranging from hundreds of lines of code to tens of thousands in languages including Python, C++, and Java as well as some web languages.
Learned new languages, technologies, and business practices while developing back-end telecommunications billing applications in an Agile/SCRUM environment. Was part of a small team working to innovate CHR's newest addition to their billing software suite.
Caudle, K., Pyeatt, L., Morast, A., Karlsson, C., Hoover, R. C. (2019). Building a Better Decision Tree by Delaying the Split Decision. Proceedings of the 2019 3rd International Conference on Compute and Data Analysis - ICCDA 2019. doi:10.1145/3314545.3314548
In general, I think it is vastly important to give back to communities that have supported
you or to projects you find important or interesting. As a software engineer, one of the ways I
can give back is to contribute to open source projects (with the added benefit of growth and enjoyment).
Contributions to OSS help me to develop and hone my skills while also assisting in providing necessary
products that might otherwise not exist or which have commerical counterparts that are
inaccessible to some.
Below is a list of some of the OSS projects that I have either contributed to or use and am interested in contributing to but have not yet found the opportunity.