Initial commit of resume formatted for use with pandoc
This commit is contained in:
3
Dockerfile
Normal file
3
Dockerfile
Normal 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
8
Makefile
Normal 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
|
||||
95
README.md
95
README.md
@@ -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
106
paul-halvorsen-resume.md
Normal 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
BIN
paul-halvorsen-resume.pdf
Normal file
Binary file not shown.
37
templates/README.md
Normal file
37
templates/README.md
Normal 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.
|
||||
95
templates/jb2-modern.latex
Normal file
95
templates/jb2-modern.latex
Normal 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
107
templates/jb2resume.latex
Normal 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}
|
||||
Reference in New Issue
Block a user