%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2024 moderncv maintainers (github.com/moderncv).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
% available at http://www.latex-project.org/lppl/.
\documentclass[10pt,a4paper,sans]{moderncv}        % possible options include font size ('10pt', '11pt' and '12pt'), paper size ('a4paper', 'letterpaper', 'a5paper', 'legalpaper', 'executivepaper' and 'landscape') and font family ('sans' and 'roman')

% moderncv themes
\moderncvcolor{_custom/moderncvcustomcolorgreen}
\moderncvstyle[]{classic}                     % style options are 'casual' (default), 'classic', 'banking', 'oldstyle', 'fancy' and 'contemporary'

% the 'contemporary' style optionally takes the `qr` (default) or `noqr` options
%\renewcommand{\familydefault}{\sfdefault}         % to set the default font; use '\sfdefault' for the default sans serif font, '\rmdefault' for the default roman one, or any tex font name
\nopagenumbers{}                                  % uncomment to suppress automatic page numbering for CVs longer than one page

% adjust the page margins
\usepackage[left=0.5cm,right=0.5cm,top=0.5cm,bottom=1.25cm]{geometry}
%\setlength{\hintscolumnwidth}{3cm}                % if you want to change the width of the column with the dates
%\setlength{\makecvheadnamewidth}{10cm}            % for the 'classic' style, if you want to force the width allocated to your name and avoid line breaks. be careful though, the length is normally calculated to avoid any overlap with your personal info; use this at your own typographical risks...
%\setlength{\listitemsymbolspace}{10pt}            % set custom spacing between list symbol and text item (influences \cvlistitem and \cvlistdoubleitem)

% font loading
% for luatex and xetex, do not use inputenc and fontenc
% see https://tex.stackexchange.com/a/496643
\ifxetexorluatex
\usepackage{fontspec}
\usepackage{unicode-math}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Latin Modern Roman}
\setsansfont{Latin Modern Sans}
\setmonofont{Latin Modern Mono}
\setmathfont{Latin Modern Math}

% you may also consider Fira Sans Light for a extra modern look
%\setsansfont[ItalicFont={Fira Sans Light Italic},%
%           BoldFont={Fira Sans},%
%           BoldItalicFont={Fira Sans Italic}]%
%           {Fira Sans Light}%
\else
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\fi

% additional packages
\usepackage{textcomp}
\usepackage{_custom/customcommands}

% document language
\usepackage[english]{babel}

% personal data
\name{Corwin A.}{Perren}
\address{2724 W. Crestline Dr.}{Bellingham, WA 98226}% optional, remove / comment the line if not wanted; the "postcode city" and "country" arguments can be omitted or provided empty
\phone[mobile]{+1~(360)~298~4396}                   % optional, remove / comment the line if not wanted; the optional "type" of the phone can be "mobile" (default), "fixed" or "fax"
\email{caperren@caperren.com}                               % optional, remove / comment the line if not wanted
\homepage{www.caperren.com}                         % optional, remove / comment the line if not wanted

% Social icons
\social[linkedin]{caperren}                        % optional, remove / comment the line if not wanted
\social[github]{caperren}                              % optional, remove / comment the line if not wanted

\photo[64pt][0pt]{_assets/logo}                       % optional, remove / comment the line if not wanted; '64pt' is the height the picture must be resized to, 2pt is the thickness of the frame around it (put it to 0pt for no frame) and 'picture' is the name of the picture file

%----------------------------------------------------------------------------------
%            content
%----------------------------------------------------------------------------------
\begin{document}
%-----       resume       ---------------------------------------------------------
    \makecvhead

    \removesectionmargin\removesectionmargin


    \section{Education}\label{sec:education}\removesectionpadding

    \cventry{June 2019}{B.S. Computer Science}{Oregon State University}{Corvallis, OR}{}{GPA: 3.21 | Program Focus: Mobile, Embedded, and Connected Robotics}  % arguments 3 to 6 can be left empty

    \removesectionmargin


    \section{Experience}\label{sec:experience}\removesectionpadding
    \cventry{Sept. 2019 --\\Apr. 2025}{Hardware Test Engineer I/II}{Space Exploration Technologies Inc. \small{(SpaceX)}}{Redmond, WA \& Remote}{}{
        Developed, owned, fabricated, debugged, and maintained critical software, hardware, and infrastructure to enable and support high-rate/high-reliability validation of space-bound hardware, and support effective team operations
        \begin{itemize}
            \item Owned, developed, and completed the consolidation, automation, and containerization of all Components Test Team infrastructure, applications, and python modules
            \begin{itemize}
                \item Unified all team applications into a dedicated monorepo, along with default templates enabling rapid new project startup
                \item Converted all deployable applications to containerized, de-duplicating work via intermediate images per common project type
                \item Created controlled python modules for common test team code
                \item Created commonized Makefiles for the repo, plus tailored versions per application, allowing for fast local development which mimicked production tests/deployments and provided common interfaces when deploying
                \item Added Sentry failure monitoring to all applications, including local development runs, to simplify failure resolution
                \item Created and maintained ansible playbooks for the end-to-end ci/cd of the team's containerized applications and python modules, as well as test-system/server commissioning and management.
                Tasks included:
                \begin{itemize}
                    \item CI/CD
                    \begin{itemize}
                        \item Build, test, validation, deployment, and cleanup of application containers via pull request and merge triggers, with the inclusion of database backup and restore for production-like runtime in all environments
                        \item Deployment with self-recovery and auto-start of networks and containers for development, staging, and production environments
                        \item Templating and management of NGINX virtualhost/load-balancing configurations, alongside ACME certificates and firewall management, for development, staging, and production environments
                        \item Upload of passing container, and custom python package, builds to Artifactory
                    \end{itemize}
                    \item Test System/Server Commissioning and Management
                    \begin{itemize}
                        \item Commissioning and association of new servers/vms with core SpaceX infrastructure such as HashiCorp Vault
                        \item Automated installation and association of server monitoring tools with central monitoring infrastructure
                        \item Management and updates to system and baseline packages
                        \item Automatic interface, network, and application runtime configuration
                        \item Automatic downstream network switch configuration for applying vlans, trunking, and configs
                    \end{itemize}
                \end{itemize}
                \item Owned, managed, and greatly improved monitoring of team infrastructure, test systems, and applications
                \begin{itemize}
                    \item Configured and managed the team's Sentry instance, which greatly increased our team's ability to triage and solve critical application errors quickly
                    \item Owned and managed the Grafana instances for both Components Test and Starlink Hardware Test teams, providing useful insight into hardware/software bottlenecks, statuses, and metrics.
                    Created and maintained the following dashboards:
                    \begin{itemize}
                        \item System metrics monitoring such as cpu, network, memory, and disk usage to quickly find and eliminate hardware bottlenecks
                        \item Per-application metrics such as connection counts, unique users, response times, load-balancing status, etc\dots\ to help find pain points and ensure applications remained stable and responsive
                        \item Per-product and per-test metrics to help identify common failures for devices-under-test, as well to to evaluate any out-of-family measurements
                    \end{itemize}
                    \item Helped manage the Component Test team's OpsGenie integrations and schedules, and responded to pager tickets for the infrastructure sub-team
                \end{itemize}
                \item Developed shared python modules, restful flask apis, angular websites, and associated unit tests, for test team infrastructure and websites
            \end{itemize}
            \item Designed, fabricated, commissioned, deployed, and supported test system hardware/software for Starlink satellite flight computers and power boards including full python test software suites, drivers, PCBs, wiring harnesses, and mechanical fixtures
            \begin{itemize}
                \item Delivered \small{$\sim$}4500 flight computers from four flight hardware generations, and \small{$\sim$}4000 power boards from two flight hardware generations, to orbit
            \end{itemize}
        \end{itemize}
    }
    \cventry{Jan. 2019 --\\Mar. 2019}{Avionics Test Engineer (Intern)}{Space Exploration Technologies Inc. \small{(SpaceX)}}{Hawthorne, CA}{}{
        Developed python drivers/modules, debugged hardware test-fixtures, and automated Jira workflows
    }
    \removesectionmargin


    \section{Skills}\label{sec:skills}\removesectionpadding
    \cvitem{Most}{\small{Linux (Ubuntu, CentOS, NixOS) | TDD | Python | Bash | Docker | Ansible | Git | Atlassian Suite | Sentry | NGINX | Grafana}}
    \cvitem{Some}{\small{Makefiles | HashiCorp Vault | Bitwarden | Artifactory | Puppet | Web Full Stack Development}}
    \cvitem{Least}{\small{Kubernetes | Google Cloud Platform | Amazon Web Services | Prometheus | Subversion | C++ | C\#}}
    \removesectionmargin


    \section{Hobbies/Interests}\label{sec:hobbies/interests}\removesectionpadding
    \cvitem{}{\small{Linux (NixOS) | Home Automation | Homelab | Motorcycling | PCB Design | 3D Modeling \& Printing }}

%----------------------------------------------------------------------------------------
%	FOOTER
%----------------------------------------------------------------------------------------
    \addcustomcvfooter

\end{document}
