M .gitignore => .gitignore +5 -0
@@ 2,4 2,9 @@ public/
resources/
themes/
.hugo_build.lock
+**/*.aux
+**/*.log
+**/*.out
+**/*.tex
+**/*.pdf
M Makefile => Makefile +15 -9
@@ 1,21 1,27 @@
TARGET_USER=deploy
TARGET_HOST=deploy-aws2
-.PHONY: dev
-dev:
+.PHONY: clean dev build sync
+
+clean:
+ rm -rf public resources themes
+ rm -rf scripts/cv.aux scripts/cv.log scripts/cv.out scripts/cv.tex
+
+static/files/dominic-ricottone.pdf: content/cv.md
+ sed content/cv.md \
+ -e 's/南山大学/\\begin{CJK}{UTF8}{min}&\\end{CJK}/' \
+ | scripts/cv.awk > scripts/cv.tex
+ cd scripts && pdflatex cv.tex
+ mv scripts/cv.pdf static/files/dominic-ricottone.pdf
+
+dev: static/files/dominic-ricottone.pdf
hugo server --buildDrafts --bind 127.0.0.1 --port 8080
-.PHONY: build
-build: clean
+build: clean static/files/dominic-ricottone.pdf
hugo
-.PHONY: sync
sync: build
rsync --recursive --links --compress --delete \
--chown=$(TARGET_USER):$(TARGET_USER) \
public/ $(TARGET_HOST):/var/deploy/webroot/
-.PHONY: clean
-clean:
- rm -rf public resources themes
-
M content/cv.md => content/cv.md +19 -39
@@ 4,104 4,86 @@ site_title: true
toc: true
---
-
**Download:** [PDF](https://www.dominic-ricottone.com/files/dominic-ricottone.pdf) | [HTML](https://www.dominic-ricottone.com/files/dominic-ricottone.html)
**Contact:** [me@dominic-ricottone.com](mailto:me@dominic-ricottone.com)
-Three years experience in survey research operations. Training in econometric analysis and quantitative methods. Self-trained programmer and systems administrator. Proficient in diverse set of programming languages and statistical software.
-
+Five years experience in survey research operations.
+Training in econometric analysis and quantitative methods.
+Self-trained programmer and systems administrator.
+Proficient in diverse set of programming languages and statistical software.
------
-
## Employment
-
-
### Fors Marsh Group
-
-*A market research company primarily working federal contracts. A majority of the time, I'm working with the Department of Defense (ex. JAMRS' Youth Poll survey) and Department of Commerce (ex. NIST's Manufacturing Extension Partnership survey). I hold a Common Access Card (CAC) in service of my military contracts.*
+*A market research company primarily working federal contracts.
+A majority of the time, I'm working with
+the Department of Defense (ex. JAMRS' Youth Poll survey)
+and
+Department of Commerce (ex. NIST's Manufacturing Extension Partnership survey).
+I hold a Common Access Card (CAC) in service of my military contracts.*
+ #### Data Management Analyst
-
*February 2019 to present*
-
+ Cleaning and processing large (1M+) sample files, including international addresses
+ Validating multi-modal survey instruments and data with SPSS, Stata, and Python
+ Integrating web portals and backend databases through Python, R, SPSS, and Microsoft Access SQL
+ Managing protection of Personally Identifiable Information (PII) and Protected Health Information (PHI)
-
### The Harris Poll
-
-*Market research company specializing in brand evaluation and concept testing. A decades-old firm entering into public polling and political reporting in collaboration with Harvard CAPS and Yahoo News.*
+*Market research company specializing in brand evaluation and concept testing.
+A decades-old firm entering into public polling and political reporting in collaboration with Harvard CAPS and Yahoo News.*
+ #### Junior Survey Programmer
-
*November 2018 to February 2019*
-
+ Programming web surveys with the Decipher platform
+ #### Data Processing Programmer
-
*September 2017 to November 2018*
-
+ Validating web survey instruments and data with SPSS and Quantum
+ Raking data to generate survey weights
+ Development of automation, especially syntax generation, through Python and Perl
+ Maintaining production software and Linux servers
-
### Chris Harris & Associates
-
-*Political consultancy firm working with Democratic officials across Western New York. Specialties in campaign finance law and fundraising strategy.*
+*Political consultancy firm working with Democratic officials across Western New York.
+Specialties in campaign finance law and fundraising strategy.*
+ #### Campaign Finance Intern
-
*August 2017 to September 2017*
-
+ Aggregating data from internal operations and external databases into actionable samples
+ Scraping contribution disclosures from government websites and PDF filings
+ Organizing fundraisers for elected officials including Monroe and Erie County Democratic Committee Chairs, Monroe County Sheriff Todd Baxter, and the late Congresswoman Louise Slaughter
-
### University of Rochester
-
-*Research university established in 1850. The largest single employer in the Rochester area. I worked under the Record Verification and Workers' Compensation teams.*
+*Research university established in 1850.
+The largest single employer in the Rochester area.
+I worked under the Record Verification and Workers' Compensation teams.*
+ #### Human Resources Office Assistant
-
*May 2016 to May 2017*
-
+ Maintaining primary copies of all employment records
+ Managing flow of protected files throughout HR department
+ Administering multiple modernization and digitization projects
-
### Cancer Care of Western New York
-
-*Cancer treatment facility based in Buffalo. I worked with Dr. Roehmholdt as he explored publishing a case report on penile melanoma.*
+*Cancer treatment facility based in Buffalo.
+I worked with Dr. Roehmholdt as he explored publishing a case report on penile melanoma.*
+ #### Research Assistant
-
*May 2013 to August 2013*
-
+ Researching the academic literature on penile melanoma
+ Data entry of patient records
+ Scrubbing Protected Health Information (PHI) from patient records in preparation for sharing with external principal researchers
-
------
-
## Education
-
### University of Rochester
+ #### B.A. Political Science, Economics
-
*August 2013 to May 2017*
-
+ Overall GPA of 3.43
+ Represented the student body for three years in varying levels of student government, including multiple executive appointments
+ Focuses in:
@@ 111,8 93,6 @@ Three years experience in survey research operations. Training in econometric an
### 南山大学 (Nanzan University)
+ #### Intensive Japanese Language Studies Program
-
*January 2016 to May 2016*
-
+ Intensive study of the Japanese language in a Japanese university
A scripts/cv.awk => scripts/cv.awk +181 -0
@@ 0,0 1,181 @@
+#!/bin/awk -f
+
+function end_introduction() {
+ print "\\end{minipage}";
+ in_introduction=0;
+}
+
+function end_subsubsection() {
+ print "\\end{minipage}";
+ in_subsubsection=0;
+}
+
+function end_paragraph() {
+ in_paragraph=0;
+}
+
+function end_description() {
+ #print "\\vspace{.1in}\\hfill\\begin{minipage}{\\dimexpr\\textwidth-.25in}";
+ in_description=0;
+}
+
+function invalid_end_description() {
+ print "%WARNING: this description was not properly terminated";
+ print "}";
+ #print "\\vspace{.1in}\\hfill\\begin{minipage}{\\dimexpr\\textwidth-.25in}";
+ in_description=0;
+}
+
+function end_bullets() {
+ print "\\end{itemize}";
+ in_bullets=0;
+}
+
+function end_subbullets() {
+ print "\t\\end{itemize}";
+ in_subbullets=0;
+}
+
+BEGIN {
+ ignore=1;
+ in_introduction=0;
+ in_subsection=0;
+ in_subsubsection=0;
+ in_paragraph=0;
+ in_bullets=0;
+ in_subbullets=0;
+
+ print "\\documentclass[12pt]{article}";
+ print "\\usepackage[letterpaper, total={7.5in,10in}, centering]{geometry}";
+ print "\\usepackage[compact]{titlesec} % compact headers";
+ print "\\pagenumbering{gobble} % suppresses pagination";
+ print "\\setlength{\\parindent}{0pt} % suppressed paragraph indent";
+ print "\\usepackage{enumitem} % exports macros for below";
+ print "\\setitemize{topsep=0pt,parsep=0pt,partopsep=0pt} % compact itemize";
+ print "\\usepackage{CJKutf8}";
+ print "\\begin{document}";
+ print "\\section*{Dominic Ricottone}";
+ print "\\vspace{.05in}";
+}
+{
+ if (ignore==0) {
+
+ gsub("&","\\\\&");
+
+ # start of a subsection
+ if ($0 ~ /^## /) {
+ if (in_subbullets==1) end_subbullets();
+ if (in_bullets==1) end_bullets();
+ if (in_description==1) invalid_end_description();
+ if (in_paragraph==1) end_paragraph();
+ if (in_subsubsection==1) end_subsubsection();
+
+ print "\\subsection*{" substr($0,4) "}";
+ in_subsection=1;
+ }
+
+ # start of a subsubsection
+ else if ($0 ~ /^### /) {
+ if (in_subbullets==1) end_subbullets();
+ if (in_bullets==1) end_bullets();
+ if (in_description==1) invalid_end_description();
+ if (in_paragraph==1) end_paragraph();
+
+ # only for 2nd+ subsubsection
+ if (in_subsubsection==1) {
+ end_subsubsection();
+ print "\\vspace{.05in}";
+ }
+
+ print "\\subsubsection*{" substr($0,5) "}";
+ in_subsubsection=1;
+ }
+
+ # start of a paragraph
+ else if ($0 ~ /^ \+ #### /) {
+ if (in_subbullets==1) end_subbullets();
+ if (in_bullets==1) end_bullets();
+ if (in_description==1) invalid_end_description();
+ if (in_paragraph==1) end_paragraph();
+ else print "\\vspace{.1in}\\hfill\\begin{minipage}{\\dimexpr\\textwidth-.25in}";
+
+ print "\\paragraph*{" substr($0,9) "}";
+ in_paragraph=1;
+ }
+
+ # start of a description
+ else if ($0 ~ /^\*/) {
+ # if description is a one-liner
+ if ($0 ~ /\*$/) {
+ gsub(/\*/,"");
+ print "\\textit{" $0 "}";
+ end_description();
+ }
+ else {
+ sub(/\*/,"");
+ print "\\textit{" $0;
+ in_description=1;
+ }
+ }
+
+ # end of a multi-line description
+ else if (in_description==1 && $0 ~ /\*$/) {
+ sub(/\*/,"");
+ print $0 "}";
+ end_description();
+ }
+
+ # date range (always a one-liner)
+ else if ($0 ~ /^ +\*.+\*/) {
+ gsub(/ *\*/,"");
+ sub(/to/,"---");
+ print "\\textit{" $0 "}";
+ print "\\vspace{.05in}";
+ }
+
+ # bullets (may be start of or a member of)
+ else if ($0 ~ /^ \+ /) {
+ if (in_subbullets==1) end_subbullets();
+
+ if (in_bullets==0) print "\\begin{itemize}";
+ sub(/ +\+ /,"");
+ print "\t\\item " $0;
+ in_bullets=1;
+ }
+
+ # subbullets (may be start of or a member of)
+ else if ($0 ~ /^ \+ /) {
+ if (in_subbullets==0) print "\t\\begin{itemize}";
+ sub(/ +\+ /,"");
+ print "\t\t\\item " $0;
+ in_subbullets=1;
+ }
+
+ # blank line (can be an end of certain sections)
+ else if ($0 ~ /^$/) {
+ if (in_introduction==1) end_introduction();
+ if (in_description==1) invalid_end_description();
+ if (in_bullets==1) end_bullets();
+ if (in_subbullets==1) end_subbullets();
+
+ print $0;
+ }
+
+ else if ($0 !~ /^-----+$/) {
+ if (in_subsection==0 && in_introduction==0) {
+ print "\\hfill\\begin{minipage}{\\dimexpr\\textwidth-.25in}";
+ in_introduction=1;
+ }
+
+ print $0;
+ }
+ }
+ else if ($0 ~ /Contact:/) ignore=0;
+}
+
+END {
+ if (in_description==1) invalid_end_description();
+ if (in_bullets==1) end_bullets();
+ if (in_subsubsection==1) end_subsubsection();
+ print "\\end{document}";
+}
D static/files/dominic-ricottone.pdf => static/files/dominic-ricottone.pdf +0 -0