Compare commits

9 Commits

15 changed files with 417 additions and 178 deletions

View 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}

View File

@@ -1,4 +1,3 @@
%% start of file `template.tex'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2024 moderncv maintainers (github.com/moderncv). %% 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 % This work may be distributed and/or modified under the
@@ -15,7 +14,7 @@
\makeatother \makeatother
% moderncv themes % moderncv themes
\moderncvcolor{green} % color options 'black', 'blue' (default), 'burgundy', 'green', 'grey', 'orange', 'purple' and 'red'; for contemporary style use 'cerulean' \moderncvcolor{_custom/moderncvcustomcolorgreen}
\moderncvstyle[]{classic} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle', 'fancy' and 'contemporary' \moderncvstyle[]{classic} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle', 'fancy' and 'contemporary'
% the 'contemporary' style optionally takes the `qr` (default) or `noqr` options % 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 %\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
@@ -80,7 +79,7 @@
\section{Education} % for 'contemporary' style use optional argument for displaying an icon, e.g. \section[\faGraduationCap]{Education} \section{Education} % for 'contemporary' style use optional argument for displaying an icon, e.g. \section[\faGraduationCap]{Education}
\cventry{June 2019}{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 \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
\section{Experience} \section{Experience}
@@ -103,7 +102,7 @@
\item Achievement 4 \item Achievement 4
\end{itemize}} \end{itemize}}
\cventry{Jan. 2019 --\\Mar. 2019}{Avionics Test Engineer (Intern)}{SpaceX}{Hawthorne, CA}{}{\small Wrote software in Python for automation of avionics hardware test systems. Performed circuit debugging on test system hardware. Validated test software performance per aerospace standards. Automated Jira work ticket generation for two internal avionics teams to improve product investigation, test, and repair workflows.} \cventry{Jan. 2019 --\\Mar. 2019}{Avionics Test Engineer (Intern)}{SpaceX}{Hawthorne, CA}{}{\small Wrote software in Python for automation of avionics hardware test systems. Performed circuit debugging on test system hardware. Validated test software performance per aerospace standards. Automated Jira work ticket generation for two internal avionics teams to improve product investigation, test, and repair workflows.}
\cventry{Sept. 2013 -- \\Aug. 2019}{Automation Engineer/Student Automation Engineer}{Sinnhuber Aquatic Research Lab}{Corvalli, OR}{}{Description} \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} \cventry{Apr. 2016 -- \\May 2018}{Student Software \& Electrical Engineer}{CEOAS Ocean Mixing Group}{Corvallis, OR}{}{Description}
@@ -192,6 +191,3 @@
\addtofoot[]{\textit{\small{References available upon request. Detailed experiences are available on my website.}}} \addtofoot[]{\textit{\small{References available upon request. Detailed experiences are available on my website.}}}
\end{document} \end{document}
%% end of file `template.tex'.

View File

@@ -1,28 +1,20 @@
%% start of file `template.tex'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2024 moderncv maintainers (github.com/moderncv). %% 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 % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
% available at http://www.latex-project.org/lppl/. % available at http://www.latex-project.org/lppl/.
\documentclass[11pt,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') \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')
% This is a hack to fix a weird build error in all styles but the contemporary one
% https://tex.stackexchange.com/a/621308
\makeatletter % this will go in the .sty file
\AddToHook{begindocument/before}{%
\@ifpackageloaded{tikz}{\usetikzlibrary{tikzmark}}{}%
}
\makeatother
% moderncv themes % moderncv themes
\moderncvcolor{green} % color options 'black', 'blue' (default), 'burgundy', 'green', 'grey', 'orange', 'purple' and 'red'; for contemporary style use 'cerulean' \moderncvcolor{_custom/moderncvcustomcolorgreen}
\moderncvstyle[]{classic} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle', 'fancy' and 'contemporary' \moderncvstyle[]{classic} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle', 'fancy' and 'contemporary'
% the 'contemporary' style optionally takes the `qr` (default) or `noqr` options % 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 %\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 \nopagenumbers{} % uncomment to suppress automatic page numbering for CVs longer than one page
% adjust the page margins % adjust the page margins
\usepackage[scale=0.94]{geometry} \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{\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{\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) %\setlength{\listitemsymbolspace}{10pt} % set custom spacing between list symbol and text item (influences \cvlistitem and \cvlistdoubleitem)
@@ -51,7 +43,8 @@
\fi \fi
% additional packages % additional packages
\usepackage{moderncvfooti} \usepackage{textcomp}
\usepackage{_custom/customcommands}
% document language % document language
\usepackage[english]{babel} \usepackage[english]{babel}
@@ -74,124 +67,87 @@
%---------------------------------------------------------------------------------- %----------------------------------------------------------------------------------
\begin{document} \begin{document}
%----- resume --------------------------------------------------------- %----- resume ---------------------------------------------------------
\makecvtitle \makecvhead
\vspace{-2.5em} \removesectionmargin\removesectionmargin
\section{Education} % for 'contemporary' style use optional argument for displaying an icon, e.g. \section[\faGraduationCap]{Education} \section{Education}\label{sec:education}\removesectionpadding
\cventry{June 2019}{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
\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} \section{Experience}\label{sec:experience}\removesectionpadding
\cventry{Sept. 2019 --\\Apr. 2025}{Hardware Test Engineer I/II}{SpaceX}{Redmond, WA \& Remote}{}{General description no longer than 1--2 lines.\newline{} \cventry{Sept. 2019 --\\Apr. 2025}{Hardware Test Engineer I/II}{Space Exploration Technologies Inc. \small{(SpaceX)}}{Redmond, WA \& Remote}{}{
Detailed achievements: 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} \begin{itemize}
\item Achievement 1 \item Owned, developed, and completed the consolidation, automation, and containerization of all Components Test team infrastructure, applications, and python modules
\item Achievement 2 (with sub-achievements)
\begin{itemize} \begin{itemize}
\item Sub-achievement (a); \item Unified all team applications into a dedicated monorepo, along with default templates enabling rapid new project startup
\item Sub-achievement (b), with sub-sub-achievements (don't do this!); \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} \begin{itemize}
\item Sub-sub-achievement i; \item CI/CD
\item Sub-sub-achievement ii; \begin{itemize}
\item Sub-sub-achievement iii; \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} \end{itemize}
\item Sub-achievement (c); \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 Achievement 3 \end{itemize}
\item Achievement 4 \item Owned, managed, and greatly improved monitoring of team infrastructure, test systems, and applications
\end{itemize}} \begin{itemize}
\cventry{Jan. 2019 --\\Mar. 2019}{Avionics Test Engineer (Intern)}{SpaceX}{Hawthorne, CA}{}{\small Wrote software in Python for automation of avionics hardware test systems. Performed circuit debugging on test system hardware. Validated test software performance per aerospace standards. Automated Jira work ticket generation for two internal avionics teams to improve product investigation, test, and repair workflows.} \item Configured and managed the team's Sentry instance, which greatly increased our team's ability to triage and solve critical application errors quickly
\cventry{Sept. 2013 -- \\Aug. 2019}{Automation Engineer/Student Automation Engineer}{Sinnhuber Aquatic Research Lab}{Corvalli, OR}{}{Description} \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.
\cventry{Apr. 2016 -- \\May 2018}{Student Software \& Electrical Engineer}{CEOAS Ocean Mixing Group}{Corvallis, OR}{}{Description} 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{Languages} \section{Skills}\label{sec:skills}\removesectionpadding
\cvitemwithcomment{Language 1}{Skill level}{Comment} \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{Computer skills} \section{Hobbies/Interests}\label{sec:hobbies/interests}\removesectionpadding
\cvdoubleitem{category 1}{XXX, YYY, ZZZ}{category 4}{XXX, YYY, ZZZ} \cvitem{}{\small{Linux (NixOS) | Home Automation | Homelab | Motorcycling | PCB Design | 3D Modeling \& Printing }}
\cvdoubleitem{category 2}{XXX, YYY, ZZZ}{category 5}{XXX, YYY, ZZZ}
\cvdoubleitem{category 3}{XXX, YYY, ZZZ}{category 6}{XXX, YYY, ZZZ}
\cvtripleitem{category 4}{XYZ}{category 5}{XYZ}{category 6}{XYZ}
\section{Skills}
% \cvitem{Skill matrix}{Alternatively, provide a skill matrix to show off your skills}
% Skill matrix as an alternative to rate one's skills, computer or other.
% Adjusts width of skill matrix columns.
% Usage \setcvskillcolumns[<width>][<factor>][<exp_width>]
% <width>, <exp_width> should be lengths smaller than \textwidth, <factor> needs to be between 0 and 1.
% Examples:
% \setcvskillcolumns[5em][][]% adjust first column. Same as \setcvskillcolumns[5em]
% \setcvskillcolumns[][0.45][]% adjust third (skill) column. Same as \setcvskillcolumns[][0.45]
% \setcvskillcolumns[][][\widthof{``Year''}]% adjust fourth (years) column.
% \setcvskillcolumns[][0.45][\widthof{``Year''}]%
% \setcvskillcolumns[\widthof{``Languag''}][0.48][]
% \setcvskillcolumns[\widthof{``Languag''}]%
% Adjusts width of legend columns. Usage \setcvskilllegendcolumns[<width>][<factor>]
% <factor> needs to be between 0 and 1. <width> should be a length smaller than \textwidth
% Examples:
% \setcvskilllegendcolumns[][0.45]
% \setcvskilllegendcolumns[\widthof{``Legend''}][0.45]
% \setcvskilllegendcolumns[0ex][0.46]% this is useful for the banking style
%% Add a legend if you are using \cvskill{<1-5>} command or \cvskillentry
%% Usage \cvskilllegend[*][<post_padding>][<first_level>][<second_level>][<third_level>][<fourth_level>][<fifth_level>]{<name>}
% \cvskilllegend % insert default legend without lines
%\cvskilllegend*[1em]{}% adjust post spacing
% \cvskilllegend*{Legend}% Alternatively add a description string
%% adjust the legend entries for other languages, here German
% \cvskilllegend[0.2em][Grundkenntnisse][Grundkenntnisse und eigene Erfahrung in Projekten][Umfangreiche Erfahrung in Projekten][Vertiefte Expertenkenntnisse][Experte\,/\,Spezialist]{Legende}
%% Alternative legend style with the first three skill levels in one column
%% Usage \cvskillplainlegend[*][<post_padding>][<first_level>][<second_level>][<third_level>][<fourth_level>][<fifth_level>]{<name>}
\setcvskilllegendcolumns[][0.6]% works for classic, casual, banking
% \setcvskilllegendcolumns[][0.55]% works better for oldstyle and fancy
% \cvskillplainlegend{}
% \cvskillplainlegend[0.2em][Grundkenntnisse][Grundkenntnisse und eigene Erfahrung in Projekten][Umfangreiche Erfahrung in Projekten][Vertiefte Expertenkenntnisse][Experte/Guru]{Legende}
%% Add a head of the skill matrix table with descriptions.
%% Usage \cvskillhead[<post_padding>][<Level>][<Skill>][<Years>][<Comment>]%
\cvskillhead[-0.1em]% this inserts the standard legend in english and adjust padding
%% Adjust head of the skill matrix for other languages
% \cvskillhead[0.25em][Level][F\"ahigkeit][Jahre][Bemerkung]
%% \cvskillentry[*][<post_padding>]{<skill_cathegory>}{<0-5>}{<skill_name>}{<years_of_experience>}{<comment>}%
%% Example usages:
\cvskillentry*{Language:}{3}{Python}{2}{Experienced in Python.}
\cvskillentry{}{2}{Lilypond}{14}{So much sheet music! Man, I'm the best!}
\cvskillentry{}{3}{\LaTeX}{14}{Clearly I rock at \LaTeX}
\cvskillentry*{OS:}{3}{Linux}{2}{I only use Archlinux btw}% notice the use of the starred command and the optional
\cvskillentry*[1em]{Methods}{4}{SCRUM}{8}{SCRUM master for 5 years}
% \cvskill{<0-5>} command
% \cvitem{\textbackslash{cvskill}:}{Skills can be visually expressed by the \textbackslash{cvskill} command, e.g. \cvskill{2}}
\section{Interests}
\cvitem{hobby 1}{Description}
%
%\section{Extra 1}
%\cvlistitem{Item 1}
%\cvlistitem{Item 2}
%\cvlistitem{Item 3. This item is particularly long and therefore normally spans over several lines. Did you notice the indentation when the line wraps?}
%
%\section{Extra 2}
%\cvlistdoubleitem{Item 1}{Item 4}
%\cvlistdoubleitem{Item 2}{Item 5\cite{book2}}
%\cvlistdoubleitem{Item 3}{Item 6. Like item 3 in the single column list before, this item is particularly long to wrap over several lines.}
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% FOOTER % FOOTER
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
\addtofoot[]{\textit{\small{References available upon request. Detailed experiences are available on my website.}}} \addcustomcvfooter
\end{document} \end{document}
%% end of file `template.tex'.

View File

@@ -5,16 +5,8 @@
% available at http://www.latex-project.org/lppl/. % available at http://www.latex-project.org/lppl/.
\documentclass[11pt,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') \documentclass[11pt,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')
% This is a hack to fix a weird build error in all styles but the contemporary one
% https://tex.stackexchange.com/a/621308
\makeatletter % this will go in the .sty file
\AddToHook{begindocument/before}{%
\@ifpackageloaded{tikz}{\usetikzlibrary{tikzmark}}{}%
}
\makeatother
% moderncv themes % moderncv themes
\moderncvcolor{green} % color options 'black', 'blue' (default), 'burgundy', 'green', 'grey', 'orange', 'purple' and 'red'; for contemporary style use 'cerulean' \moderncvcolor{_custom/moderncvcustomcolorgreen}
\moderncvstyle[]{classic} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle', 'fancy' and 'contemporary' \moderncvstyle[]{classic} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle', 'fancy' and 'contemporary'
% the 'contemporary' style optionally takes the `qr` (default) or `noqr` options % 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 %\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
@@ -22,7 +14,7 @@
% adjust the page margins % adjust the page margins
\usepackage[scale=0.94]{geometry} \usepackage[scale=0.94]{geometry}
%\setlength{\hintscolumnwidth}{3cm} % if you want to change the width of the column with the dates \setlength{\hintscolumnwidth}{9.5cm} % 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{\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) %\setlength{\listitemsymbolspace}{10pt} % set custom spacing between list symbol and text item (influences \cvlistitem and \cvlistdoubleitem)
@@ -76,10 +68,62 @@
\section{References} \section{References}
\cvitem{\textbf{SpaceX}\\\textit{Co-worker}}{John Doe\newline{}\tellink[]{+1~(111)~111~1111}\newline{}\emaillink[]{john.doe@johndoe.com}} \cvitem{\textbf{SpaceX} --\\\textit{Manager}}{
\textbf{Brian Riley}\newline
Sr. Manager, Components Test\newline
\fixedphonesymbol\tellink[]{+1~(310)~682~7639}\newline
\mobilephonesymbol\tellink[]{+1~(925)~285~3421}\newline
\emailsymbol\emaillink[]{brian.riley@spacex.com}
}
\vspace{1em} \vspace{1em}
\cvitem{\textbf{SpaceX}\\\textit{Co-worker}}{John Doe\newline{}\tellink[]{+1~(111)~111~1111}\newline{}\emaillink[]{john.doe@johndoe.com}} \cvitem{\textbf{SpaceX} --\\\textit{Manager}}{
\textbf{Michael Hemphill}\newline
Principal Hardware Test Engineer\newline
\fixedphonesymbol\tellink[]{+1~(310)~682~2222}\newline
\mobilephonesymbol\tellink[]{+1~(360)~265~0428}\newline
\emailsymbol\emaillink[]{michael.hemphill@spacex.com}
}
\vspace{1em} \vspace{1em}
\cvitem{\textbf{SpaceX}\\\textit{Co-worker}}{John Doe\newline{}\tellink[]{+1~(111)~111~1111}\newline{}\emaillink[]{john.doe@johndoe.com}} \cvitem{\textbf{SpaceX} --\\\textit{Peer/Co-worker}}{
\textbf{Eric Roeum}\newline
Sr. Software Engineer\newline
\fixedphonesymbol\tellink[]{+1~(310)~682~9716}\newline
\emailsymbol\emaillink[]{eric.roeum@spacex.com}
}
\vspace{1em}
\cvitem{\textbf{SpaceX} --\\\textit{Peer/Co-worker}}{
\textbf{David Zhen}\newline
Software Engineer II\newline
\emailsymbol\emaillink[]{david.zhen@spacex.com}
}
\vspace{1em}
\cvitem{\textbf{SpaceX} --\\\textit{Peer/Co-worker/Manager}}{
\textbf{Long Vo}\newline
Sr. Manager, Hardware Development\newline
\mobilephonesymbol\tellink[]{+1~(717)~679~2921}\newline
\emailsymbol\emaillink[]{long.vo@spacex.com}
}
\vspace{1em}
\cvitem{\textbf{SpaceX} --\\\textit{Peer/Co-worker/Friend}}{
\textbf{Ryan Hayman}\newline
Supervisor, Test Operations\newline
\mobilephonesymbol\tellink[]{+1~(425)~403~5922}\newline
\emailsymbol\emaillink[]{hayman.w.ryan@gmail.com}
}
\vspace{1em}
\cvitem{\textbf{SpaceX, CEOAS Ocean Mixing Group, OSU Robotics} --\\\textit{Peer/Co-worker/Manager/Friend}}{
\textbf{Nick McComb}\newline
Senior Electrical Engineer\newline
\mobilephonesymbol\tellink[]{+1~(503)~828~5326}\newline
\emailsymbol\emaillink[]{nick@nickmccomb.net}
}
\vspace{1em}
\cvitem{\textbf{Sinnhuber Aquatic Research Lab, OSU Robotics} --\\\textit{Peer/Co-worker/Friend}}{
\textbf{Dylan Thrush}\newline
Mechanical Design Engineer\newline
\mobilephonesymbol\tellink[]{+1~(425)~314~4753}\newline
\emailsymbol\emaillink[]{dylanthrush1@gmail.com}
}
\end{document} \end{document}

View File

@@ -17,19 +17,25 @@ NAME_PREFIX=corwin_perren
LEGACY_LATEX_BUILD_COMMAND=pdftex -halt-on-error -fmt=pdflatex LEGACY_LATEX_BUILD_COMMAND=pdftex -halt-on-error -fmt=pdflatex
LATEX_BUILD_COMMAND=lualatex --halt-on-error LATEX_BUILD_COMMAND=lualatex --halt-on-error
.PHONY: clean .PHONY: clean clean_build_logs
default: all default: all
clean: clean: clean_build_logs
@find . -type f -name '*.pdf' -delete -exec echo "Deleting {}" \; @find . -type f -name '*.pdf' -delete -exec echo "Deleting {}" \;
clean_build_logs:
@find . -type f -name '*.aux' -delete -exec echo "Deleting {}" \;
@find . -type f -name '*.log' -delete -exec echo "Deleting {}" \;
@find . -type f -name '*.out' -delete -exec echo "Deleting {}" \;
all: \ all: \
templates \ templates \
$(2019_07_01_HARDWARE_TEST_ENGINEER_PREFIX_PATH)_2019-07-01_hardware_test_engineer.pdf \ $(2019_07_01_HARDWARE_TEST_ENGINEER_PREFIX_PATH)_2019-07-01_hardware_test_engineer.pdf \
$(2025_10_27_HARDWARE_TEST_ENGINEER_PREFIX_PATH)_2025_10_27_hardware_test_engineer.pdf \ $(2025_10_27_HARDWARE_TEST_ENGINEER_PREFIX_PATH)_2025_10_27_hardware_test_engineer.pdf \
$(2025_10_27_INFRA_ENGINEER_PREFIX_PATH)_2025_10_27_infrastructure_engineer.pdf \ $(2025_10_27_INFRA_ENGINEER_PREFIX_PATH)_2025_10_27_infrastructure_engineer.pdf \
$(2025_10_27_REFERENCES_PREFIX_PATH)_2025_10_27_references.pdf $(2025_10_27_REFERENCES_PREFIX_PATH)_2025_10_27_references.pdf \
clean_build_logs
@git add . @git add .
templates: \ templates: \
@@ -37,13 +43,20 @@ templates: \
_templates/references/references.pdf \ _templates/references/references.pdf \
_templates/cover_letters/cover_letter.pdf _templates/cover_letters/cover_letter.pdf
_templates/resumes/resume.pdf: _templates/resumes/resume.tex _templates/resumes/resume.pdf: \
_templates/resumes/resume.tex \
moderncvcolor_custom/moderncvcustomcolorgreen.sty \
_custom/customcommands.sty
$(LATEX_BUILD_COMMAND) -output-directory=_templates/resumes _templates/resumes/resume.tex $(LATEX_BUILD_COMMAND) -output-directory=_templates/resumes _templates/resumes/resume.tex
_templates/references/references.pdf: _templates/references/references.tex _templates/references/references.pdf: _templates/references/references.tex \
moderncvcolor_custom/moderncvcustomcolorgreen.sty \
_custom/customcommands.sty
$(LATEX_BUILD_COMMAND) -output-directory=_templates/references _templates/references/references.tex $(LATEX_BUILD_COMMAND) -output-directory=_templates/references _templates/references/references.tex
_templates/cover_letters/cover_letter.pdf: _templates/cover_letters/cover_letter.tex _templates/cover_letters/cover_letter.pdf: _templates/cover_letters/cover_letter.tex \
moderncvcolor_custom/moderncvcustomcolorgreen.sty \
_custom/customcommands.sty
$(LATEX_BUILD_COMMAND) -output-directory=_templates/cover_letters _templates/cover_letters/cover_letter.tex $(LATEX_BUILD_COMMAND) -output-directory=_templates/cover_letters _templates/cover_letters/cover_letter.tex
$(2019_07_01_HARDWARE_TEST_ENGINEER_PREFIX_PATH)_2019-07-01_hardware_test_engineer.pdf: \ $(2019_07_01_HARDWARE_TEST_ENGINEER_PREFIX_PATH)_2019-07-01_hardware_test_engineer.pdf: \
@@ -52,16 +65,22 @@ $(2019_07_01_HARDWARE_TEST_ENGINEER_PREFIX_PATH)_2019-07-01_hardware_test_engine
@mv $(2019_07_01_HARDWARE_TEST_ENGINEER_DIR)/resume.pdf $(2019_07_01_HARDWARE_TEST_ENGINEER_PREFIX_PATH)_2019-07-01_hardware_test_engineer.pdf @mv $(2019_07_01_HARDWARE_TEST_ENGINEER_DIR)/resume.pdf $(2019_07_01_HARDWARE_TEST_ENGINEER_PREFIX_PATH)_2019-07-01_hardware_test_engineer.pdf
$(2025_10_27_HARDWARE_TEST_ENGINEER_PREFIX_PATH)_2025_10_27_hardware_test_engineer.pdf: \ $(2025_10_27_HARDWARE_TEST_ENGINEER_PREFIX_PATH)_2025_10_27_hardware_test_engineer.pdf: \
$(2025_10_27_HARDWARE_TEST_ENGINEER_DIR)/resume.tex $(2025_10_27_HARDWARE_TEST_ENGINEER_DIR)/resume.tex \
moderncvcolor_custom/moderncvcustomcolorgreen.sty \
_custom/customcommands.sty
$(LATEX_BUILD_COMMAND) -output-directory=$(2025_10_27_HARDWARE_TEST_ENGINEER_DIR) $(2025_10_27_HARDWARE_TEST_ENGINEER_DIR)/resume.tex $(LATEX_BUILD_COMMAND) -output-directory=$(2025_10_27_HARDWARE_TEST_ENGINEER_DIR) $(2025_10_27_HARDWARE_TEST_ENGINEER_DIR)/resume.tex
@mv $(2025_10_27_HARDWARE_TEST_ENGINEER_DIR)/resume.pdf $(2025_10_27_HARDWARE_TEST_ENGINEER_PREFIX_PATH)_2025_10_27_hardware_test_engineer.pdf @mv $(2025_10_27_HARDWARE_TEST_ENGINEER_DIR)/resume.pdf $(2025_10_27_HARDWARE_TEST_ENGINEER_PREFIX_PATH)_2025_10_27_hardware_test_engineer.pdf
$(2025_10_27_INFRA_ENGINEER_PREFIX_PATH)_2025_10_27_infrastructure_engineer.pdf: \ $(2025_10_27_INFRA_ENGINEER_PREFIX_PATH)_2025_10_27_infrastructure_engineer.pdf: \
$(2025_10_27_INFRA_ENGINEER_DIR)/resume.tex $(2025_10_27_INFRA_ENGINEER_DIR)/resume.tex \
moderncvcolor_custom/moderncvcustomcolorgreen.sty \
_custom/customcommands.sty
$(LATEX_BUILD_COMMAND) -output-directory=$(2025_10_27_INFRA_ENGINEER_DIR) $(2025_10_27_INFRA_ENGINEER_DIR)/resume.tex $(LATEX_BUILD_COMMAND) -output-directory=$(2025_10_27_INFRA_ENGINEER_DIR) $(2025_10_27_INFRA_ENGINEER_DIR)/resume.tex
@mv $(2025_10_27_INFRA_ENGINEER_DIR)/resume.pdf $(2025_10_27_INFRA_ENGINEER_PREFIX_PATH)_2025_10_27_infrastructure_engineer.pdf @mv $(2025_10_27_INFRA_ENGINEER_DIR)/resume.pdf $(2025_10_27_INFRA_ENGINEER_PREFIX_PATH)_2025_10_27_infrastructure_engineer.pdf
$(2025_10_27_REFERENCES_PREFIX_PATH)_2025_10_27_references.pdf: \ $(2025_10_27_REFERENCES_PREFIX_PATH)_2025_10_27_references.pdf: \
$(2025_10_27_REFERENCES_DIR)/references.tex $(2025_10_27_REFERENCES_DIR)/references.tex \
moderncvcolor_custom/moderncvcustomcolorgreen.sty \
_custom/customcommands.sty
$(LATEX_BUILD_COMMAND) -output-directory=$(2025_10_27_REFERENCES_DIR) $(2025_10_27_REFERENCES_DIR)/references.tex $(LATEX_BUILD_COMMAND) -output-directory=$(2025_10_27_REFERENCES_DIR) $(2025_10_27_REFERENCES_DIR)/references.tex
@mv $(2025_10_27_REFERENCES_DIR)/references.pdf $(2025_10_27_REFERENCES_PREFIX_PATH)_2025_10_27_references.pdf @mv $(2025_10_27_REFERENCES_DIR)/references.pdf $(2025_10_27_REFERENCES_PREFIX_PATH)_2025_10_27_references.pdf

View File

@@ -0,0 +1,40 @@
%-------------------------------------------------------------------------------
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{customcommands}[2025/10/28 custom commands for caperren]
\RequirePackage{datetime2}
\RequirePackage{pgfmath}
\RequirePackage{moderncvfooti}
\RequirePackage{xcolor}
%-------------------------------------------------------------------------------
% command definitions
%-------------------------------------------------------------------------------
% Specific to undoing the section and sub-section spacing of the moderncv templates without forking the whole thing
\newcommand*{\removesectionmargin}{\vspace{-2ex}}
\newcommand*{\removesectionpadding}{\vspace{-1ex}}
\newcommand*{\removesubsectionmargin}{\vspace{-1ex}}
\newcommand*{\removesubsectionpadding}{\vspace{-0.5ex}}
\newcommand{\yearsSince}[3]{
\pgfmathparse{
int(\year - \number#1 - ((\month < \number#2) || ((\month == \number#2) && (\day < \number#3)) ? 1 : 0))
}
\pgfmathresult
}
\newcommand{\addcustomcvfooter}{
\fancypagestyle{plain}{
\fancyfoot[c]{
\parbox[b]{\footwidth}{
\centering
\color{addresscolor}\addressfont
\vspace{\baselineskip}
\textit{\small{References available upon request. Detailed experiences are available on my website.}}
}}}
\pagestyle{plain}
}
\endinput

View File

@@ -14,7 +14,7 @@
\makeatother \makeatother
% moderncv themes % moderncv themes
\moderncvcolor{green} % color options 'black', 'blue' (default), 'burgundy', 'green', 'grey', 'orange', 'purple' and 'red'; for contemporary style use 'cerulean' \moderncvcolor{_custom/moderncvcustomcolorgreen}
\moderncvstyle[]{classic} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle', 'fancy' and 'contemporary' \moderncvstyle[]{classic} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle', 'fancy' and 'contemporary'
% the 'contemporary' style optionally takes the `qr` (default) or `noqr` options % 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 %\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

View File

@@ -5,16 +5,8 @@
% available at http://www.latex-project.org/lppl/. % available at http://www.latex-project.org/lppl/.
\documentclass[11pt,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') \documentclass[11pt,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')
% This is a hack to fix a weird build error in all styles but the contemporary one
% https://tex.stackexchange.com/a/621308
\makeatletter % this will go in the .sty file
\AddToHook{begindocument/before}{%
\@ifpackageloaded{tikz}{\usetikzlibrary{tikzmark}}{}%
}
\makeatother
% moderncv themes % moderncv themes
\moderncvcolor{green} % color options 'black', 'blue' (default), 'burgundy', 'green', 'grey', 'orange', 'purple' and 'red'; for contemporary style use 'cerulean' \moderncvcolor{_custom/moderncvcustomcolorgreen}
\moderncvstyle[]{classic} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle', 'fancy' and 'contemporary' \moderncvstyle[]{classic} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle', 'fancy' and 'contemporary'
% the 'contemporary' style optionally takes the `qr` (default) or `noqr` options % 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 %\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

View File

@@ -1,4 +1,3 @@
%% start of file `template.tex'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2024 moderncv maintainers (github.com/moderncv). %% 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 % This work may be distributed and/or modified under the
@@ -6,16 +5,8 @@
% available at http://www.latex-project.org/lppl/. % available at http://www.latex-project.org/lppl/.
\documentclass[11pt,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') \documentclass[11pt,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')
% This is a hack to fix a weird build error in all styles but the contemporary one
% https://tex.stackexchange.com/a/621308
\makeatletter % this will go in the .sty file
\AddToHook{begindocument/before}{%
\@ifpackageloaded{tikz}{\usetikzlibrary{tikzmark}}{}%
}
\makeatother
% moderncv themes % moderncv themes
\moderncvcolor{green} % color options 'black', 'blue' (default), 'burgundy', 'green', 'grey', 'orange', 'purple' and 'red'; for contemporary style use 'cerulean' \moderncvcolor{_custom/moderncvcustomcolorgreen}
\moderncvstyle[]{classic} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle', 'fancy' and 'contemporary' \moderncvstyle[]{classic} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle', 'fancy' and 'contemporary'
% the 'contemporary' style optionally takes the `qr` (default) or `noqr` options % 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 %\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
@@ -51,7 +42,8 @@
\fi \fi
% additional packages % additional packages
\usepackage{moderncvfooti} \usepackage{textcomp}
\usepackage{_custom/customcommands}
% document language % document language
\usepackage[english]{babel} \usepackage[english]{babel}
@@ -76,14 +68,16 @@
%----- resume --------------------------------------------------------- %----- resume ---------------------------------------------------------
\makecvtitle \makecvtitle
\vspace{-2.5em} \removesectionmargin
\section{Education} % for 'contemporary' style use optional argument for displaying an icon, e.g. \section[\faGraduationCap]{Education} \section{Education}\label{sec:education}
\cventry{June 2019}{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 \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} \section{Experience}\label{sec:experience}
\cventry{Sept. 2019 --\\Apr. 2025}{Hardware Test Engineer I/II}{SpaceX}{Redmond, WA \& Remote}{}{General description no longer than 1--2 lines.\newline{} \cventry{Sept. 2019 --\\Apr. 2025}{Hardware Test Engineer I/II}{SpaceX}{Redmond, WA \& Remote}{}{General description no longer than 1--2 lines.\newline{}
Detailed achievements: Detailed achievements:
\begin{itemize} \begin{itemize}
@@ -103,22 +97,28 @@
\item Achievement 4 \item Achievement 4
\end{itemize}} \end{itemize}}
\cventry{Jan. 2019 --\\Mar. 2019}{Avionics Test Engineer (Intern)}{SpaceX}{Hawthorne, CA}{}{\small Wrote software in Python for automation of avionics hardware test systems. Performed circuit debugging on test system hardware. Validated test software performance per aerospace standards. Automated Jira work ticket generation for two internal avionics teams to improve product investigation, test, and repair workflows.} \cventry{Jan. 2019 --\\Mar. 2019}{Avionics Test Engineer (Intern)}{SpaceX}{Hawthorne, CA}{}{\small Wrote software in Python for automation of avionics hardware test systems. Performed circuit debugging on test system hardware. Validated test software performance per aerospace standards. Automated Jira work ticket generation for two internal avionics teams to improve product investigation, test, and repair workflows.}
\cventry{Sept. 2013 -- \\Aug. 2019}{Automation Engineer/Student Automation Engineer}{Sinnhuber Aquatic Research Lab}{Corvalli, OR}{}{Description} \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} \cventry{Apr. 2016 --\\May 2018}{Student Software \& Electrical Engineer}{CEOAS Ocean Mixing Group}{Corvallis, OR}{}{Description}
\removesectionmargin
\section{Languages} \section{Languages}\label{sec:languages}
\cvitemwithcomment{Language 1}{Skill level}{Comment} \cvitemwithcomment{Language 1}{Skill level}{Comment}
\removesectionmargin
\section{Computer skills}
\section{Computer skills}\label{sec:computer skills}
\cvdoubleitem{category 1}{XXX, YYY, ZZZ}{category 4}{XXX, YYY, ZZZ} \cvdoubleitem{category 1}{XXX, YYY, ZZZ}{category 4}{XXX, YYY, ZZZ}
\cvdoubleitem{category 2}{XXX, YYY, ZZZ}{category 5}{XXX, YYY, ZZZ} \cvdoubleitem{category 2}{XXX, YYY, ZZZ}{category 5}{XXX, YYY, ZZZ}
\cvdoubleitem{category 3}{XXX, YYY, ZZZ}{category 6}{XXX, YYY, ZZZ} \cvdoubleitem{category 3}{XXX, YYY, ZZZ}{category 6}{XXX, YYY, ZZZ}
\cvtripleitem{category 4}{XYZ}{category 5}{XYZ}{category 6}{XYZ} \cvtripleitem{category 4}{XYZ}{category 5}{XYZ}{category 6}{XYZ}
\removesectionmargin
\section{Skills}
\section{Skills}\label{sec:skills}
% \cvitem{Skill matrix}{Alternatively, provide a skill matrix to show off your skills} % \cvitem{Skill matrix}{Alternatively, provide a skill matrix to show off your skills}
% Skill matrix as an alternative to rate one's skills, computer or other. % Skill matrix as an alternative to rate one's skills, computer or other.
@@ -171,9 +171,11 @@
% \cvskill{<0-5>} command % \cvskill{<0-5>} command
% \cvitem{\textbackslash{cvskill}:}{Skills can be visually expressed by the \textbackslash{cvskill} command, e.g. \cvskill{2}} % \cvitem{\textbackslash{cvskill}:}{Skills can be visually expressed by the \textbackslash{cvskill} command, e.g. \cvskill{2}}
\removesectionmargin
\section{Interests}
\cvitem{hobby 1}{Description} \section{Hobbies/Interests}\label{sec:hobbies/interests}
\cvitem{}{\small{Home Automation | Homelab | Motorcycling | PCB Design }}
% %
%\section{Extra 1} %\section{Extra 1}
@@ -192,6 +194,3 @@
\addtofoot[]{\textit{\small{References available upon request. Detailed experiences are available on my website.}}} \addtofoot[]{\textit{\small{References available upon request. Detailed experiences are available on my website.}}}
\end{document} \end{document}
%% end of file `template.tex'.

View File

@@ -0,0 +1,26 @@
%-------------------------------------------------------------------------------
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvcolor_custom/moderncvcustomcolorgreen}[2025-10-28 modern curriculum vitae and letter color scheme: custom green]
%-------------------------------------------------------------------------------
% color scheme definition
%-------------------------------------------------------------------------------
\definecolor{black}{HTML}{000000}
\definecolor{white}{HTML}{ffffff}
\definecolor{darkgrey}{HTML}{2d2d2d}
\definecolor{green}{HTML}{10ac25}
\definecolor{palegreen}{HTML}{000000}
\colorlet{color0}{black}
\colorlet{color1}{green}
\colorlet{color2}{darkgrey}
\colorlet{headTL}{black}
\colorlet{headBR}{color1}
\colorlet{headtext}{white}
\colorlet{headhr}{color2}
\endinput