diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..097d5e8 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,32 @@ +# This file is a template, and might need editing before it works on your project. +# This is a sample GitLab CI/CD configuration file that should run without any modifications. +# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts, +# it uses echo commands to simulate the pipeline execution. +# +# A pipeline is composed of independent jobs that run scripts, grouped into stages. +# Stages run in sequential order, but jobs within stages run in parallel. +# +# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages +# +# You can copy and paste this template into a new `.gitlab-ci.yml` file. +# You should not add this template to an existing `.gitlab-ci.yml` file by using the `include:` keyword. +# +# To contribute improvements to CI/CD templates, please follow the Development guide at: +# https://docs.gitlab.com/ee/development/cicd/templates.html +# This specific template is located at: +# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml + +stages: # List of stages for jobs, and their order of execution + - build + + +build-job: # This job runs in the build stage, which runs first. + stage: build + script: + - . "$HOME/.nix-profile/etc/profile.d/nix.sh" + - nix build --extra-experimental-features nix-command --extra-experimental-features flakes + artifacts: + paths: + - result/resume.pdf + + diff --git a/.latexmkrc b/.latexmkrc deleted file mode 100644 index bd1aa4d..0000000 --- a/.latexmkrc +++ /dev/null @@ -1,35 +0,0 @@ -# .latexmkrc -$pdf_mode = 4; # Generate PDF using lualatex -$lualatex = 'lualatex -interaction=nonstopmode -shell-escape'; -$clean_ext = 'aux fdb_latexmk fls log synctex.gz xdv'; - -# Check if isZoey is set -$is_zoey = $ENV{isZoey} || '0'; # Default to false - -# Set variables based on isZoey -if ($is_zoey eq '1') { - $name = 'Zoey Myers'; - $email = 'hi@zoeys.computer'; - $website = 'zoeys.computer'; - $social = '\\emoji{transgender-flag}'; - $linkedin = ''; # Empty or alternative URL if needed -} else { - $name = 'Zachary Myers'; - $email = 'me@zackmyers.io'; - $website = 'zackmyers.io'; - $social = 'zackartz'; - $linkedin = 'https://www.linkedin.com/in/zachary-myers-b9a150186/'; -} - -$lualatex = "lualatex '\\newcommand{\\myname}{Default}" . - "\\newcommand{\\myemail}{Default}" . - "\\newcommand{\\mywebsite}{Default}" . - "\\newcommand{\\mysocial}{Default}" . - "\\newcommand{\\mylinkedin}{Default}" . - "\\newcommand{\\gituser}{zackartz}" . - "\\renewcommand{\\myname}{$name}" . - "\\renewcommand{\\myemail}{$email}" . - "\\renewcommand{\\mywebsite}{$website}" . - "\\renewcommand{\\mysocial}{$social}" . - "\\renewcommand{\\mylinkedin}{$linkedin}" . - "\\input{%S}'"; diff --git a/flake.nix b/flake.nix index ebdb84e..916f61e 100644 --- a/flake.nix +++ b/flake.nix @@ -23,60 +23,37 @@ buildInputs = [ pkgs.coreutils pkgs.findutils - pkgs.texlive.combined.scheme-full - pkgs.noto-fonts-color-emoji - pkgs.fontconfig - pkgs.dejavu_fonts - pkgs.gnugrep + (texlive = with pkgs; + texlive.combine { + inherit + (texlive) + scheme-small + academicons + arydshln + fontawesome5 + marvosym + moderncv + multirow + ; + }) ]; - - FONTCONFIG_FILE = pkgs.makeFontsConf { - fontDirectories = [ - pkgs.noto-fonts-color-emoji - pkgs.dejavu_fonts - ]; - }; - buildPhase = '' export PATH="${pkgs.lib.makeBinPath buildInputs}" - export XDG_CACHE_HOME="$PWD/.cache" - export FONTCONFIG_CACHE_DIR="$PWD/.cache/fontconfig" - - mkdir -p .cache/texmf-var $FONTCONFIG_CACHE_DIR - - # Rebuild font cache (redirect stderr to suppress font cache messages) - fc-cache -f -v 2>&1 | grep -v "caching" | grep -v "skipping" || true - - # Run latexmk and filter out specific warnings + echo $PATH + mkdir -p .cache/texmf-var env TEXMFHOME=.cache TEXMFVAR=.cache/texmf-var \ - isZoey=1 latexmk -interaction=nonstopmode -f resume.tex 2>&1 \ - | grep -v "Missing character" \ - | grep -v "Font.*cache" \ - | grep -v "fontconfig:" \ - | grep -v "looped directory detected" \ - || [ $? -eq 1 ] # Allow latexmk to fail but still show output - mv resume.pdf ZoeyMyersResume.pdf - - env TEXMFHOME=.cache TEXMFVAR=.cache/texmf-var \ - isZoey=0 latexmk -interaction=nonstopmode -f resume.tex 2>&1 \ - | grep -v "Missing character" \ - | grep -v "Font.*cache" \ - | grep -v "fontconfig:" \ - | grep -v "looped directory detected" \ - || [ $? -eq 1 ] - mv resume.pdf ZacharyMyersResume.pdf + latexmk -interaction=nonstopmode -f -pdf \ + resume.tex ''; installPhase = '' mkdir -p $out - cp *.pdf $out/ + cp resume.pdf $out/ ''; }; pdf = pkgs.runCommand "resume-pdf" {} '' mkdir -p $out/nix-support - cp ${self.packages.${pkgs.system}.default}/ZoeyMyersResume.pdf $out/ - cp ${self.packages.${pkgs.system}.default}/ZacharyMyersResume.pdf $out/ - echo "file pdf $out/ZoeyMyersResume.pdf" > $out/nix-support/hydra-build-products - echo "file pdf $out/ZacharyMyersResume.pdf" >> $out/nix-support/hydra-build-products + cp ${self.packages.${pkgs.system}.default}/resume.pdf $out/ + echo "file pdf $out/resume.pdf" > $out/nix-support/hydra-build-products ''; }); @@ -90,7 +67,19 @@ devShells = eachSystem (pkgs: { default = pkgs.mkShell { buildInputs = [ - pkgs.texlive.combined.scheme-full + (texlive = with pkgs; + texlive.combine { + inherit + (texlive) + scheme-small + academicons + arydshln + fontawesome5 + marvosym + moderncv + multirow + ; + }) pkgs.texlab pkgs.termpdfpy ]; diff --git a/resume.tex b/resume.tex index 49afe92..4091a79 100644 --- a/resume.tex +++ b/resume.tex @@ -1,216 +1,77 @@ -%------------------------- -% Resume in Latex -% Author : Zachary Myers -% License : MIT -%------------------------ +\documentclass[11pt,letterpaper,sans]{moderncv} -\documentclass[letterpaper,5pt]{article} - -\providecommand{\myname}{Zachary Myers} -\providecommand{\myemail}{me@zackmyers.io} -\providecommand{\mywebsite}{zackmyers.io} -\providecommand{\mysocial}{zackartz} -\providecommand{\mylinkedin}{https://www.linkedin.com/in/zachary-myers-b9a150186/} - -\usepackage[utf8]{inputenc} -\usepackage{newunicodechar} -\usepackage{fontspec} % For Unicode symbols +% Theme configuration +\moderncvstyle{classic} +\moderncvcolor{blue} +% Required packages +\usepackage[scale=0.85]{geometry} \usepackage[mocha]{catppuccin} -\usepackage{latexsym} -\usepackage[empty]{fullpage} -\usepackage{titlesec} -\usepackage{marvosym} -\usepackage[hidelinks]{hyperref} -\usepackage{fancyhdr} -\usepackage[english]{babel} -\usepackage{tabularx} \usepackage{fontawesome5} -\usepackage{emoji} -% \input{glyphtounicode} +\usepackage[hidelinks]{hyperref} +% Custom colors using Catppuccin +\definecolor{headingcolor}{RGB}{137, 180, 250} % Catppuccin Blue +\definecolor{secondarycolor}{RGB}{148, 226, 213} % Catppuccin Sapphire +\definecolor{accentcolor}{RGB}{203, 166, 247} % Catppuccin Mauve +\definecolor{bodycolor}{RGB}{205, 214, 244} % Catppuccin Text -\setemojifont{Noto Color Emoji}[ - Path = /nix/store/y2h3pmlj3msxm8f1fw99kpbl2kfr2sr3-noto-fonts-color-emoji-2.042/share/fonts/noto/, - Extension = .ttf -] - - -\setlength{\footskip}{3.60004pt} -\pagestyle{fancy} -\fancyhf{} % clear all header and footer fields -\fancyfoot{} -\renewcommand{\headrulewidth}{0pt} -\renewcommand{\footrulewidth}{0pt} - -% Adjust margins -\addtolength{\oddsidemargin}{-0.5in} -\addtolength{\evensidemargin}{-0.5in} -\addtolength{\textwidth}{1in} -\addtolength{\topmargin}{-.5in} -\addtolength{\textheight}{1.0in} - -\urlstyle{same} - -\raggedbottom -\raggedright -\setlength{\tabcolsep}{0in} - -% Sections formatting -\titleformat{\section}{ - \vspace{-2pt}\scshape\raggedright\large -}{}{0em}{}[\color{ctpSurface0}\titlerule \vspace{-5pt}] - -% Ensure that generate pdf is machine readable/ATS parsable -% \pdfgentounicode=1 - -%------------------------- -% Custom commands -\newcommand{\resumeItem}[2]{ - \small{ - \textbf{#1}{: #2 \vspace{-12pt}} - } -} - -% Just in case someone needs a heading that does not need to be in a list -\newcommand{\resumeHeading}[4]{ - \begin{tabular*}{0.99\textwidth}[t]{l@{\extracolsep{\fill}}r} - \textbf{#1} & #2 \\ - \textit{\small#3} & \textit{\small #4} \\ - \end{tabular*}\vspace{0pt} -} - -\newcommand{\resumeSubheading}[4]{ - \begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r} - \textbf{\color{ctpRed}#1} & \color{ctpSapphire}#2 \\ - \textit{\small\color{ctpSubtext1}#3} & \textit{\small\color{ctpSubtext0} #4} \\ - \end{tabular*}\vspace{-3pt} -} - -\newcommand{\resumeSubSubheading}[2]{ - \begin{tabular*}{0.97\textwidth}{l@{\extracolsep{\fill}}r} - \textit{\small#1} & \textit{\small #2} \\ - \end{tabular*}\vspace{-20pt} -} - -\newcommand{\resumeSubItem}[2]{\resumeItem{\color{ctpGreen}#1}{#2}\vspace{5pt}} -\renewcommand{\labelitemii}{$\circ$} - - -\newcommand{\resumeItemListStart}{ - \begin{itemize} - \setlength\itemsep{0.05em} -} -\newcommand{\resumeItemListEnd}{\end{itemize}\vspace{0pt}} - -\newcommand{\equal}[2]{\ifnum\pdf@strcmp{#1}{#2}=0 } -\newcommand{\sociallinks}{% - \ifx\mysocial\gituser - {\faLinkedin\space\href{\mylinkedin}{\underline{\myname}}} {\space\space\space}% - {\faIcon{github}\space\href{https://github.com/\mysocial}{\underline{\mysocial}}} {\space\space\space}% - \else - {\mysocial} {\space\space\space}% - \fi -} - -%------------------------------------------- -%%%%%% CV STARTS HERE %%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Adjust formatting +\renewcommand*{\namefont}{\huge\color{headingcolor}} +\renewcommand*{\titlefont}{\Large\color{secondarycolor}} +\renewcommand*{\sectionfont}{\Large\color{headingcolor}} +\renewcommand*{\subsectionfont}{\large\color{accentcolor}} +% Personal Information +\name{Zachary}{Myers} +\email{me@zackmyers.io} +\phone{+1 (808) 799-3884} +\social[linkedin]{zachary-myers-b9a150186} +\social[github]{zackartz} +\homepage{zackmyers.io} +\extrainfo{\faIcon{passport} US Citizen \quad \faIcon{clock} EST/EDT} \begin{document} +\makecvtitle - -%----------HEADING----------------- -\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r} - \textbf{\href{https://\mywebsite/}{\Large \color{ctpBlue}\myname}} & {\faIcon{envelope}\space}Email : \href{mailto:\myemail}{\myemail}\\ - \sociallinks - {\faIcon{user}\space \href{https://\mywebsite}{\underline{Website}}} {\space\space\space} - {\faIcon{passport}\space{{US Citizen}}}{\space\space\space} - {\faIcon{clock}\space{EST/EDT}} - {\space\space\space} - &\faIcon{mobile-alt} Mobile : +1 (808) 799-3884 -\end{tabular*} - -% -%--------PROGRAMMING SKILLS------------ +% Skills Section \section{Skills} -\textbf{\color{ctpBlue}Languages}{: TypeScript, JavaScript, Rust, Golang, Java, HTML, CSS, SQL, Lua} -\hfill +\cvitem{\color{headingcolor}Languages}{TypeScript, JavaScript, Rust, Golang, Java, HTML, CSS, SQL, Lua} +\cvitem{\color{secondarycolor}Technologies}{GraphQL, Docker, Kubernetes, Linux, NixOS, Windows, macOS, PostgreSQL, MongoDB, Redis, InfluxDB} +\cvitem{\color{accentcolor}Libraries and Tools}{NextJS, SvelteKit, Rocket, Actix, Express, Neovim, TailwindCSS} -\vspace{2pt} - -\textbf{\color{ctpSapphire}Technologies}{: GraphQL, Docker, Kubernetes, Linux, NixOS, Windows, macOS, PostgreSQL, MongoDB, Redis, InfluxDB} -\hfill - -\vspace{2pt} - -\textbf{\color{ctpMauve}Libraries and Tools}{: NextJS, SvelteKit, Rocket, Actix, Express, Neovim, TailwindCSS} -\hfill -%------------------------------------------- - -%-----------EXPERIENCE----------------- +% Experience Section \section{Experience} -\resumeSubheading{Pixegon}{Remote}{Mid Level Web Developer (Current)}{2023-2024} -\resumeItemListStart -\item \textbf{Designed and developed global services:} Spearheaded the creation and deployment of robust services that empower users worldwide to advance their professional capabilities. -\item \textbf{Enhanced and maintained legacy software:} Leveraged exceptional teamwork and advanced software engineering skills to modernize legacy systems, integrating new functionalities while reducing bug rates. -\item \textbf{Optimized team collaboration:} Enhanced team synergy and efficiency by identifying potential delays and bugs early, streamlining workflows and knowledge transfer, which led to surpassing production targets. -\item \textbf{Implemented AI-driven automation:} Pioneered the use of artificial intelligence to automate repetitive processes, boosting operational efficiency by 95\% and achieving over 200 hours in annual time savings. -\resumeItemListEnd -\resumeSubheading -{Champria}{Remote} -{Senior Backend Developer}{2021-2022} -\resumeItemListStart -\item \textbf{Collaborative backend development:} Collaborated with the CEO and Lead Developer to architect and implement a Golang monorepo backend, processing over 10,000 data points per hour, which expedited development cycles and boosted code efficiency. -\item \textbf{Data storage optimization:} Implemented GraphQL and TimescaleDB to enhance data storage solutions, achieving a 40\% decrease in query response times and significantly improving system scalability. -\item \textbf{Language performance enhancement:} Led the strategic migration from NodeJS to Golang, securing a 20\% boost in system quality, consistency, and performance; which markedly increased efficiency and delivered superior outcomes. -\item \textbf{Security and quality assurance:} Conducted rigorous peer code reviews and security checks, contributing to substantial security enhancements and a 20\% reduction in bugs. -\item \textbf{Advanced data management:} Revolutionized data storage for multi-million data point datasets through the application of advanced compression algorithms and indexing techniques, tripling response times and improving data accessibility. -\item \textbf{Infrastructure and deployment optimization:} Orchestrated a comprehensive overhaul of infrastructure, creating and managing an automated CI/CD pipeline using GitHub Actions, which slashed deployment times by 90\% and bolstered confidence in production releases. -\resumeItemListEnd -\resumeSubheading -{Damage Inc}{Remote} -{Volunteer Developer}{2020-2021} -\resumeItemListStart -\item \textbf{Enhanced app stability:} Worked closely with the Lead Backend Developer to diagnose and resolve critical bugs, achieving a 50\% improvement in overall application stability. -\item \textbf{Accelerated project completion:} Quickly mastered new tools and technologies, directly contributing to a 35\% increase in project completions and improved team satisfaction through efficient project execution. -\resumeItemListEnd +\cventry{2023--2024}{Mid Level Web Developer}{Pixegon}{Remote}{}{% +\begin{itemize} +\item Designed and developed global services: Spearheaded the creation and deployment of robust services that empower users worldwide to advance their professional capabilities. +\item Enhanced and maintained legacy software: Leveraged exceptional teamwork and advanced software engineering skills to modernize legacy systems, integrating new functionalities while reducing bug rates. +\item Optimized team collaboration: Enhanced team synergy and efficiency by identifying potential delays and bugs early, streamlining workflows and knowledge transfer, which led to surpassing production targets. +\item Implemented AI-driven automation: Pioneered the use of artificial intelligence to automate repetitive processes, boosting operational efficiency by 95\% and achieving over 200 hours in annual time savings. +\end{itemize}} -%------------AWARDS------------------ +\cventry{2021--2022}{Senior Backend Developer}{Champria}{Remote}{}{% +\begin{itemize} +\item Collaborative backend development: Collaborated with the CEO and Lead Developer to architect and implement a Golang monorepo backend, processing over 10,000 data points per hour, which expedited development cycles and boosted code efficiency. +\item Data storage optimization: Implemented GraphQL and TimescaleDB to enhance data storage solutions, achieving a 40\% decrease in query response times and significantly improving system scalability. +\item Language performance enhancement: Led the strategic migration from NodeJS to Golang, securing a 20\% boost in system quality, consistency, and performance; which markedly increased efficiency and delivered superior outcomes. +\item Security and quality assurance: Conducted rigorous peer code reviews and security checks, contributing to substantial security enhancements and a 20\% reduction in bugs. +\item Advanced data management: Revolutionized data storage for multi-million data point datasets through the application of advanced compression algorithms and indexing techniques, tripling response times and improving data accessibility. +\item Infrastructure and deployment optimization: Orchestrated a comprehensive overhaul of infrastructure, creating and managing an automated CI/CD pipeline using GitHub Actions, which slashed deployment times by 90\% and bolstered confidence in production releases. +\end{itemize}} +\cventry{2020--2021}{Volunteer Developer}{Damage Inc}{Remote}{}{% +\begin{itemize} +\item Enhanced app stability: Worked closely with the Lead Backend Developer to diagnose and resolve critical bugs, achieving a 50\% improvement in overall application stability. +\item Accelerated project completion: Quickly mastered new tools and technologies, directly contributing to a 35\% increase in project completions and improved team satisfaction through efficient project execution. +\end{itemize}} + +% Awards Section \section{Awards} -\resumeSubItem{GPT-4 Hackathon} -{Led backend development and provided support for frontend development in the winning team of a GPT-4 Hackathon, creating Materialize, an interactive website utilizing GPT-4 for real-time lumber market analysis including prices, news listings, and reports.} +\cvitem{GPT-4 Hackathon}{Led backend development and provided support for frontend development in the winning team of a GPT-4 Hackathon, creating Materialize, an interactive website utilizing GPT-4 for real-time lumber market analysis including prices, news listings, and reports.} -%-----------PROJECTS----------------- -%\section{Projects} -% \resumeSubHeadingListStart -% \resumeSubItem{Virtual Memory Pager} -% {Implemented a virtual memory pager which managed various application address spaces. Provided support for file and swap backed pages, alongside forking a process with a non empty arena.} -% \vspace{6} -% \resumeSubItem{Paxos RSM} -% {Designed a replicated key value service that is replicated using Paxos. Implementation included designing a fully functional paxos algorithm to gain consensus on a generic operation. Additionally, I designed the interface for clients and a Paxos RSM to communicate with these services. The paxos Key Value RSM communicates with paxos itself to propose client operations and gain a quorum on sed. operation.} -% \vspace{6} -% \resumeSubItem{\href{https://leagueboostclub.com/}{\underline{Leagueboostclub.com}}} -% {Full Stack developed a League of Legends community website revolving around improving your rank. Links independent contractors to customers searching to increase their rank and skill.} -% \vspace{6} -% \resumeSubItem{Neural Network Machine Multiclass Classifier} -% {Developed a from scratch Convolution Neural Network optimized for the Nvidia A100 GPU, written in CUDA. CNN was designed to classify images where paralyzable convolution operations result in a 36x increase in performance compared to a serial version.} -%% Calculated and developed multiple different models which maximized different metrics for a multiclass SVM using a one vs one approach in order to correctly classify reviews on a rating scale of 1 to 5.} -% \vspace{6} -% \resumeSubItem{\href{https://github.com/maximosnolan/LinkedHash}{\underline{Linked Hash Map}}} -% {Designed from scratch a Linked HashMap and HashSet in C++ 20. } - - -% \resumeSubHeadingListEnd - - -% %-----------EDUCATION----------------- +% Education Section \section{Education} -\resumeSubheading -{Roosevelt High School}{Honolulu, HI} -{Graduate}{2016-2020} -\vspace{1em} +\cventry{2016--2020}{Graduate}{Roosevelt High School}{Honolulu, HI}{}{Overachieved in Roosevelt High School's STEM class, succeeding in learning new concepts while helping other students. Worked on personal projects outside of school to further understand programming.} -Overachieved in Roosevelt High School's STEM class, succeeding in learning new concepts while helping other students. Worked on personal projects outside of school to further understand programming. -\end{document} +\end{document} \ No newline at end of file