mirror of https://git.jolheiser.com/resume.git
Compare commits
No commits in common. "68f14ecb5b9aff5b5b9c5f51d86c840f0b576819" and "94593c9097917604f006a4dcd5e7b10a1b42beb1" have entirely different histories.
68f14ecb5b
...
94593c9097
34
flake.lock
34
flake.lock
|
@ -1,5 +1,23 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"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": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1697383814,
|
"lastModified": 1697383814,
|
||||||
|
@ -17,8 +35,24 @@
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": "nixpkgs"
|
"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"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|
105
flake.nix
105
flake.nix
|
@ -1,66 +1,47 @@
|
||||||
{
|
{
|
||||||
inputs.nixpkgs.url = "github:nixos/nixpkgs";
|
inputs = {
|
||||||
outputs =
|
nixpkgs.url = "github:nixos/nixpkgs";
|
||||||
{
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
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
|
|
||||||
|
|
||||||
mkdir $out
|
outputs = {
|
||||||
export TYPST_FONT_PATHS=${pkgs.raleway}/share/fonts
|
self,
|
||||||
typst compile resume.typ $out/resume.pdf
|
flake-utils,
|
||||||
typst compile resume.typ $out/resume.png
|
nixpkgs,
|
||||||
cp resume.typ $out/resume.typ
|
}:
|
||||||
|
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
|
||||||
|
|
||||||
runHook postBuild
|
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
|
||||||
devShells = forAllSystems (
|
|
||||||
system:
|
runHook postBuild
|
||||||
let
|
'';
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
};
|
||||||
in
|
devShells.default = pkgs.mkShell {
|
||||||
{
|
nativeBuildInputs = with pkgs; [
|
||||||
default = pkgs.mkShell {
|
typst
|
||||||
nativeBuildInputs = with pkgs; [
|
raleway
|
||||||
typst
|
];
|
||||||
raleway
|
shellHook = ''
|
||||||
];
|
export TYPST_FONT_PATHS=${pkgs.raleway}/share/fonts
|
||||||
shellHook = ''
|
'';
|
||||||
export TYPST_FONT_PATHS=${pkgs.raleway}/share/fonts
|
};
|
||||||
'';
|
}
|
||||||
};
|
);
|
||||||
}
|
|
||||||
);
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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}
|
|
@ -122,7 +122,7 @@
|
||||||
<open-source-experience>
|
<open-source-experience>
|
||||||
#table(
|
#table(
|
||||||
[#strong[Gitea]],
|
[#strong[Gitea]],
|
||||||
[January 2019 - January 2025],
|
[January 2019 - Current],
|
||||||
[#emph[Technical Oversight Committee Member]],
|
[#emph[Technical Oversight Committee Member]],
|
||||||
[#emph[#link("https://gitea.com/")[gitea.com]]],
|
[#emph[#link("https://gitea.com/")[gitea.com]]],
|
||||||
)
|
)
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
|
|
||||||
#table(
|
#table(
|
||||||
[#strong[WoodpeckerCI]],
|
[#strong[WoodpeckerCI]],
|
||||||
[October 2021 - January 2025],
|
[October 2021 - Current],
|
||||||
[#emph[Contributor]],
|
[#emph[Contributor]],
|
||||||
[#emph[#link(
|
[#emph[#link(
|
||||||
"https://woodpecker-ci.org/",
|
"https://woodpecker-ci.org/",
|
||||||
|
|
Loading…
Reference in New Issue