industry-cv/cv.tex

921 lines
46 KiB
TeX

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Wilson Resume/CV
% XeLaTeX Template
% Version 1.0 (22/1/2015)
%
% This template has been downloaded from:
% http://www.LaTeXTemplates.com
%
% Original author:
% Howard Wilson (https://github.com/watsonbox/cv_template_2004) with
% extensive modifications by Vel (vel@latextemplates.com)
%
% License:
% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[10pt]{article} % Default font size
\input{structure.tex} % Include the file specifying document layout
\begin{document}
\title{Curriculum Vitae} % Print the main header
%------------------------------------------------
\parbox{0.5\textwidth}{ % First block
\begin{tabbing} % Enables tabbing
\hspace{2cm} \= \hspace{2cm} \= \kill % Spacing within the block
{\bf Name} \> Otho Ulrich \\
{\bf Website} \> \href{https://www.othoulrich.com/}{https://www.othoulrich.com} \\
{\bf Latest CV} \> \href{https://othoulrich.com/othoulrich-cv.pdf}{https://othoulrich.com/othoulrich-cv.pdf} \\
%{\bf Address} \> 1115 Longview Lane\\
%\> Saline, MI 48176
%{\bf Nationality} \> British
\end{tabbing}}
\hfill % Horizontal space between the two blocks
\parbox{0.5\textwidth}{ % Second block
\begin{tabbing} % Enables tabbing
\hspace{2cm} \= \hspace{2cm} \= \kill % Spacing within the block
%{\bf Home Phone} \> +0 (000) 111 1111 \\ % Home phone
%{\bf Mobile Phone} \> (734) 224 2252 \\ % Mobile phone
{\bf Email} \> \href{mailto:otho@othoulrich.com}{otho@othoulrich.com} \\
{\bf Gitea} \> \href{https://code.othoulrich.com/}{https://code.othoulrich.com} \\
{\bf GPG} \> \href{https://othoulrich.com/othoulrich-gpg.txt}{51375D7EA61E966B} \\
\end{tabbing}}
%------------------------------------------------------------------------------
% Software Skills
%------------------------------------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\section{Resources used in my Projects}
\textit{Bash, sh, etc.}\quad
\textit{Typescript}\quad
\textit{Node.js}\quad
\textit{C++}\quad
\textit{Lua}\quad
\textit{Jinja}\quad
\textit{Helm}\quad
\textit{Perl}\quad
\textit{R}\quad
\textit{Python}\quad
\textit{Java}\quad
\skillgroup{Platforms}
{
\textit{FreeBSD}\quad
\textit{GNU/Linux}\quad
\textit{KVM}\quad
\textit{ESXi}\quad
\textit{Docker}\quad
\textit{Kubernetes}\quad
\textit{Jails~/~BHyve}
\textit{Hydra Host}\quad
\textit{Foreman}\quad
\textit{OpenNebula}\quad
\textit{Fly.io}\quad
\textit{Vultr}\quad
\textit{Aiven}\quad
\textit{GCP}\quad
\textit{AWS}\quad
\textit{Heroku}\quad
}
\skillgroup{Version Control}
{
\textit{Gitlab}\quad
\textit{Gitea}\quad
\textit{Github}\quad
}
\skillgroup{Software Analysis \& Design}
{
\textit{ChatGPT}\quad
\textit{UML}\quad
\textit{CryptPad}\quad
\textit{PlantUML}\quad
\textit{Mermaid}\quad
\textit{Trilium Notes}\quad
\textit{Click-up~/~Notion}\quad
}
\skillgroup{Provisioning}
{
\textit{Gitlab}\quad
\textit{Vault}\quad
\textit{Terraform}\quad
\textit{Ansible}\quad
\textit{Netbox}\quad
\textit{BHyve-VM}\quad
\textit{CircleCI}\quad
\textit{Adamocomp}\quad
\textit{Shipyard}\quad
\textit{Taskfile}\quad
}
\skillgroup{Traffic Control}
{
\textit{HAProxy}\quad
\textit{Nginx}\quad
\textit{Auth0}\quad
\textit{LetsEncrypt}\quad
\textit{Istio}\quad
\textit{Certbot}\quad
\textit{Apache}\quad
\textit{Envoy}\quad
}
\skillgroup{Monitoring}
{
\textit{Gravwell}\quad
\textit{Zabbix}\quad
\textit{Datadog}\quad
\textit{Prometheus}\quad
\textit{Grafana}\quad
}
\skillgroup{HPC \& Data Science}
{
\textit{MPI}\quad
\textit{ZFS}\quad
\textit{Hadoop}\quad
\textit{Anaconda~/~Jupyter}\quad
\textit{Torque}\quad
\textit{Slurm}\quad
}
\skillgroup{Physics}
{
\textit{Cloudy}\quad
\textit{LAMMPS}\quad
\textit{clag}\quad
}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------------------------------------
% Clusters
%------------------------------------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\section{Clusters}
\begin{itemize-noindent}
\item{\textit{Hydra Host PNAP Datacenter} --- Baremetal DC with mesh network. Hosts marketplace services and compute.}
\item{\textit{Signal Platform Primary Cluster} --- Kubernetes cluster. Hosts Signal Advisors platform of microservices.}
\item{\textit{Ford Global Network} --- Eight major data centers and regional hubs. SDN provisioning by NaaS team.}
\item{\textit{Cloud 9} --- \href{http://www.nublado.org}{\textit{Cloudy} group}'s baremetal cluster. Plasma spectroscopy modelling in processor grid format.}
\item{\href{https://cs.wmich.edu/~hpcs/cluster/}{\textit{Thor}} --- WMU cluster. Standard and CUDA nodes. Ran AGN reverberation atomic physics models.}
\item{\textit{MSL Cluster} --- Baremetal. \textit{LAMMPS} molecular dynamics simulations on graphene bicrystals.}
\item{\href{https://wiki.rc.usf.edu/index.php/CIRCE_Hardware}{\textit{Circe}} --- USF's primary compute resource. Material verification and \textit{LAMMPS} simulations.}
\item{\textit{WCCnet Hadoop Cluster} --- Cluster compute services for the AATA's traffic analytics project.}
\item{\textit{O4Data.net} --- My geo-distributed, solar-powered network. Cloud, storage, and compute resources.}
\end{itemize-noindent}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------------------------------------
% Skills
%------------------------------------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\section{Technical and Practical Skills}
\begin{itemize-noindent}
\item{Experienced providing real-time service delivery goals and monitoring in high-stakes environments.}
\item{Strong critical thinking and writing skills, providing for useful and thorough documentation and the ability to efficiently communicate technical concepts with the business.}
\item{Strong systems analysis and design skills provide a strong sense of component networks, system control flows, and abstractions; practiced in applying these concepts to document and troubleshoot solutions across devops problem domains.}
\item{Understanding of the cloud native stack and applying those tools to serve cloud native applications.}
\item{Practiced creating dynamic pipelines to automate system, application, network, and development operations, with an emphasis on saving time and adding efficiency to the decision-making process.}
\item{Sharp view of the software development lifecycle and how to apply it as a CI/CD process to streamline product development and release cycles.}
\item{Understanding of SOC2 requirements and experienced bringing codebases into SOC2 compliance.}
\item{\href{https://code.othoulrich.com/explore}{Significant programming experience}, with strength in many languages and libraries, and emphases on the \href{https://othoulrich.com/examples/backup.sh}{automation of system tasks}, modeling, and on \href{https://code.othoulrich.com/Otho/adamocomp/src/branch/master/broker.sh}{scripting} to \href{https://code.othoulrich.com/science/lammps-graphene/src/branch/master/scripts/bicrystal/stage3.sh}{analyze} and justify \href{https://code.othoulrich.com/science/cloudy-agn/src/branch/master/src/create_fort_files.cpp}{large and inconsistent datasets}.}
\item{Ability to automate provisioning systems for cloud and other virtual environments, practiced across a wide domain of cloud and on-prem resources.}
\item{Experienced maintaining configurations across host clusters, and deploying software consistently across hosts in pretooled and custom pipelines.}
\item{Training and practice in statistical learning, i.e. ``Machine Learning,'' with a variety of learning models.}
\item{Experienced handling large, sparse datasets, i.e. ``Big Data,'' aided by cluster computing for \href{https://code.othoulrich.com/science/clag-agn/src/branch/master/scripts/compute_psdlags.sh}{analysis.}}
\item{Experienced with \href{https://code.othoulrich.com/science/psdlag-agn/src/branch/master/scripts/analyze_lightcurves.sh}{operating and programming for} high-performance cluster computing, i.e. ``Cloud Computing,'' using a variety of task scheduling platforms.}
\item{Practiced with statistical analysis, real and complex analysis, \href{https://othoulrich.com/science/simple_fourier_transform.pdf}{Fourier analysis}, and potential theory.}
\item{Familiarity with most computer systems, esp. \href{https://othoulrich.com/images/adamonet-bsd-install.jpg}{GNU/Linux and BSD}, with a strong shell \href{https://code.othoulrich.com/science/clag-agn/src/branch/master/scripts/plot.sh}{scripting ability.}}
\item{Advanced knowledge of \href{https://othoulrich.com/science/spinz_commute.pdf}{physics} and inorganic chemistry.}
\item{Practical and theoretical experience with electronics.}
\item{Working knowledge of physics codes and \href{https://code.othoulrich.com/science/clag-agn/src/branch/master/scripts/tophat_fft.pl}{signal analysis codes}, especially \textit{Cloudy}, \textit{LAMMPS}, and \textit{clag}.}
\item{Practiced with many document-preparation tools including \href{https://code.othoulrich.com/Otho/cv/src/branch/master/document.tex}{LaTeX}, programmatic UML, and standard-fare office software, with familiarity of \href{https://othoulrich.com/science/utf8report.txt}{Unicode}, markup, and markdown.}
\item{Developed public speaking presence with practice including more than a decade of training, classroom, and presentation experience.}
\end{itemize-noindent}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------------------------------------
% Technical Experience
%------------------------------------------------------------------------------
\section{Technical Experience}
\noindent\begin{minipage}{\textwidth}
\job{Present -}{2022}
{\href{https://www.hydrahost.com/}{Hydra Host}}
{}
{Senior Devops Engineer}
{
\begin{itemize-noindent}
\item{Worked with CPO and product manager to define roadmap and balance engineering factors against product goals and limits.}
\item{Designed and implemented multiple cloud hosting products culminating in the Brokkr GPU marketplace.}
\item{Built Brokkr API, which enables programmatic management of baremetal CPU and GPU resources on the Brokkr marketplace.}
\item{Defined development lifecycle and release standards and SOC2 production change compliance standards. Implemented across all projects, minimizing uncertainty around the software release cycle and security compliance.}
\item{Wrote Gitlab CI/CD library implementing lifecycle, allowing devs to maintain their own pipelines in a few lines by including the relevant jobs, greatly reducing overhead for developers, and easing migrations to new software platforms. }
\item{Defined and automated secrets management for deployment automation using Vault and Gitlab. This minimized, standardized, and secured the configuration process for software deployments by providing a single source of truth for all configuration within each environment; securing those secrets with short-lived, pipeline-specific tokens.}
\item{Greatly simplified pipelines by releasing a set of pre-configured containers, providing environment-specific configuration of Vault, SSH, TLS, and app dependencies. This allows developers to manage software dependencies from a single source of truth and keep project pipelines simple.}
\item{Maintained devops monitoring for leadership and product team, to provide quality, real-time information about software releases in our QC and production environments.}
\item{Contributed to Encore, a tool for provisioning datacenter systems, including backend systems supporting the Brokkr marketplace. This tool automates deployment of all self-hosted compute and software, removing the need for dedicated infrastructure engineering.}
\item{Captured managed service infrastructure in code. Along with code-based deployment of self-hosted services, this capstoned change controls across all production components, managed with Gitlab. This cleared our greatest blocker toward SOC2 compliance.}
\item{Identified business functions, created automation to perform them, and built them into CI/CD as system and integration tests, to generate confidence in deliverables from the product and leadership points of view.}
\item{Built custom Terraform provider for Hydra compute services based on the OpenNebula API.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
% ------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\job{Present -}{2021}
{O4 Data Services}
{}
{Owner and Developer}
{
\begin{itemize-noindent}
\item{\textit{O4Data.net} --- Solar-powered hosting and cloud services. Uses FreeBSD virtualization and my own provisioning tools, data storage with ZFS, and software-defined networking.}
\item{\textit{\href{https://asciireactor.com}{ASCII Reactor}} --- Gitlab hosted by O4Data. Standard Gitlab-CE, with CI/CD and data services, for my projects, and those of a few customers and friends.}
\item{\textit{\href{https://asciidocs.com}{ASCII Docs}} --- Design, documentation, and management platform to compliment ASCII Reactor.}
\item{\textit{Websilo.club} --- Currently designing a "cloud terminal" service to provide a web-based console and drive space with Filestash, with documents using Onlyoffice, file sharing, and additional services.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\job{Present -}{2012}
{Independent Research and Projects}
{}
{Researcher and Developer}
{
\begin{itemize-noindent}
\item{\textit{\href{https://code.othoulrich.com/otho/stashbox}{Stashbox}} --- Secure web data hosting and personal app router using Nginx, Apache, and HAProxy}
\item{\textit{\href{https://code.othoulrich.com/otho/stashapp}{Stashapp}} --- Knowledgebase app for Stashbox using Trilium Notes, Archivebox, and Filestash.}
\item{\textit{\href{https://code.othoulrich.com/Otho/zfs-backup}{ZFS Backup}} --- Simple, many-region, multi-node automated backup solution using ZFS.}
\item{Implemented \href{https://code.othoulrich.com/Factorio/adamo-nuclear}{nuclear}, \href{https://code.othoulrich.com/Factorio/adamo-chemical}{chemical}, and \href{https://code.othoulrich.com/Factorio/adamo-physics}{physics} mods for the industry automation game Factorio.}
\item{\textit{\href{https://code.othoulrich.com/otho/adamocomp/}{Adamocomp}} --- (Outdated) RPA using fuzzy search to patch system operations based on context.}
\item{Wrote a statistical \href{https://othoulrich.com/science/entanglement.html}{program to demonstrate the physical behavior of quantum entanglement.}}
\item{Built a machine learning \href{https://othoulrich.com/science/ML Pulsars.pdf}{program to classify pulsar candidates} with 97\% accuracy.}
\item{\textit{TAAP} --- physics engine to simulate particle behavior under gravity and electromagnetism.}
\item{Developed text-based network games using C and simple graphical network games using java.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\job{2022 -}{2021}
{\href{https://www.signaladvisors.com/}{Signal Advisors}}
{}
{Site Reliability Engineer}
{
\begin{itemize-noindent}
\item{Maintained Signal Advisors platform systems and deployments using Kubernetes, GCP, AWS, Github, CircleCI, and Terraform.}
\item{Worked with technical product manager and engineering director to establish designs and development plans in devops and devsecops problem domains based on business needs in an agile environment.}
\item{Completed migration of Signal platform from GCP Cloud Run to Kubernetes (GKE).}
\item{Installed and configured Istio service mesh using RBAC integrated with Google IAM to serve public and internal endpoints.}
\item{Developed and maintained infrastructure as code using Terraform with hosting from GCP, AWS, Heroku, and Salesforce.}
\item{Integrated Datadog monitoring (logs, metrics, APM, RUM, SIEM) with our systems.}
\item{Established standards for and continuously improved CI/CD using CircleCI and Github.}
\item{Established standard deployment model for microservices hosted in Kubernetes using Helm and Terraform.}
\item{Established standard build environments for our NodeJS, Terraform, and Python projects using containers suitable for local development and automated build environments.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\job{2021 -}{2019}
{TEKSystems, contracted to Ford Motor Company's NaaS Team}
{}
{Network Automation Engineer (DevOps)}
{
\begin{itemize-noindent}
\item{Contributed to and maintained the Network Services Gateway and API, which provides Network-as-a-Service leveraging SDN with F5 load balancing. Services include self-service application migrations, load balancing, DDI, firewall, advisories, and other network services, servicing nearly 10,000 internal applications. Automation reduces the operator time necessary to deploy datacenter applications from days to minutes.}
\item{Helped implement Ford's Google Cloud Platform infrastructure using Terraform, and integrate it into the existing datacenter automation tooling.}
\item{Delivered network service goals for brand and marketing sites for the Bronco and Mach-E product launches.}
\item{Helped lead real-time troubleshooting efforts during major product launches.}
\item{Developed and supported DNS migration automation for thousands of campaign-based URLs, eliminating tens of hours per migration.}
\item{Helped define and automate statistics collection for team's service goals using Grafana and Prometheus, and currently working to create self-service statistics reporting for internal application customers.}
\item{Developed and maintained the CI/CD stack for NSG's APIs and web applications, using Docker, node.js express middleware, BASH, and Quay.io, freeing up days of time per application deployment.}
\item{Established and maintained environment and configuration standards for NSG linux systems and containers, and developed BASH programs to automate operations and node maintenance across cloud architecture, reducing the time to reconfigure cluster applications from about 1 day to about 30 minutes.}
\item{Developed APIs that automate advisories and Webex messaging, and load-balanced service discovery. This allowed customers to define automated service alerts that generate application-level advisories and team-based Webex alerts, removing significant human resources from the advisory process.}
\item{Documented network services and network service APIs for Ford's app owners and cloud and fulfillment teams, operational software for our development team, and developed and led training to teach new developers to replicate our micro-services stack.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\job{2019 -}{2017}
{Mjolnir Software}
{}
{Science Officer, Developer}
{
\begin{itemize-noindent}
\item{Researched and presented physical models intended as possible game engine elements.}
\item{Reviewed scientific information before it is applied in development.}
\item{Researched, designed, developed, and documented game engine elements for \textit{Galaxy In Flames}, the company's major game product, primarily using C\#.}
\item{Developed mathematics, operators, and data geometry for our galaxy-to-meter-scale coordinate tracking system.}
\item{Maintained servers and data services.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\job{2019 -}{2018}
{Department of Physics and Astronomy, University of Kentucky}
{}
{Computational Researcher under Gary Ferland}
{
\begin{itemize-noindent}
\item{Worked on the research team developing \textit{Cloudy}: an atomic physics simulation of photoionization spectroscopy from plasma and gas.}
\item{Developed extended quantum mechanical models by correlating sparse datasets from NIST and recently-published works, to ultimately provide better predictions.}
\item{Automated data functions using BASH, Perl, and Python scripting to cleanly resolve collisions and inconsistencies between large sets of atomic data across 29 atomic species, saving hours of manual work per dataset.}
\item{To assess quality of results before deployment, used \textit{Cloudy} to simulate diagnostic emission measurements relevant to observational astronomers.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\job{2018 -}{2016}
{Department of Physics and Astronomy, Wayne State University}
{}
{Computational Researcher under Professor Ed Cackett}
{
\begin{itemize-noindent}
\item{Using \href{https://othoulrich.com/science/clag_analysis-origbins-3471A.html}{Jupyter (python)} and frequency-domain techniques developed in C++, \href{https://clas.wayne.edu/physics/reu_reports/ulrich.pdf}{characterized the reverberation of NGC 5548 emissions} by the power spectral densities in the optical and UV lightcurves and their \href{https://othoulrich.com/science/final.pdf}{frequency-dependent time lags.}}
\item{Solved the problem of gappy data in the lightcurves by using a statistical frequency-domain approach developed by Dr. Abdu Zoghbi, University of Michigan, provided as the \textit{clag} code: a max-likelihood optimization software used to overcome gappy data in fourier analysis.}
\item{Wrote MPI routines to run these analyses in parallel on our computing cluster, saving hours of time per dataset.} %chktex 12
\item{Recovered the transfer functions for each set of wavelengths by optimizing test functions in the frequency domain across all datasets, then compared against current accretion disk model predictions.}
\item{Work credited on paper \href{https://iopscience.iop.org/article/10.3847/1538-4357/ac3913}{Frequency-resolved Lags in UV/Optical Continuum Reverberation Mapping} wherein we demonstrate the strength of our method and the need for additional spectral reverberation components in standard models.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\job{2017 -}{2015}
{Department of Physics, Western Michigan University}
{}
{Computational Researcher under Professor Kirk Korista}
{
\begin{itemize-noindent}
\item{Developed tools using Bash, Python, and several Linux-based plotting programs to \href{https://code.othoulrich.com/science/cloudy-agn/src/branch/master/src/save_table2d_slice.cpp}{manage and visualize data hypercubes} from and \href{https://othoulrich.com/science/mpi_grid.out.example}{operate \textit{Cloudy}} to compute \href{https://othoulrich.com/science/he_lines.ps}{predictions} of emission line strengths across a parameter space including incident Hydrogen-ionizing flux, number density, and column density, with thousands of resolute points.}
\item{Developed, using C++, a \href{https://code.othoulrich.com/science/cloudy-agn/src/branch/master/src/sed.hpp}{spectral continuum model} of the \href{https://othoulrich.com/science/mehdipour2013.png}{source radiation in NGC 5548}, adapting it as knowledge of active galactic nuclei grew, providing more accurate spectral data input compared to available models.}
\item{Work credited on the paper \href{https://arxiv.org/abs/1607.07308}{Constraints on the Broad Line Region Properties and Extinction in Local Seyferts.}, wherein predicted hydrogen emission line strengths are used to aid in the comparison of the broad H-I line ratios, providing a possible avenue toward a new classification schedule of Seyfert galaxies.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\job{2014}{}
{Materials Simulation Laboratory, University of South Florida, Department of Applied Physics}
{}
{Computational Researcher under Professor Ivan Oleynik}
{
\begin{itemize-noindent}
\item{Designed molecular dynamics simulations using \textit{LAMMPS} --- open source software for molecular dynamics simulations --- and the Carbon-Carbon screened environment-dependent reactive empirical bond order potential function devised by the Materials Simulation Laboratory, to \href{https://meetings.aps.org/Meeting/MAR15/Session/D4.9}{test the mechanical properties, i.e. tensile strengths and stress-strain curves, of misoriented graphene bicrystals.}}
\item{Automated \href{https://code.othoulrich.com/science/lammps-graphene/src/branch/master/scripts/populate_units_from_bicrystal_samples.sh}{bicrystal generation}, molecular dynamics tests, and statistical analyses, and ran them across our two available computing clusters to reduce the need for human input to once per day.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\job{2014}{}
{Tandem Van de Graaff Accelerator Laboratory, Department of Physics, Western Michigan University}
{}
{Electronics Lab Assistant to Accelerator Engineer Allan Kern}
{
\begin{itemize-noindent}
\item{Designed, printed, and constructed rack-mounted power source that allows polarity switching of the particle accelerator's high-current inflection magnet.}
\item{Designed power source to allow sufficient current for inflection electromagnetic to steer gold ions. This necessitated the use of 12 synchronized latching relays and timing circuits.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\job{2013}{}
{Business and Technology Department, Washtenaw Community College}
{}
{Software and System Developer}
{
\begin{itemize-noindent}
\item{Created Hadoop-based data analytics, with MapReduce algorithms coded in Java, to predict efficient bus routes for the Ann Arbor Transit Authority.}
\item{Designed, built, and maintained virtual server environment for deployment of department and research applications using ESXi.}
\item{Created interactive web apps for coordination between technicians, faculty, and staff using RESTful API and Django.}
\item{Deployed technical and training documentation using MediaWiki, and created and conducted the lab technician training program.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------------------------------------
% Publications
%------------------------------------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\section{Letters}
\begin{itemize-noindent}
\item{Edward M. Cackett, Abderahmen Zoghbi, \textbf{Otho Ulrich}, \href{https://iopscience.iop.org/article/10.3847/1538-4357/ac3913}{``Frequency-resolved Lags in UV/Optical Continuum Reverberation Mapping''} 2022, ApJ, 925, 29}
\item{D. Lawther, M.R. Goad, K.T. Korista, \textbf{O. Ulrich}, M. Vestergaard, \href{https://academic.oup.com/mnras/article-abstract/481/1/533/5076066}{``Quantifying the Diffuse Continuum Contribution of BLR Clouds to AGN Continuum Inter-band Delays,''} 2018, MNRAS, 481, 533--554}
\item{Anna Stephens, \textbf{Otho Ulrich}, Mariia Kravtsova, \href{https://othoulrich.com/science/ML%20Pulsars.pdf}{``Machine Learning to Classify Pulsar Candidates,''} 2017, Western Michigan University, N.P.}
\item{David Schuster and \textbf{Otho Ulrich}, Abstract: ``An Objectives-Mastery Credit Accumulation Course System,'' 2017, Michigan Academician, XLV 1, 67.}
\item{Allan Schnorr-Müller, R.I. Davies, K.T. Korista, L. Burtscher, D. Rosario, T. Storchi-Bergmann, A. Contursi, R. Genzel, J. Graciá-Carpio, E.K.S. Hicks, A. Janssen, M. Koss, M.-Y. Lin, D. Lutz, W. Maciejewski, F. Müller-Sánchez, G. Orban de Xivry, R. Riffel, R.A. Riffel, M. Schartmann, A. Sternberg, E. Sturm, L. Tacconi, S. Veilleux, \textbf{O. A. Ulrich}, \href{https://arxiv.org/abs/1607.07308}{``Constraints on the Broad Line Region Properties and Extinction in Local Seyferts,''}2016, MNRAS, 462, 3570--3590.}
\item{\textbf{Otho A. Ulrich}, Edward M. Cackett, \href{https://clas.wayne.edu/physics/reu_reports/ulrich.pdf}{``Optical/UV Band Reverberation Mapping of NGC 5548 with Frequency-Resolved Techniques,''} 2016, Wayne State University College of Arts and Sciences.}
\item{David Schuster and \textbf{Otho Ulrich}, Abstract: ``A Very Different Way of Running Your Course and Assessments: An Objectives-Mastery Modular System,'' 2016, Michigan Academician, XLIV 2, 126--127.}
\end{itemize-noindent}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------------------------------------
% Invited Talks
%------------------------------------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\section{Invited Talks}
\begin{itemize-noindent}
\item{\textbf{O. Ulrich}, ``Quantifying the Diffuse Continuum Contribution of BLR Clouds to AGN Continuum Inter-band Delays,'' Astrophysics Seminar Series, Dept. of Physics \& Astronomy, University of Kentucky, August 30, 2018.}
\item{\textbf{O. Ulrich}, \href{https://ui.adsabs.harvard.edu/abs/2018wtl..confE...9U/abstract}{``Emission Line Equivalent Widths for AGN Modeling,''} Walking the Line, Arizona State University, Spring 2018.}
\item{M. Goad, D. Lawther, K. Korista, \textbf{O. Ulrich}, M. Vestergaard, ``Quantifying the diffuse continuum contribution from BLR gas: a modeling approach,'' Atlanta meeting of the Space Telescope Optical Reveberation Mapping (STORM) group, Fall 2017.}
\item{Anna Stephens, \textbf{Otho Ulrich}, Mariia Kravtsova, ``Is this a Pulsar?'' Spring Senior Seminar Series, Department of Computer Science, Western Michigan University, 2017.}
\item{D. Schuster, \textbf{O. Ulrich}, ``An Objectives-Mastery Credit Accumulation Course System,'' March meeting of the Michigan Academy of Science, Arts, and Letters, 2017.}
\item{\textbf{O. Ulrich}, ``Experiences in Research of an Undergraduate Physics Major,'' Colloquium Series, Department of Physics, Western Michigan University, Feb. 2017.}
\item{\textbf{O. Ulrich}, ``Undergraduate Research,'' October meeting of the Physics Club at Western Michigan University, 2016.}
\item{\textbf{O. Ulrich}, D. Schuster, ``Objectives-Mastery Modular Course Operating System,'' March meeting of the Michigan Academy of Science, Arts, and Letters, 2016.}
\item{\textbf{O. Ulrich}, J. Gonzalez, K.N. Cong, I. Oleynik, \href{http://meetings.aps.org/Meeting/MAR15/Session/D4.9}{``Atomic Structure of Grain Boundaries in Graphene,''} March meeting of the American Physical Society, 2015.}
\end{itemize-noindent}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\section{Peer Review}
\begin{itemize-noindent}
\item{\textit{The Particle Accelerator Simulation Code PyORBIT}, Shishlo, Andrei, et al., reviewed as submission for the Large Scale Computational Physics Workshop at the International Conference on Computational Science, 2015.}
\end{itemize-noindent}
\vspace{\parskip}
\end{minipage}
%----------------------------------------------------------------------------------------
% EDUCATION
%----------------------------------------------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\section{Education}
\tabbedblock{
\bf{2017--2019} \> Physics, Astrophysics --- \href{https://pa.as.uky.edu/users/oaul223}{University of Kentucky}
\\
\>\ \ \ \ \ \ \textit{Differential Geometry and Equations}\\
\>\ \ \ \ \ \ \textit{Advanced Electrodynamics}\\
\>\ \ \ \ \ \ \textit{Statistical Mechanics}\\
\>\ \ \ \ \ \ \textit{Field Theory Mechanics}\\
\>\ \ \ \ \ \ \textit{Computational Physics}\\
\>\ \ \ \ \ \ \textit{Non-relativistic Quantum Mechanics}\\
\>\ \ \ \ \ \ \textit{Modern Pedagogical Theory}\\
}
\tabbedblock{
\bf{2013--2017} \> B.S., Physics, Mathematics --- \href{https://wmich.edu/sites/default/files/attachments/u1100/2017/Department Newsletter_Summer 2017.pdf}{Western Michigan University}
\\
\>\ \ \ \ \ \ \textit{Advanced Scientific Writing}\\
\>\ \ \ \ \ \ \textit{Physics Research Procedures}\\
\>\ \ \ \ \ \ \textit{Statistical \& Classical Thermodynamics}\\
\>\ \ \ \ \ \ \textit{Machine Learning}\\
\>\ \ \ \ \ \ \textit{Lagrange Multipliers}\\
\>\ \ \ \ \ \ \textit{Laplace Transformations}\\
\>\ \ \ \ \ \ \textit{Fourier Analysis}\\
\>\ \ \ \ \ \ \textit{Electric and Magnetic Properties of Matter}\\
\>\ \ \ \ \ \ \textit{Fundamentals of Electromagnetic Theory: Maxwell's Equations}\\
\>\ \ \ \ \ \ \textit{Atomic Physics}\\
\>\ \ \ \ \ \ \textit{Quantum Wave Theory \& Matrix Mechanics}\\
\>\ \ \ \ \ \ \textit{Lagranian \& Hamiltonian Classical Mechanics}\\
\>\ \ \ \ \ \ \textit{Newtonian Mechanics}\\
\>\ \ \ \ \ \ \textit{Transistor Fundamentals, Networks, and Digital Logic}\\
\>\ \ \ \ \ \ \textit{Alternating and Direct Current RCL Networks}\\
\>\ \ \ \ \ \ \textit{Fundamentals of Electronics}\\
\>\ \ \ \ \ \ \textit{Intermediate Scientific Writing}\\
\>\ \ \ \ \ \ \textit{Introductory Potential Theory: LaPlace's and Poisson's Equations}\\
\>\ \ \ \ \ \ \textit{Calculus of Complex Variables}\\
\>\ \ \ \ \ \ \textit{Vector-based Differential Geometry}\\
\>\ \ \ \ \ \ \textit{Stellar Astrophysics}\\
\>\ \ \ \ \ \ \textit{Introductory Statistical Mechanics}\\
\>\ \ \ \ \ \ \textit{Keplerian Mechanics}\\
\>\ \ \ \ \ \ \textit{Optics}\\
\>\ \ \ \ \ \ \textit{Classical Wave Theory}\\
\>\ \ \ \ \ \ \textit{Basic Scientific Inquiry}\\
\>\ \ \ \ \ \ \textit{Special Relativity}\\
\>\ \ \ \ \ \ \textit{Introductory Quantum Wave Theory}\\
\>\ \ \ \ \ \ \textit{Philosophy of Science}\\
\>\ \ \ \ \ \ \textit{Introductory Scientific Writing}\\
\>\ \ \ \ \ \ \textit{Ordinary Differential Equations and Systems}\\
\>\ \ \ \ \ \ \textit{Linear Algebra}\\
\>\ \ \ \ \ \ \textit{Statistics}\\
}
\tabbedblock{
\bf{2011--2013} \> Computer Science and Engineering --- Washtenaw Community College
\\
\>\ \ \ \ \ \ \textit{Introductory Electromagnetism}\\
\>\ \ \ \ \ \ \textit{Scalar and Vector Fields}\\
\>\ \ \ \ \ \ \textit{Introductory Mechanics \& Thermodynamics}\\
\>\ \ \ \ \ \ \textit{Shell Programming}\\
\>\ \ \ \ \ \ \textit{Algorithms}\\
\>\ \ \ \ \ \ \textit{Data and Object Structures}\\
\>\ \ \ \ \ \ \textit{C++ and Java Programming}\\
\>\ \ \ \ \ \ \textit{Differential \& Integral Calculus}\\
}
\tabbedblock{
\bf{2005} \> Classical and Jazz Music Performance --- Lansing Community College
%\>\ \ \ \ \ \ \textit{Trombone Chamber \& Jazz Performance}\\
%\>\ \ \ \ \ \ \textit{Classical Music Theory}\\
%\>\ \ \ \ \ \ \textit{Western Music History}\\
%\>\ \ \ \ \ \ \textit{Vocal Jazz Performance}\\
%\>\ \ \ \ \ \ \textit{Educational Piano}\\
}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------------------------------------
% Teaching
%------------------------------------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\section{Teaching Experience}
% \job
% {2019 -}{2012}
% {University of Kentucky; Western Michigan University; Washtenaw Community College}
% {}
% {Teaching and Lab Assistant}
% {
% \begin{itemize-noindent}
%
% \item{Assisted classroom instruction for intermediate physics and computer science courses.}
%
% \item{Created and conducted critical thinking and scientific philosophy training for team members.}
%
% \item{Developed and ran physical inquiry experiments for lecture bodies up to 200 students.}
%
% \end{itemize-noindent}
% }
%------------------------------------------------
\job{2019 -}{2017}
{PHY 231: University Physics I, Department of Physics and Astronomy, University of Kentucky}
{}
{Teaching Assistant}
{
\begin{itemize-noindent}
\item{Provided auxiliary classroom instruction for calculus-based mechanics courses and 100-level astronomy courses.}
\item{Facilitated group work sessions, a scientifically-validated alternative to traditional lecture for learning introductory physics.}
\item{For mechanics courses, developed lesson plans each week to aid students in their solution of a weekly problem set.}
\item{For astronomy courses, assisted in running observational experiments during lecture, and provided guidance on student research projects.}
\item{Provided supplemental instruction during office hours and other special sessions.}
\item{Graded papers and proctored exams.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\job{2017 -}{2015}
{PHY 3520: Waves and Optics, Department of Physics, Western Michigan University}
{}
{Learning Assistant to Professor David Schuster}
{
\begin{itemize-noindent}
\item{Developed while applying a mastery assessment-based approach to course evaluations}
\item{Presented continuing developments in this method to the Michigan Academy of Science, Arts, and Letters in 2016 and 2017.}
\item{Designed two lessons: one on the speed of sound, involving a marching band problem; another on harmonics using a brass instrument problem and a brass instrument demonstration.}
\item{Graded assignments and exams.}
\item{Provided supplemental instruction.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
\noindent\begin{minipage}{\textwidth}
\job{2017 -}{2015}
{PHY 2050 \& 2070: University Physics I \& II, Department of Physics, Western Michigan University}
{}
{Learning Assistant}
{
\begin{itemize-noindent}
\item{Provided a helpful presence under a ``reversed-class'' paradigm, where the in-class time is primarily used for group problem solving, and students are expected to study the lecture material outside of class. This typically means guiding students' inquiries as they attempt to synthesize physical reasoning to solve the assigned problems.}
\item{Conducted thrice-weekly review sessions mirroring material provided by the lecture, with an emphasis on understanding how general principles simplify under proper assumptions.}
\item{Solved problems designed by the professor as a test case before introducing them in group problem-solving settings.}
\item{Created training on critical thinking and scientific philosophy for learning assistant team members, then conducted the training.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
\noindent\begin{minipage}{\textwidth}
\job{2016}{}
{PHY 3250: Introduction to Astrophysics, Department of Physics, Western Michigan University}
{}
{Grader}
{
\begin{itemize-noindent}
\item{Graded homework assignments, providing student developmental feedback as needed.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
\noindent\begin{minipage}{\textwidth}
\job{2017 -}{2014}
{Student Success Services, College of Arts and Sciences, Western Michigan University}
{}
{Peer Academic Coach}
{
Supported student learning as a tutor in physics, chemistry, mathematics, philosophy, computer science, and general learning.
}
\vspace{\parskip}
\end{minipage}
\noindent\begin{minipage}{\textwidth}
\job{2013 -}{2009}
{Emerson School}
{}
{Music Tutor}
{
\begin{itemize-noindent}
\item{Conducted individual lessons with students of brass and piano performance.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
\noindent\begin{minipage}{\textwidth}
\job{2013 -}{2012}
{Business and Technology Department, Washtenaw Community College}
{}
{Lab Assistant}
{
\begin{itemize-noindent}
\item{Assisted in various computer science courses, running review sessions, labs, tutoring, and providing general course help.}
\item{Developed computer-based applications used by the professors and administration for keeping track of coursework, lab setup, and faculty requests.}
\end{itemize-noindent}
}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------------------------------------
% Awards
%------------------------------------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\section{Awards}
\begin{itemize-noindent}
\item{GAANN Fellowship, U.S. Department of Education \& Department of Physics and Astronomy, University of Kentucky.}
\item{Research Fellowship, Department of Physics and Astronomy, University of Kentucky.}
\item{Paul Rood Physics Scholarship, Department of Physics, Western Michigan University.}
\item{Thomas Dickinson Award, Department of Physics, Western Michigan University.}
\item{Dean's List, College of Arts and Science, Western Michigan University.}
\end{itemize-noindent}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------------------------------------
% Orgs
%------------------------------------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\section{Professional Associations}
\begin{itemize-noindent}
\item{American Physical Society}
\item{American Astronomical Society}
\item{Society of Physics Students}
\item{Michigan Academy of Science, Arts, and Letters}
\end{itemize-noindent}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------------------------------------
% Appointments
%------------------------------------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\section{Appointments}
\begin{itemize-noindent}
\item{Communications Officer, Free Software Society, University of Kentucky.}
\item{Inclusive Pedagogies Graduate Learning Community, College of Arts \& Sciences, University of Kentucky.}
\item{Academic Integrity Committee, Western Michigan University.}
\item{Gateways to Completion Steering Committee, Western Michigan University.}
\item{Librarian, Physics Club, Western Michigan University.}
\end{itemize-noindent}
\vspace{\parskip}
\end{minipage}
%------------------------------------------------------------------------------
% Interests
%------------------------------------------------------------------------------
\noindent\begin{minipage}{\textwidth}
\section{Relevant Interests}
\begin{itemize-noindent}
\item{Strong interest in the theory and application of science education, especially as to education of the public.}
\item{Advocate of critical thinking and scientific skepticism, with interest in bringing those topics to the public on a larger scale.}
\item{Coded simulations for fun since childhood. A favorite pastime has been to create network-based space simulations in which friends can dogfight, and other internet-connected simulated worlds, going back to the early days of the internet.}
\item{Play improvisational music almost every day.}
\end{itemize-noindent}
\vspace{\parskip}
\end{minipage}
%----------------------------------------------------------------------------------------
\end{document}