diff --git a/flake.lock b/flake.lock index d79a52ca8bc3d484fee1eb6b418007eac9cc9377..c6a714a9d8c4b9e4c802315822b50d767accb376 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,23 @@ { "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1697383814, @@ -17,7 +35,23 @@ } }, "root": { "inputs": { + "flake-utils": "flake-utils", "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index 2ba4d2bab15c23d62d6e8e0119320c0a84061b23..f33abfb9987001ff4b650a766064d55311944752 100644 --- a/flake.nix +++ b/flake.nix @@ -1,66 +1,47 @@ { - inputs.nixpkgs.url = "github:nixos/nixpkgs"; - outputs = - { - self, - nixpkgs, - }: - let - systems = [ - "x86_64-linux" - "i686-linux" - "x86_64-darwin" - "aarch64-linux" - "armv6l-linux" - "armv7l-linux" - ]; - forAllSystems = f: nixpkgs.lib.genAttrs systems f; - in - { - packages = forAllSystems ( - system: - let - pkgs = nixpkgs.legacyPackages.${system}; - in - { - default = pkgs.stdenv.mkDerivation { - pname = "resume"; - version = "typst"; - src = ./.; - nativeBuildInputs = with pkgs; [ - typst - raleway - ]; - buildPhase = '' - runHook preBuild + inputs = { + nixpkgs.url = "github:nixos/nixpkgs"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { + self, + flake-utils, + nixpkgs, + }: + flake-utils.lib.eachDefaultSystem ( + system: let + pkgs = nixpkgs.legacyPackages.${system}; + in { + packages.default = pkgs.stdenv.mkDerivation { + pname = "resume"; + version = "typst"; + src = ./.; + nativeBuildInputs = with pkgs; [ + typst + raleway + ]; + buildPhase = '' + runHook preBuild - mkdir $out - export TYPST_FONT_PATHS=${pkgs.raleway}/share/fonts - typst compile resume.typ $out/resume.pdf - typst compile resume.typ $out/resume.png - cp resume.typ $out/resume.typ + mkdir $out + export TYPST_FONT_PATHS=${pkgs.raleway}/share/fonts + typst compile resume.typ $out/resume.pdf + typst compile resume.typ $out/resume.png + cp resume.typ $out/resume.typ - runHook postBuild - ''; - }; - } - ); - devShells = forAllSystems ( - system: - let - pkgs = nixpkgs.legacyPackages.${system}; - in - { - default = pkgs.mkShell { - nativeBuildInputs = with pkgs; [ - typst - raleway - ]; - shellHook = '' - export TYPST_FONT_PATHS=${pkgs.raleway}/share/fonts - ''; - }; - } - ); - }; + runHook postBuild + ''; + }; + devShells.default = pkgs.mkShell { + nativeBuildInputs = with pkgs; [ + typst + raleway + ]; + shellHook = '' + export TYPST_FONT_PATHS=${pkgs.raleway}/share/fonts + ''; + }; + } + ); } diff --git a/resume.tex b/resume.tex new file mode 100644 index 0000000000000000000000000000000000000000..0bc5a6381110b0aeee794f2eb8fecb4cadec7b5f --- /dev/null +++ b/resume.tex @@ -0,0 +1,194 @@ +%------------------------- +% Based off of: https://github.com/sb2nov/resume +% License : MIT +%------------------------ + +\documentclass[letterpaper,11pt]{article} + +\usepackage{latexsym} +\usepackage[empty]{fullpage} +\usepackage{titlesec} +\usepackage{marvosym} +\usepackage[usenames,dvipsnames]{color} +\usepackage{verbatim} +\usepackage{enumitem} +\usepackage[hidelinks]{hyperref} +\usepackage{fancyhdr} +\usepackage[english]{babel} +\usepackage{tabularx} +\input{glyphtounicode} + + +%----------FONT OPTIONS---------- +% sans-serif +% \usepackage[sfdefault]{FiraSans} + \usepackage[default]{raleway} +% \usepackage[sfdefault]{noto-sans} +% \usepackage[default]{sourcesanspro} + +% serif +% \usepackage{CormorantGaramond} +% \usepackage{charter} + + +\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{-4pt}\scshape\raggedright\large +}{}{0em}{}[\color{black}\titlerule \vspace{-5pt}] + +% Ensure that generate pdf is machine readable/ATS parsable +\pdfgentounicode=1 + +%------------------------- +% Custom commands +\newcommand{\resumeItem}[1]{ + \item\small{ + {#1 \vspace{-2pt}} + } +} + +\newcommand{\resumeSubheading}[4]{ + \vspace{-2pt}\item + \begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r} + \textbf{#1} & #2 \\ + \textit{\small#3} & \textit{\small #4} \\ + \end{tabular*}\vspace{-7pt} +} + +\newcommand{\resumeSubSubheading}[2]{ + \item + \begin{tabular*}{0.97\textwidth}{l@{\extracolsep{\fill}}r} + \textit{\small#1} & \textit{\small #2} \\ + \end{tabular*}\vspace{-7pt} +} + +\newcommand{\resumeProjectHeading}[2]{ + \item + \begin{tabular*}{0.97\textwidth}{l@{\extracolsep{\fill}}r} + \small#1 & #2 \\ + \end{tabular*}\vspace{-7pt} +} + +\newcommand{\resumeSubItem}[1]{\resumeItem{#1}\vspace{-4pt}} + +\renewcommand\labelitemii{$\vcenter{\hbox{\tiny$\bullet$}}$} + +\newcommand{\resumeSubHeadingListStart}{\begin{itemize}[leftmargin=0.15in, label={}]} +\newcommand{\resumeSubHeadingListEnd}{\end{itemize}} +\newcommand{\resumeItemListStart}{\begin{itemize}} +\newcommand{\resumeItemListEnd}{\end{itemize}\vspace{-5pt}} + +%------------------------------------------- +%%%%%% RESUME STARTS HERE %%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\begin{document} + +%----------HEADING---------- +% \begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r} +% \textbf{\href{http://sourabhbajaj.com/}{\Large Sourabh Bajaj}} & Email : \href{mailto:sourabh@sourabhbajaj.com}{sourabh@sourabhbajaj.com}\\ +% \href{http://sourabhbajaj.com/}{http://www.sourabhbajaj.com} & Mobile : +1-123-456-7890 \\ +% \end{tabular*} + +\begin{center} + \textbf{\Huge \scshape John Olheiser} \\ \vspace{1pt} + \href{mailto:john.olheiser@gmail.com}{\underline{john.olheiser@gmail.com}} $|$ + \small 701-425-6883 $|$ + \href{https://www.linkedin.com/in/jolheiser/}{\underline{linkedin.com/in/jolheiser}} +\end{center} + + +%-----------EDUCATION----------- +\section{Education} + \resumeSubHeadingListStart + \resumeSubheading + {Bachelors of Science in Computer Information Systems}{Graduated August 2014} + {University of Mary}{Bismarck, ND} + \resumeSubHeadingListEnd + + + +%-----------EXPERIENCE----------- +\section{Professional Experience} + \resumeSubHeadingListStart + \resumeSubheading + {North Dakota Legislative Assembly}{July 2021 - Current} + {Software Development Engineer}{Bismarck, ND} + \resumeItemListStart + \resumeItem{Increased application resiliency by replacing manual testing and deployment processes with automated continual integration, testing, and deployment pipelines.} + \resumeItem{Enabled faster and safer development of new features utilizing internal APIs through the creation of API client wrappers in Java and Python.} + \resumeItem{Improved developer experience and iteration time by creating new internal CLI tooling using Go.} + \resumeItemListEnd + \resumeSubSubheading + {Programmer Analyst II}{September 2017 - July 2021} + \resumeItemListStart + \resumeItem{Created legislative bill tracking system allowing users to curate and track the status of bills from mobile devices using Typescript, Angular, and Java.} + \resumeItem{Enabled legislative body to receive remote testimony by creating new testimony web application using Python, Django, and PostgreSQL.} + \resumeItem{Coordinated migration of legacy Python 2 applications to Python 3 while maintaining application support.} + \resumeItemListEnd + \resumeSubSubheading + {Programmer Analyst I}{January 2014 - September 2017} + \resumeItemListStart + \resumeItem{Improved the ability of state social workers to provide assistance by building evaluation and note taking application using Java, Spring, and MySQL. } + \resumeItem{Lead effort to reduce vulnerabilities and improve development velocity by upgrading critical applications from Java 6 to Java 9.} + \resumeItem{Modernized team's source control handling by leading effort to migrate source code from ClearCase and Subversion repositories to Git.} + \resumeItemListEnd + + \resumeSubHeadingListEnd + +\section{Open Source Experience} + \resumeSubHeadingListStart + \resumeSubheading + {Gitea}{January 2019 - Current} + {Technical Oversight Committee Member}{\href{https://gitea.io/en-us/}{gitea.io}} + \resumeItemListStart + \resumeItem{Core maintainer of the Gitea project, a Go based open source self hosted git frontend and tooling ecosystem.} + \resumeItem{Enhanced ability of users to listen for specific event data when a repository changes through the implementation of a webhook based event system.} + \resumeItem{Resolved security vulnerabilities through application of security patches and implementing automated security checks on codebase.} + \resumeItemListEnd + \resumeSubheading + {WoodpeckerCI}{October 2021 - Current} + {Contributor}{\href{https://woodpecker-ci.org/}{woodpecker-ci.org}} + \resumeItemListStart + \resumeItem{Contributor to Woodpecker CI, an open source, extensible, continuous integration tool for teams to automate build, testing, and deployment pipelines.} + \resumeItem{Lead effort to allow clients to more accurately track changes in their woodpecker instances through refactoring of logging system. } + \resumeItem{Improved end-user experience and onboarding by creating and improving documentation for woodpecker CLI} + \resumeItemListEnd + \resumeSubHeadingListEnd + +%-----------PROJECTS----------- + + +% +%-----------PROGRAMMING SKILLS----------- +\section{Technical Skills} + \begin{itemize}[leftmargin=0.15in, label={}] + \small{\item{ + \textbf{Languages:}{ Java, Go, C\#, Python, SQL, Javascript, Typescript } \\ + \textbf{Technologies:} {Git, Docker, S3, Angular} \\ + \textbf{Other Knowledge:}{ Continuous Integration, Continuous Deployment, Debugging, Test Driven Development, HTML, CSS, REST} + }} + \end{itemize} + + +%------------------------------------------- +\end{document}