Bulk infra and ci/cd info now on resume
This commit is contained in:
Binary file not shown.
167
2025-10-27_complete_cv/resume.tex
Normal file
167
2025-10-27_complete_cv/resume.tex
Normal file
@@ -0,0 +1,167 @@
|
||||
%% 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{_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}{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 and applications
|
||||
\begin{itemize}
|
||||
\item Unified all team applications into a dedicated monorepo, along with default templates enabling rapid new project startup
|
||||
\item Converted all existing applications to containerized, de-duplicating work via intermediate images per common project type
|
||||
\item Created commonized Makefiles for the repo, plus tailored versions per application, allowing for fast local development which mimicked production deployments and provided common interfaces when deploying
|
||||
\item Added Sentry failure monitoring to all applications, including local development runs, to simplify collaborative resolution of failures
|
||||
\item Created and maintained ansible playbooks for the end-to-end ci/cd of the team's containerized applications, 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
|
||||
\item Deployment with self-recovery and auto-start of networks and containers for development, staging, and production environments
|
||||
\item Templating and management of NGINX web configurations, alongside ACME certificates, for development, staging, and production environments
|
||||
\item Upload of passing container, and custom python package, builds to artifactory infrastructure
|
||||
\item Periodic cleanup of artifactory assets to reduce resource usage
|
||||
\end{itemize}
|
||||
\item Test System/Server Commissioning/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 and network configuration
|
||||
\item Automatic downstream network switch configuration to apply appropriate 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 + Loki instances for both the 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\ldots 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}
|
||||
\end{itemize}
|
||||
\item Designed, fabricated, commissioned, deployed, and supported test systems hardware/test software for Starlink satellite flight computers and power boards
|
||||
\begin{itemize}
|
||||
\item ~4500 flight computers, from four flight hardware generations, were tested using these systems and are/were in orbit
|
||||
\item ~4000 power boars, from two flight hardware generations, were tested using these systems and are/were in orbit
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
}
|
||||
% \cventry{Jan. 2019 --\\Mar. 2019}{Avionics Test Engineer (Intern)}{SpaceX}{Hawthorne, CA}{}{
|
||||
% Supported the avionics test team via python driver/module development, hardware debugging, workflow automation, and monitoring/driving of qualification tests to completion
|
||||
% \begin{itemize}
|
||||
% \item Finished an orphaned proof-of-concept python driver for a VISA connected 3k psi differential pressure regulator, plus unit tests
|
||||
% \begin{itemize}
|
||||
% \item Uncovered critical firmware bugs in the pressure regulator and worked with the manufacturer to alpha/beta test fixes until solved, while also suggesting improvements to their product documentation
|
||||
% \item Added self-monitoring of potentially unsafe pressure states and combinations, with automated system safing where possible
|
||||
% \end{itemize}
|
||||
% \item Created a python module, and associated unit tests, to automate exercising and validating cots/in-house pressure sensors against the ISO 9001 standard
|
||||
% \item Automated cross-system Jira work ticket generation to improve build reliability investigation, test, and repair workflows
|
||||
% \item Successfully debugged, and recommended fixes for, electrical failures of in-house designed test fixture printed circuit boards
|
||||
% \item Actively drove and monitored qualification of avionics hardware through shock testing
|
||||
% \end{itemize}
|
||||
% }
|
||||
% \cventry{Sept. 2013 --\\Aug. 2019}{Automation Engineer/Student Automation Engineer}{Sinnhuber Aquatic Research Lab}{Corvallis, OR}{}{Description}
|
||||
% \cventry{Apr. 2016 --\\May 2018}{Student Software \& Electrical Engineer}{CEOAS Ocean Mixing Group}{Corvallis, OR}{}{Description}
|
||||
|
||||
\removesectionmargin
|
||||
|
||||
|
||||
\section{Skills}\label{sec:skills}\removesectionpadding
|
||||
\cvitem{Most}{Linux (Ubuntu, CentOS NixOS) | Python | Test Driven Development | Bash Scripting | Docker/Podman/OCI | Ansible | Git | Makefiles | Sentry | Grafana}
|
||||
\cvitem{Some}{Grafana Loki | HashiCorp Vault | Bitwarden | Artifactory | NGINX | Puppet | Web Full Stack Development}
|
||||
\cvitem{Least}{Kubernetes | Google Cloud Platform | Amazon Web Services | Subversion | C++}
|
||||
\removesectionmargin
|
||||
|
||||
|
||||
\section{Hobbies/Interests}\label{sec:hobbies/interests}\removesectionpadding
|
||||
\cvitem{}{\small{Home Automation | Homelab | Motorcycling | PCB Design | 3D Modeling \& Printing }}
|
||||
|
||||
%----------------------------------------------------------------------------------------
|
||||
% FOOTER
|
||||
%----------------------------------------------------------------------------------------
|
||||
\addcustomcvfooter
|
||||
|
||||
\end{document}
|
||||
|
||||
Binary file not shown.
@@ -43,6 +43,7 @@
|
||||
\fi
|
||||
|
||||
% additional packages
|
||||
\usepackage{textcomp}
|
||||
\usepackage{_custom/customcommands}
|
||||
|
||||
% document language
|
||||
@@ -82,28 +83,28 @@
|
||||
\cventry{Sept. 2019 --\\Apr. 2025}{Hardware Test Engineer I/II}{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 and applications
|
||||
\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 existing applications to containerized, de-duplicating work via intermediate images per common project type
|
||||
\item Created commonized Makefiles for the repo, plus tailored versions per application, allowing for fast local development which mimicked production deployments and provided common interfaces when deploying
|
||||
\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, versioned and managed via Artifactory
|
||||
\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 collaborative resolution of failures
|
||||
\item Created and maintained ansible playbooks for the end-to-end ci/cd of the team's containerized applications, as well as test-system/server commissioning and management
|
||||
\item Created and maintained ansible playbooks for the end-to-end ci/cd of the team's containerized applications, 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
|
||||
\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 web configurations, alongside ACME certificates, for development, staging, and production environments
|
||||
\item Templating and management of NGINX virtualhost/load-balancing configurations, alongside ACME certificates, for development, staging, and production environments
|
||||
\item Upload of passing container, and custom python package, builds to artifactory infrastructure
|
||||
\item Periodic cleanup of artifactory assets to reduce resource usage
|
||||
\end{itemize}
|
||||
\item Test System/Server Commissioning/Management
|
||||
\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 Management and updates to system and baseline team packages
|
||||
\item Automatic interface and network configuration
|
||||
\item Automatic downstream network switch configuration to apply appropriate vlans, trunking, and configs
|
||||
\end{itemize}
|
||||
@@ -111,7 +112,7 @@
|
||||
\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 + Loki instances for both the Components Test and Starlink Hardware Test teams, providing useful insight into hardware/software bottlenecks, statuses, and metrics.
|
||||
\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
|
||||
@@ -120,38 +121,21 @@
|
||||
\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 systems hardware/test software for Starlink satellite flight computers and power boards
|
||||
\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 ~4500 flight computers, from four flight hardware generations, were tested using these systems and are/were in orbit
|
||||
\item ~4000 power boars, from two flight hardware generations, were tested using these systems and are/were in orbit
|
||||
\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)}{SpaceX}{Hawthorne, CA}{}{
|
||||
% Supported the avionics test team via python driver/module development, hardware debugging, workflow automation, and monitoring/driving of qualification tests to completion
|
||||
% \begin{itemize}
|
||||
% \item Finished an orphaned proof-of-concept python driver for a VISA connected 3k psi differential pressure regulator, plus unit tests
|
||||
% \begin{itemize}
|
||||
% \item Uncovered critical firmware bugs in the pressure regulator and worked with the manufacturer to alpha/beta test fixes until solved, while also suggesting improvements to their product documentation
|
||||
% \item Added self-monitoring of potentially unsafe pressure states and combinations, with automated system safing where possible
|
||||
% \end{itemize}
|
||||
% \item Created a python module, and associated unit tests, to automate exercising and validating cots/in-house pressure sensors against the ISO 9001 standard
|
||||
% \item Automated cross-system Jira work ticket generation to improve build reliability investigation, test, and repair workflows
|
||||
% \item Successfully debugged, and recommended fixes for, electrical failures of in-house designed test fixture printed circuit boards
|
||||
% \item Actively drove and monitored qualification of avionics hardware through shock testing
|
||||
% \end{itemize}
|
||||
% }
|
||||
% \cventry{Sept. 2013 --\\Aug. 2019}{Automation Engineer/Student Automation Engineer}{Sinnhuber Aquatic Research Lab}{Corvallis, OR}{}{Description}
|
||||
% \cventry{Apr. 2016 --\\May 2018}{Student Software \& Electrical Engineer}{CEOAS Ocean Mixing Group}{Corvallis, OR}{}{Description}
|
||||
|
||||
\removesectionmargin
|
||||
|
||||
|
||||
\section{Skills}\label{sec:skills}\removesectionpadding
|
||||
\cvitem{Most}{Linux (Ubuntu, CentOS NixOS) | Python | Test Driven Development | Bash Scripting | Docker/Podman/OCI | Ansible | Git | Makefiles | Sentry | Grafana}
|
||||
\cvitem{Some}{Grafana Loki | HashiCorp Vault | Bitwarden | Artifactory | NGINX | Puppet | Web Full Stack Development}
|
||||
\cvitem{Least}{Kubernetes | Google Cloud Platform | Amazon Web Services | Subversion | C++}
|
||||
\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 | Subversion | C++}}
|
||||
\removesectionmargin
|
||||
|
||||
|
||||
@@ -164,4 +148,3 @@
|
||||
\addcustomcvfooter
|
||||
|
||||
\end{document}
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
\fi
|
||||
|
||||
% additional packages
|
||||
\usepackage{moderncvfooti}
|
||||
\usepackage{textcomp}
|
||||
\usepackage{_custom/customcommands}
|
||||
|
||||
% document language
|
||||
|
||||
Reference in New Issue
Block a user