Initial commit of resume formatted for use with pandoc

This commit is contained in:
2022-04-26 23:11:09 -04:00
parent ad24f7484b
commit df119daf6e
8 changed files with 449 additions and 2 deletions

3
Dockerfile Normal file
View File

@@ -0,0 +1,3 @@
# syntax=docker/dockerfile:1
FROM pandoc/latex:latest
RUN tlmgr update --self && tlmgr install enumitem sectsty underscore

8
Makefile Normal file
View File

@@ -0,0 +1,8 @@
resume: paul-halvorsen-resume.md
pandoc paul-halvorsen-resume.md -f markdown+yaml_metadata_block --template templates/jb2resume.latex -o paul-halvorsen-resume.pdf
coverletter: paul-halvorsen-cover-letter.md
pandoc paul-halvorsen-cover-letter.md -o paul-halvorsen-cover-letter.pdf
cleanall:
rm -f *.pdf

View File

@@ -1,3 +1,94 @@
# resume # Credit
tmp Credit goes to [John Bokma](https://github.com/john-bokma/resume-pandoc), for creating this template and README
# resume-pandoc
LaTeX resume template for Pandoc based on Jason R. Blevins' template;
http://jblevins.org/projects/cv-template/.
I've included my own resume in markdown format as an example.
To create the LaTeX version, use:
~~~
pandoc perl-programmer-john-bokma-resume.md -f markdown+yaml_metadata_block \
--template templates/jb2resume.latex \
-o perl-programmer-john-bokma-resume.tex
~~~
And to create the PDF version, use:
~~~
pandoc perl-programmer-john-bokma-resume.md -f markdown+yaml_metadata_block \
--template templates/jb2resume.latex \
-o perl-programmer-john-bokma-resume.pdf
~~~
## Getting Started on Ubuntu 17.04
Please read my blog entry
[Installing the latest version of Pandoc on Ubuntu 17.04](http://johnbokma.com/blog/2017/05/17/installing-latest-pandoc-on-ubuntu.html), which
provides an easy walk-through.
## Using Docker
Please read my blog entry
[Giving Docker Desktop for macOS a Second
Chance](http://johnbokma.com/blog/2021/06/02/giving-docker-desktop-for-macos-a-second-chance.html),
which provides an easy walk-through.
## YAML Meta Block
name
: the name on the resume.
keywords
: keywords to be added to the PDF file.
left-column
: a list of lines you want in the left column, directly under the name
on the first page.
right-column
: a list of lines you want in the right column, directly under the
name on the first page.
fontsize
: default `10pt`.
fontenc
: default `T1`.
urlcolor
: used in PDF, default `blue`.
linkcolor
: used in PDF, default `magenta`.
numbersections
: number sections, default off. Can also be controlled using the
`pandoc` option `-N, --number-sections`.
name-color
: the SVG name of the font color used for your name on the
resume. For example `DarkSlateGray`. Note that this option
also changes the font used for your name to bold and sans serif.
section-color
: the SVG name of the font color used for sections. For example
`Tomato`. Note that this option also changes the section font to
bold and sans serif.
Regarding the last two options: if you just want to change the font to
sans serif bold you can just use the color `black`.
# Example PDF
See [http://castleamber.com/documents/perl-programmer-john-bokma-resume.pdf](http://castleamber.com/documents/perl-programmer-john-bokma-resume.pdf).
# Credits
- Jason R. Blevins for making the LaTeX resume example that inspired this
template.
- Christoph Frings and Andrew for their help with description list; reference
[enumitem: multiline label with text following label - TeX - LaTeX Stack Exchange](https://tex.stackexchange.com/questions/323903/enumitem-multiline-label-with-text-following-label).

106
paul-halvorsen-resume.md Normal file
View File

@@ -0,0 +1,106 @@
---
name: Paul Halvorsen
keywords: python, c, docker, containers, tdd, test driven development, pytest, ci/cd, javascript, jquery, php, mysql, rest, api, json, xml, git, nginx, remote, testing
left-column:
- 'Phone: +1-410-236-4665'
- 'Citizen of the United States'
right-column:
- 'Email: [pmghalvorsen@gmail.com](mailto:pmghalvorsen@gmail.com)'
- 'Holding TS/SCI, Last Re-Up: 2018'
...
# Summary
I'm a Software Engineer with over 11 years development and 15 years professional experience, with exposure to C, Python, PHP, JavaScript, Java, and C++ languages; various SQL databases; JQuery and Pytest frameworks; Docker containerization; and Rest API, JSON, XML, and nginx technologies.
# Work Experience
## Kyrus Tech
**Sr Software Engineer**: Nov 2020 - Present
- Perform test driven development for all tasks: C, Python/Pytest, Docker, GitLab CI/CD
- Build covert communications and file transfers proxy: HTTPS, Apache Thrift, Rest API
- Design compact router fingerprinting and vulnerability analysis: Android, HTTPS, TCP/IP, StreamCypher Encryption
- Modify existing code to suppress logging from inside the Linux Kernel: various Linux Kernel versions, Ghidra
## Parsons
**Cyber Security Software Engineer**: Apr 2018 - Nov 2020
- Continue development of covert Windows application: C, C++, Python
- Build modular solution for plug and play architecture
- Design custom API for minimal data transfer to back-end
- Encrypt storage and comms using AES shared key to maintain confidentiality and integrity
- Build prototype back-end service for file storage and search: Java, Tomcat, Niagarafiles (NiFi), nginx, Hadoop, MySQL, LDAP, RBAC
- Create API for uploading files via web interface or CLI
- Track and maintain multi-level user access
- Generate metadata for searching
## NSA RedTeam
**Security Software Engineer**: Nov 2011 - Apr 2018
- DevOps development of browser enumeration, manipulation, and exploitation: PHP, JavaScript, JQuery, CSS, Python, MySQL, Java, Apache, Tomcat, Linux, Windows, Chrome, Firefox, Safari, IE, Edge
- Design Rest and JSON API to transfer data between targets, server, and UI
- Deliver covert JavaScript to targets for enumeration and exploitation
- Redesign front-end to provide a dynamic UI with real time target data and graphs and charts for in-depth data
- Design MySQL database to converge enumeration and exploitation tools
- Update PHP back-end for security and performance
- Advise and develop vulnerability mitigation strategies
- Train and provide SOPs to NSA RedTeam operators for various tools
## NSA IT
**Systems Engineer**: Sept 2009 - Nov 2011
- Deploy, maintain, and monitor 30+ systems with 130+ Red Hat Enterprise Linux (RHEL) servers: LDAP, DNS, Apache, NiFi, Hadoop, Apache, Puppet, DHCP, PXE
- Develop and deploy monitoring, reporting, and issue correcting scripts: Python
- Organize, train, and participate in team performing 24x7 call-in rotation
- Responsible for 5+ domestic and foreign system deployments
## Salisbury University
**Software Developer**: Nov 2006 - May 2008
- Funded through the Wallops Flight Facility (NASA)
- Provide simplified UI and scenario builder for the Satellite Tool Kit (STK): Managed C++
- Design risk assessment scenarios for launch vehicles and UAVs over the DELMARVA peninsula
- Collaborate with Geographic Information Science (GIS) for mapping
**Lab Administrator**: Sept 2007 - May 2009
- Support Math and CS departments at SU
- Maintain the Linux labs on campus: dual boot OpenSUSE, WindowsXP, and OpenSUSE server
- Perform backups, updates, user management (LDAP), disk quotas, and remote access
# Education
University of Maryland Baltimore Campus
: Masters in Computer Science; 2013. Thesis: "Stateless Detection of Malicious Traffic: Emphasis on User Privacy"
Salisbury University
: Bachelors in Computer Science; 2009. Magna Cum-Laude
Security+
: ID: COMP001021281239; Exp Date: 04/04/2024
Royal Military College (RMC Canada)
: Training in OpenBSD development and administration
# Miscellaneous
RedBlue Conference
: Presented combination web enumeration/exploitation tool
National Conference for Undergrad Research (NCUR)
: Presented development of STK scenario building and manipulation
SANS Courses
: Staying up-to-date on security research

BIN
paul-halvorsen-resume.pdf Normal file

Binary file not shown.

37
templates/README.md Normal file
View File

@@ -0,0 +1,37 @@
Resume templates for Pandoc.
All of the templates in this directory are dual licensed, under both
the GPL (v2 or higher, same as pandoc) and the BSD 3-clause license
(included below).
Copyright (c) 2016, John Bokma
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of John MacFarlane nor the names of other
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@@ -0,0 +1,95 @@
% LaTeX Resume Pandoc Template jb2resume.latex
%
% Copyright (c) 2017, John Bokma
% Based on:
% - https://github.com/john-bokma/resume-pandoc/templates/jb2resume.latex
% - Jason Blevins' LaTeX CV Template;
% http://jblevins.org/projects/cv-template/
%
% GitHub: https://github.com/john-bokma/resume-pandoc/
\documentclass[$if(fontsize)$$fontsize$$else$10pt$endif$,letterpaper]{article}
\usepackage{hyperref}
\usepackage{geometry}
\usepackage{enumitem}
\usepackage{underscore}
\usepackage[parfill]{parskip}
\usepackage{lmodern}
\usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
\usepackage[utf8]{inputenc}
\def\name{$name$}
% The following metadata will show up in the PDF properties
\hypersetup{
colorlinks = true,
urlcolor=$if(urlcolor)$$urlcolor$$else$blue$endif$,
linkcolor=$if(linkcolor)$$linkcolor$$else$magenta$endif$,
pdfauthor = {\name},
pdfkeywords = {$keywords$},
pdftitle = {\name: Curriculum Vitae},
pdfsubject = {Curriculum Vitae},
pdfpagemode = UseNone
}
\geometry{
body={6.5in, 9.0in},
left=1.0in,
top=1.0in
}
% Fix for "! Undefined control sequence. <recently read> \tightlist",
% see: https://github.com/osener/markup.rocks/issues/4
% I have this issue with Pandoc 1.17.2
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
% Page number is top right, and it is possible to control the rest of
% the header.
\pagestyle{myheadings}
\markright{\name}
\thispagestyle{empty}
% Custom section fonts
\usepackage{sectsty}
\sectionfont{\rmfamily\mdseries\Large}
\subsectionfont{\rmfamily\mdseries\itshape\large}
% Section numbers or not (default)
$if(numbersections)$
\setcounter{secnumdepth}{5}
$else$
\setcounter{secnumdepth}{0}
$endif$
% By putting an empty \item[] at the start of the list, the list
% starts on a new line.
\setlist[itemize]{leftmargin=1em,label={--},before=\item[]}
\setlist[description]{leftmargin=0em, style=sameline}
% Don't use monospace font for URLs
\urlstyle{same}
\begin{document}
% Place name at left
{\huge \name}
\bigskip
$if(left-column)$
\begin{minipage}[t]{0.495\textwidth}
$for(left-column)$$left-column$$sep$ \\ $endfor$
\end{minipage} % Don't use empty lines after \end and the next \begin{minipage}.
$endif$
$if(right-column)$
\begin{minipage}[t]{0.495\textwidth}
$for(right-column)$$right-column$$sep$ \\ $endfor$
\end{minipage}
$endif$
$body$
\end{document}

107
templates/jb2resume.latex Normal file
View File

@@ -0,0 +1,107 @@
% LaTeX Resume Pandoc Template jb2resume.latex
%
% Copyright (c) 2016-2017, John Bokma
% Based on Jason Blevins' LaTeX CV Template;
% http://jblevins.org/projects/cv-template/
%
% GitHub: https://github.com/john-bokma/resume-pandoc
\documentclass[$if(fontsize)$$fontsize$$else$10pt$endif$,letterpaper]{article}
\usepackage{hyperref}
\usepackage{geometry}
\usepackage{enumitem}
\usepackage{underscore}
\usepackage[parfill]{parskip}
\usepackage{lmodern}
\usepackage[svgnames]{xcolor}
\usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
\usepackage[utf8]{inputenc}
% Your name on the resume
\def\name{$name$}
% The following metadata will show up in the PDF properties
\hypersetup{
colorlinks = true,
urlcolor=$if(urlcolor)$$urlcolor$$else$blue$endif$,
linkcolor=$if(linkcolor)$$linkcolor$$else$magenta$endif$,
pdfauthor = {\name},
pdfkeywords = {$keywords$},
pdftitle = {\name: Curriculum Vitae},
pdfsubject = {Curriculum Vitae},
pdfpagemode = UseNone
}
\geometry{
body={6.5in, 9.0in},
left=1.0in,
top=1.0in
}
% Fix for "! Undefined control sequence. <recently read> \tightlist",
% see: https://github.com/osener/markup.rocks/issues/4
% I have this issue with Pandoc 1.17.2
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
% Page number is top right, and it is possible to control the rest of
% the header.
\pagestyle{myheadings}
\markright{\name}
\thispagestyle{empty}
% Custom section fonts
\usepackage{sectsty}
$if(section-color)$
\sectionfont{\color{$section-color$}\sffamily\bfseries\Large}
$else$
\sectionfont{\rmfamily\mdseries\Large}
$endif$
%\subsectionfont{\rmfamily\mdseries\itshape\large}
\subsectionfont{\rmfamily\mdseries\large}
% Section numbers or not (default)
$if(numbersections)$
\setcounter{secnumdepth}{5}
$else$
\setcounter{secnumdepth}{0}
$endif$
% By putting an empty \item[] at the start of the list, the list
% starts on a new line.
\setlist[itemize]{leftmargin=1em,label={--},before=\item[]}
\setlist[description]{leftmargin=0em, style=sameline}
% Don't use monospace font for URLs
\urlstyle{same}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{helvet}
\begin{document}
% Place name at left
$if(name-color)$
{\huge\color{$name-color$}\sffamily\bfseries \name}
$else$
{\huge \name}
$endif$
\bigskip
$if(left-column)$
\begin{minipage}[t]{0.495\textwidth}
$for(left-column)$$left-column$$sep$ \\ $endfor$
\end{minipage} % Don't use empty lines after \end and the next \begin{minipage}.
$endif$
$if(right-column)$
\begin{minipage}[t]{0.495\textwidth}
$for(right-column)$$right-column$$sep$ \\ $endfor$
\end{minipage}
$endif$
$body$
\end{document}