diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..3ce5532 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,3 @@ +# syntax=docker/dockerfile:1 +FROM pandoc/latex:latest +RUN tlmgr update --self && tlmgr install enumitem sectsty underscore diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..9383531 --- /dev/null +++ b/Makefile @@ -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 diff --git a/README.md b/README.md index 80922c2..c1f5e51 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,94 @@ -# resume +# Credit -tmp \ No newline at end of file +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). diff --git a/paul-halvorsen-resume.md b/paul-halvorsen-resume.md new file mode 100644 index 0000000..416c3a2 --- /dev/null +++ b/paul-halvorsen-resume.md @@ -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 + diff --git a/paul-halvorsen-resume.pdf b/paul-halvorsen-resume.pdf new file mode 100644 index 0000000..c0c0e21 Binary files /dev/null and b/paul-halvorsen-resume.pdf differ diff --git a/templates/README.md b/templates/README.md new file mode 100644 index 0000000..4991cb1 --- /dev/null +++ b/templates/README.md @@ -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. diff --git a/templates/jb2-modern.latex b/templates/jb2-modern.latex new file mode 100644 index 0000000..56c047a --- /dev/null +++ b/templates/jb2-modern.latex @@ -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. \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} diff --git a/templates/jb2resume.latex b/templates/jb2resume.latex new file mode 100644 index 0000000..d391b2c --- /dev/null +++ b/templates/jb2resume.latex @@ -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. \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}