diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 097d5e8..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,32 +0,0 @@ -# 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 new file mode 100644 index 0000000..bd1aa4d --- /dev/null +++ b/.latexmkrc @@ -0,0 +1,35 @@ +# .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 916f61e..ebdb84e 100644 --- a/flake.nix +++ b/flake.nix @@ -23,37 +23,60 @@ buildInputs = [ pkgs.coreutils pkgs.findutils - (texlive = with pkgs; - texlive.combine { - inherit - (texlive) - scheme-small - academicons - arydshln - fontawesome5 - marvosym - moderncv - multirow - ; - }) + pkgs.texlive.combined.scheme-full + pkgs.noto-fonts-color-emoji + pkgs.fontconfig + pkgs.dejavu_fonts + pkgs.gnugrep ]; + + FONTCONFIG_FILE = pkgs.makeFontsConf { + fontDirectories = [ + pkgs.noto-fonts-color-emoji + pkgs.dejavu_fonts + ]; + }; + buildPhase = '' export PATH="${pkgs.lib.makeBinPath buildInputs}" - echo $PATH - mkdir -p .cache/texmf-var + 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 env TEXMFHOME=.cache TEXMFVAR=.cache/texmf-var \ - latexmk -interaction=nonstopmode -f -pdf \ - resume.tex + 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 ''; installPhase = '' mkdir -p $out - cp resume.pdf $out/ + cp *.pdf $out/ ''; }; pdf = pkgs.runCommand "resume-pdf" {} '' mkdir -p $out/nix-support - cp ${self.packages.${pkgs.system}.default}/resume.pdf $out/ - echo "file pdf $out/resume.pdf" > $out/nix-support/hydra-build-products + 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 ''; }); @@ -67,19 +90,7 @@ devShells = eachSystem (pkgs: { default = pkgs.mkShell { buildInputs = [ - (texlive = with pkgs; - texlive.combine { - inherit - (texlive) - scheme-small - academicons - arydshln - fontawesome5 - marvosym - moderncv - multirow - ; - }) + pkgs.texlive.combined.scheme-full pkgs.texlab pkgs.termpdfpy ]; diff --git a/resume.tex b/resume.tex index 4091a79..49afe92 100644 --- a/resume.tex +++ b/resume.tex @@ -1,77 +1,216 @@ -\documentclass[11pt,letterpaper,sans]{moderncv} +%------------------------- +% Resume in Latex +% Author : Zachary Myers +% License : MIT +%------------------------ -% Theme configuration -\moderncvstyle{classic} -\moderncvcolor{blue} +\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 -% Required packages -\usepackage[scale=0.85]{geometry} \usepackage[mocha]{catppuccin} -\usepackage{fontawesome5} +\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} -% 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 -% Adjust formatting -\renewcommand*{\namefont}{\huge\color{headingcolor}} -\renewcommand*{\titlefont}{\Large\color{secondarycolor}} -\renewcommand*{\sectionfont}{\Large\color{headingcolor}} -\renewcommand*{\subsectionfont}{\large\color{accentcolor}} +\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 %%%%%%%%%%%%%%%%%%%%%%%%%%%% -% 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 -% Skills Section + +%----------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------------ \section{Skills} -\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} +\textbf{\color{ctpBlue}Languages}{: TypeScript, JavaScript, Rust, Golang, Java, HTML, CSS, SQL, Lua} +\hfill -% Experience Section +\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----------------- \section{Experience} -\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}} +\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{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}} +%------------AWARDS------------------ -\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} -\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.} +\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.} -% Education Section +%-----------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----------------- \section{Education} -\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.} +\resumeSubheading +{Roosevelt High School}{Honolulu, HI} +{Graduate}{2016-2020} +\vspace{1em} -\end{document} \ No newline at end of file +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}