diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..da4f347 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,34 @@ +name: Release a CV + +on: + push: + tags: + - "*" # Any tag pushed to the repository + +permissions: + contents: write + +jobs: + call_rendercv_workflow: + name: RenderCV + uses: ./.github/workflows/rendercv.yaml + + build: + needs: call_rendercv_workflow + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Download RenderCV Output + uses: actions/download-artifact@v4 + with: + name: RenderCV Output + path: rendercv_output + - name: Release + uses: softprops/action-gh-release@v2 + with: + files: | + rendercv_output/*_CV.pdf + rendercv_output/*_CV.tex + generate_release_notes: true + make_latest: true diff --git a/.github/workflows/rendercv.yaml b/.github/workflows/rendercv.yaml new file mode 100644 index 0000000..23ca6b6 --- /dev/null +++ b/.github/workflows/rendercv.yaml @@ -0,0 +1,54 @@ +name: Render a CV + +on: + push: + branches: + - main + workflow_call: # to make the workflow triggerable from other workflows (release.yaml) + +permissions: + contents: write + +jobs: + rendercv: + name: RenderCV + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.12" + - name: Install RenderCV + run: | + pip install -r requirements.txt + - name: RenderCV + run: | + cd src + cv_file=$(find . -maxdepth 1 -type f -name "*_CV.yaml" | head -n 1) + if [ -z "$cv_file" ]; then + echo "No RenderCV file found!" + exit 1 + fi + cd .. + rendercv render src/$cv_file --pdf-path ${cv_file%.yaml}.pdf --markdown-path README.md --latex-path ${cv_file%.yaml}.tex + - name: Upload rendercv_output as an artifact + uses: actions/upload-artifact@v4 + with: + name: RenderCV Output + path: rendercv_output + # - uses: dorny/paths-filter@v3 + # id: changes + # with: + # base: HEAD + # filters: | + # cv: + # - '*_CV.tex' + # - 'README.md' + # - name: Push the changes + # if: steps.changes.outputs.cv == 'true' + # run: | + # git config --global user.name "${{ github.actor }}" + # git config --global user.email "${{ github.actor }}@users.noreply.github.com" + # git add -A + # git commit -m "render the latest CV" + # git push diff --git a/.gitignore b/.gitignore index 319384a..3a2c983 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,2 @@ -# Ignore specific build artifacts -build - -# for projects that use SCons for building: http://http://www.scons.org/ -.sconsign.dblite +__pycache__/ +rendercv_output/ \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..3849580 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +rendercv==1.14 diff --git a/src/classic/BulletEntry.j2.tex b/src/classic/BulletEntry.j2.tex new file mode 100644 index 0000000..d1f5697 --- /dev/null +++ b/src/classic/BulletEntry.j2.tex @@ -0,0 +1 @@ +\item <> diff --git a/src/classic/EducationEntry.j2.tex b/src/classic/EducationEntry.j2.tex new file mode 100644 index 0000000..eeab11f --- /dev/null +++ b/src/classic/EducationEntry.j2.tex @@ -0,0 +1,23 @@ +((* if section_title in design.show_timespan_in *)) + ((* set date_and_location_strings = [entry.location, entry.date_string, entry.time_span_string]|select("!=", "") *)) +((* else *)) + ((* set date_and_location_strings = [entry.location, entry.date_string]|select("!=", "") *)) +((* endif *)) +((* if not is_first_entry *)) +\vspace{<>} +((* endif *)) + +\begin{threecolentry}{\textbf{<>}}{ + <> +} + \textbf{<>}, <> +((* for item in entry.highlights *)) + ((* if loop.first *)) + \begin{highlights} + ((* endif *)) + \item <> + ((* if loop.last *)) + \end{highlights} + ((* endif *)) +((* endfor *)) +\end{threecolentry} \ No newline at end of file diff --git a/src/classic/ExperienceEntry.j2.tex b/src/classic/ExperienceEntry.j2.tex new file mode 100644 index 0000000..c01ee51 --- /dev/null +++ b/src/classic/ExperienceEntry.j2.tex @@ -0,0 +1,38 @@ +((* if section_title in design.show_timespan_in *)) + ((* set date_and_location_strings = [entry.location, entry.date_string, entry.time_span_string]|select("!=", "") *)) +((* else *)) + ((* set date_and_location_strings = [entry.location, entry.date_string]|select("!=", "") *)) +((* endif *)) +((* if not is_first_entry *)) +\vspace{<>} +((* endif *)) + +((* if entry.date_string or entry.location *)) +\begin{twocolentry}{ + <> +} + \textbf{<>}, <> + ((* for item in entry.highlights *)) + ((* if loop.first *)) + \begin{highlights} + ((* endif *)) + \item <> + ((* if loop.last *)) + \end{highlights} + ((* endif *)) + ((* endfor *)) +\end{twocolentry} +((* else *)) +\begin{onecolentry} + \textbf{<>}, <> + ((* for item in entry.highlights *)) + ((* if loop.first *)) + \begin{highlights} + ((* endif *)) + \item <> + ((* if loop.last *)) + \end{highlights} + ((* endif *)) + ((* endfor *)) +\end{onecolentry} +((* endif *)) \ No newline at end of file diff --git a/src/classic/Header.j2.tex b/src/classic/Header.j2.tex new file mode 100644 index 0000000..022f7b1 --- /dev/null +++ b/src/classic/Header.j2.tex @@ -0,0 +1,42 @@ +\newcommand{\AND}{\unskip + \cleaders\copy\ANDbox\hskip\wd\ANDbox + \ignorespaces +} +\newsavebox\ANDbox +\sbox\ANDbox{<>} + +((* if not design.disable_last_updated_date *)) +\placelastupdatedtext +((* endif *)) +((* if cv.name is not none *)) +\begin{header} + \fontsize{<>}{<>} + \textbf{<>} + + \vspace{<>} + + \normalsize + ((* for connection in cv.connections *)) + ((* if design.use_icons_for_connections *)) + \mbox{((*- if connection["url"] -*)) + \hrefWithoutArrow{<>}{{\footnotesize<>}\hspace*{0.13cm}<>} + ((*- else -*)) + {\footnotesize<>}\hspace*{0.13cm}<> + ((*- endif -*))}% + ((* else *)) + \mbox{((*- if connection["url"] -*)) + \hrefWithoutArrow{<>}{<>} + ((*- else -*)) + <> + ((*- endif -*))}% + ((* endif *)) + ((* if not loop.last *)) + \kern <>% + \AND% + \kern <>% + ((* endif *)) + ((* endfor *)) +\end{header} + +\vspace{<> - <>} +((* endif *)) \ No newline at end of file diff --git a/src/classic/NormalEntry.j2.tex b/src/classic/NormalEntry.j2.tex new file mode 100644 index 0000000..4e781a9 --- /dev/null +++ b/src/classic/NormalEntry.j2.tex @@ -0,0 +1,38 @@ +((* if section_title in design.show_timespan_in *)) + ((* set date_and_location_strings = [entry.location, entry.date_string, entry.time_span_string]|select("!=", "") *)) +((* else *)) + ((* set date_and_location_strings = [entry.location, entry.date_string]|select("!=", "") *)) +((* endif *)) +((* if not is_first_entry *)) +\vspace{<>} +((* endif *)) + +((* if entry.date_string or entry.location *)) +\begin{twocolentry}{ + <> +} + \textbf{<>} + ((* for item in entry.highlights *)) + ((* if loop.first *)) + \begin{highlights} + ((* endif *)) + \item <> + ((* if loop.last *)) + \end{highlights} + ((* endif *)) + ((* endfor *)) +\end{twocolentry} +((* else *)) +\begin{onecolentry} + \textbf{<>} + ((* for item in entry.highlights *)) + ((* if loop.first *)) + \begin{highlights} + ((* endif *)) + \item <> + ((* if loop.last *)) + \end{highlights} + ((* endif *)) + ((* endfor *)) +\end{onecolentry} +((* endif *)) \ No newline at end of file diff --git a/src/classic/OneLineEntry.j2.tex b/src/classic/OneLineEntry.j2.tex new file mode 100644 index 0000000..e7b963f --- /dev/null +++ b/src/classic/OneLineEntry.j2.tex @@ -0,0 +1,7 @@ +((* if not is_first_entry *)) +\vspace{<>} +((* endif *)) + +\begin{onecolentry} + \textbf{<>:} <> +\end{onecolentry} diff --git a/src/classic/Preamble.j2.tex b/src/classic/Preamble.j2.tex new file mode 100644 index 0000000..ffa2a29 --- /dev/null +++ b/src/classic/Preamble.j2.tex @@ -0,0 +1,199 @@ +\documentclass[<>, <>]{article} + +% Packages: +\usepackage[ + ignoreheadfoot, % set margins without considering header and footer + top=<>, % seperation between body and page edge from the top + bottom=<>, % seperation between body and page edge from the bottom + left=<>, % seperation between body and page edge from the left + right=<>, % seperation between body and page edge from the right + footskip=<>, % seperation between body and footer + % showframe % for debugging +]{geometry} % for adjusting page geometry +\usepackage[explicit]{titlesec} % for customizing section titles +\usepackage{tabularx} % for making tables with fixed width columns +\usepackage{array} % tabularx requires this +\usepackage[dvipsnames]{xcolor} % for coloring text +\definecolor{primaryColor}{RGB}{<>} % define primary color +\usepackage{enumitem} % for customizing lists +\usepackage{fontawesome5} % for using icons +\usepackage{amsmath} % for math +\usepackage[ + pdftitle={<>'s CV}, + pdfauthor={<>}, + pdfcreator={LaTeX with RenderCV}, + colorlinks=true, + urlcolor=primaryColor +]{hyperref} % for links, metadata and bookmarks +\usepackage[pscoord]{eso-pic} % for floating text on the page +\usepackage{calc} % for calculating lengths +\usepackage{bookmark} % for bookmarks +\usepackage{lastpage} % for getting the total number of pages +\usepackage{changepage} % for one column entries (adjustwidth environment) +\usepackage{paracol} % for two and three column entries +\usepackage{ifthen} % for conditional statements +\usepackage{needspace} % for avoiding page brake right after the section title +\usepackage{iftex} % check if engine is pdflatex, xetex or luatex + +% Ensure that generate pdf is machine readable/ATS parsable: +\ifPDFTeX + \input{glyphtounicode} + \pdfgentounicode=1 + \usepackage[T1]{fontenc} + \usepackage[utf8]{inputenc} + \usepackage{lmodern} +\fi + +((* if design.font == "Latin Modern Serif" *)) + +((* elif design.font == "Latin Modern Sans Serif" *)) +\renewcommand{\familydefault}{\sfdefault} +((* elif design.font == "Latin Modern Mono" *)) +\renewcommand{\familydefault}{\ttdefault} +((* elif design.font == "Source Sans 3" *)) +\usepackage[default, type1]{sourcesanspro} +((* elif design.font == "Charter" *)) +\usepackage{charter} +((* endif *)) + +% Some settings: +((* if design.text_alignment == "justified-with-no-hyphenation" *)) +\usepackage[none]{hyphenat} +\sloppy +((* elif design.text_alignment == "left-aligned" *)) +\raggedright +((* endif *)) +\AtBeginEnvironment{adjustwidth}{\partopsep0pt} % remove space before adjustwidth environment +\pagestyle{empty} % no header or footer +\setcounter{secnumdepth}{0} % no section numbering +\setlength{\parindent}{0pt} % no indentation +\setlength{\topskip}{0pt} % no top skip +\setlength{\columnsep}{0.15cm} % set column seperation +((* if design.disable_page_numbering *)) +\pagenumbering{gobble} % no page numbering +((* else *)) +((* set page_numbering_style_placeholders = { + "NAME": cv.name, + "PAGE_NUMBER": "\\thepage{}", + "TOTAL_PAGES": "\pageref*{LastPage}", + "TODAY": today +} *)) +\makeatletter +\let\ps@customFooterStyle\ps@plain % Copy the plain style to customFooterStyle +\patchcmd{\ps@customFooterStyle}{\thepage}{ + \color{gray}\textit{\small <>} +}{}{} % replace number by desired string +\makeatother +\pagestyle{customFooterStyle} +((* endif *)) + +\titleformat{\section}{ + % avoid page braking right after the section title + \needspace{4\baselineskip} + % make the font size of the section title large and color it with the primary color + \Large\color{primaryColor} +}{ +}{ +}{ + % print bold title, give 0.15 cm space and draw a line of 0.8 pt thickness + % from the end of the title to the end of the body + \textbf{#1}\hspace{0.15cm}\titlerule[0.8pt]\hspace{-0.1cm} +}[] % section title formatting + +\titlespacing{\section}{ + % left space: + -1pt +}{ + % top space: + <> +}{ + % bottom space: + <> +} % section title spacing + +% \renewcommand\labelitemi{$\vcenter{\hbox{\small$\bullet$}}$} % custom bullet points +\newenvironment{highlights}{ + \begin{itemize}[ + topsep=<>, + parsep=<>, + partopsep=0pt, + itemsep=0pt, + leftmargin=<> + 10pt + ] +}{ + \end{itemize} +} % new environment for highlights + +\newenvironment{highlightsforbulletentries}{ + \begin{itemize}[ + topsep=<>, + parsep=<>, + partopsep=0pt, + itemsep=0pt, + leftmargin=10pt + ] +}{ + \end{itemize} +} % new environment for highlights for bullet entries + + +\newenvironment{onecolentry}{ + \begin{adjustwidth}{ + <> + 0.00001 cm + }{ + <> + 0.00001 cm + } +}{ + \end{adjustwidth} +} % new environment for one column entries + +\newenvironment{twocolentry}[2][]{ + \onecolentry + \def\secondColumn{#2} + \setcolumnwidth{\fill, <>} + \begin{paracol}{2} +}{ + \switchcolumn \raggedleft \secondColumn + \end{paracol} + \endonecolentry +} % new environment for two column entries + +\newenvironment{threecolentry}[3][]{ + \onecolentry + \def\thirdColumn{#3} + \setcolumnwidth{<>, \fill, <>} + \begin{paracol}{3} + {\raggedright #2} \switchcolumn +}{ + \switchcolumn \raggedleft \thirdColumn + \end{paracol} + \endonecolentry +} % new environment for three column entries + +\newenvironment{header}{ + \setlength{\topsep}{0pt}\par\kern\topsep\centering\color{primaryColor}\linespread{1.5} +}{ + \par\kern\topsep +} % new environment for the header + +((* set last_updated_date_style_placeholders = { + "TODAY": today, +} *)) +\newcommand{\placelastupdatedtext}{% \placetextbox{}{}{} + \AddToShipoutPictureFG*{% Add to current page foreground + \put( + \LenToUnit{\paperwidth-<>-<>+0.05cm}, + \LenToUnit{\paperheight-<>} + ){\vtop{{\null}\makebox[0pt][c]{ + \small\color{gray}\textit{<>}\hspace{\widthof{<>}} + }}}% + }% +}% + +% save the original href command in a new command: +\let\hrefWithoutArrow\href + +% new command for external links: +((* if not design.disable_external_link_icons *)) +\renewcommand{\href}[2]{\hrefWithoutArrow{#1}{\ifthenelse{\equal{#2}{}}{ }{#2 }\raisebox{.15ex}{\footnotesize \faExternalLink*}}} +((* endif *)) \ No newline at end of file diff --git a/src/classic/PublicationEntry.j2.tex b/src/classic/PublicationEntry.j2.tex new file mode 100644 index 0000000..a1de4bd --- /dev/null +++ b/src/classic/PublicationEntry.j2.tex @@ -0,0 +1,37 @@ +((* if not is_first_entry *)) +\vspace{<>} +((* endif *)) + +\begin{samepage} + ((* if entry.date_string *)) + \begin{twocolentry}{ + <> + } + ((* else *)) + \begin{onecolentry} + ((* endif *)) + \textbf{<>} + + \vspace{<>} + + <> + ((* if entry.doi or entry.journal or entry.url *)) + \vspace{<>} + + ((* endif *)) + ((* if entry.doi -*)) + \href{<>}{<>} + ((* elif entry.url -*)) + \href{<>}{<>} + ((*- endif -*)) + ((*- if (entry.doi or entry.url) and entry.journal *)) (((* endif -*)) + ((*- if entry.journal -*)) + <> + ((*- endif -*)) + ((*- if (entry.doi or entry.url) and entry.journal *)))((* endif *)) + ((* if entry.date_string *)) + \end{twocolentry} + ((* else *)) + \end{onecolentry} + ((* endif *)) +\end{samepage} diff --git a/src/classic/SectionBeginning.j2.tex b/src/classic/SectionBeginning.j2.tex new file mode 100644 index 0000000..c80738d --- /dev/null +++ b/src/classic/SectionBeginning.j2.tex @@ -0,0 +1,6 @@ +\section{<>} + +((* if entry_type == "BulletEntry" *)) +\begin{onecolentry} + \begin{highlightsforbulletentries} +((* endif *)) diff --git a/src/classic/SectionEnding.j2.tex b/src/classic/SectionEnding.j2.tex new file mode 100644 index 0000000..7e2aaa1 --- /dev/null +++ b/src/classic/SectionEnding.j2.tex @@ -0,0 +1,4 @@ +((* if entry_type == "BulletEntry" *)) + \end{highlightsforbulletentries} +\end{onecolentry} +((* endif *)) \ No newline at end of file diff --git a/src/classic/TextEntry.j2.tex b/src/classic/TextEntry.j2.tex new file mode 100644 index 0000000..0150c5c --- /dev/null +++ b/src/classic/TextEntry.j2.tex @@ -0,0 +1,7 @@ +((* if not is_first_entry *)) +\vspace{<>} +((* endif *)) + +\begin{onecolentry} + <> +\end{onecolentry} diff --git a/src/joshua_ryan_smith.yaml b/src/joshua_ryan_smith.yaml new file mode 100644 index 0000000..394d2bd --- /dev/null +++ b/src/joshua_ryan_smith.yaml @@ -0,0 +1,607 @@ +cv: + name: Joshua Ryan Smith + location: Washington, DC + email: joshua.r.smith@gmail.com + website: https://jrsmith3.github.io + social_networks: + - network: LinkedIn + username: joshuaryansmith + - network: GitHub + username: jrsmith3 + - network: ORCID + username: 0000-0002-3137-7180 + sections: + summary: + - 'I am a seasoned leader of teams that build and maintain + enterprise-scale data engineering and sophisticated + computational applications. I drive results by investing in + the members of my team and by establishing systems that + facilitate excellence of my teams. My experience spans + diverse industries such as financial services, advanced + manufacturing, national defense, and academia.' + + experience: + - company: Capital One + position: Sr. Manager, Data Engineering + location: McLean, VA + start_date: 2019-03 + end_date: present + highlights: + - "Since September 2024 I have managed the Metabot platform + teams; these teams have been rebuilding Metabot's core + data processing functionality from scratch." + - "From August 2023 to September 2024 I have managed the two + teams of the OnePassport application which provides + access to all enterprise RDS and DynamoDB instances for + the SCAN and Metabot applications." + - "From May of 2022 to August of 2023 I managed six teams + across four applications: Metabot (dataset inventory), + Datastore Inventory, Data Retention, and Data Governance + Suite." + - "From November 2020 to May of 2022 I managed two teams for + the processor and orchestration components of the SCAN + application. SCAN searches for highly sensitive human + data such as SSN, credit card number, etc. in S3. In 2021 + my teams successfully processed more than 100 PB of data + at a rate averaging 500 TB/day to satisfy a regulatory + requirement." + - "From March 2019 to November 2020 I was the technical lead + for the Loss Forecasting solution used by the Credit Risk + Management team for Card." + + - company: Xometry + position: Director of Data Engineering + location: Bethesda, MD + start_date: 2018-09 + end_date: 2019-03 + highlights: + - "The Data Engineering team at Xometry is responsible for + maintaining production quality code which handles or + manipulates data. Our first and current project is + rearchitect Xometry's quoting flow such that the web + client and geometry/pricing backend communication is + asynchronous. In this role I manage two senior software + engineers." + + - company: Xometry + position: Director of Computational Geometry + location: Bethesda, MD + start_date: 2018-06 + end_date: 2018-09 + highlights: + - "I lead the team that develops and implements the + computational geometry algorithms to identify geometric + features that drive the price of the parts. My team of 5 + reports included PhD and MSc level members with degrees + in Computer Science, Mechanical Engineering, and Chemical + Engineering with a focus in Computational Fluid + Dynamics." + - "In addition to managing the team, I architected the + computational geometry application, and I developed the + Docker-based deployment process of the application. Our + app is a model of unit test coverage within the company. + The geometry application is a key piece of the technology + stack at the center of Xometry's value proposition." + + - company: Xometry + position: Senior Computational Scientist + location: Bethesda, MD + start_date: 2016-02 + end_date: 2018-06 + highlights: + - "Xometry is a manufacturing on demand startup -- our + customers upload their CAD models, and our software + analyzes the geometry and issues an instant quote for + manufacture. Xometry quotes a variety of manufacturing + processes including 3D printing, CNC machining, sheet + metal, and a number of others. I lead the team that + develops and implements the computational geometry + algorithms to identify geometric features that drive the + price of the parts. My team of 5 reports includes PhD and + MSc level members with degrees in Computer Science, + Mechanical Engineering, and Chemical Engineering with a + focus in Computational Fluid Dynamics." + - "In addition to managing the team, I architected the + computational geometry application, and I developed the + Docker-based deployment process of the application. Our + app is a model of unit test coverage within the company. + The geometry application is a key piece of the technology + stack at the center of Xometry's value proposition." + + - company: U.S. Army Research Laboratory + position: ORAU Senior Researcher + location: Adelphi, MD + start_date: 2011-08 + end_date: 2016-02 + highlights: + - 'Sensors and Electron Devices Directorate' + - 'At ARL I have investigated radioisotope batteries, namely + betavoltaic and betaphotovoltaic devices. Our team + demonstrated a working GaN based betavoltaic device -- I + specified the structure, verified the devices using + electron beam induced current scanning tunneling + microscopy, and guided the devices through the various + fabrication and characterization steps. For the + betaphotovoltaic part of the project, I specified the + AlGaN photovoltaic structure and developed a process of + electrophoretic deposition to apply phosphor to the + photovoltaic devices post-fabrication." + - "In addition to the radioisotope batteries, I developed a + model of electron transport through a thermoelectron + energy conversion device featuring a negative electron + affinity anode. The software I wrote for this project is + used by university research groups and a startup company. + This work was + [recognized by ARL](https://web.archive.org/web/20161219145255/http://www.arl.army.mil/www/default.cfm?article=2462) + as well as the + [official homepage of the US Army](http://www.army.mil/article/123473/Visiting_Army_scientist_makes_discoveries_in_emerging_technology).' + + - company: Carnegie Mellon University + position: Postdoctoral Researcher + location: Pittsburgh, PA + start_date: 2008-06 + end_date: 2011-07 + highlights: + - 'Prof. Robert Davis' + - 'At CMU I was the lead postdoc on a project to develop a + nanolithography technique using a scanning tunneling + microscope tip as a stylus. During this time I built the + [TFAN nanolithography/surface science laboratory] + (https://www.flickr.com/groups/tfan) from scratch. + This lab featured an ultrahigh vacuum surface analysis + system including in-situ sample preparation, scanning + probe microscopy, x-ray photoemission spectroscopy, Auger + electron spectroscopy, and low-energy electron + diffraction. I managed three graduate students and we + developed processes to clean and hydrogen passivate Si + (100), write features in the hydrogen passivation with + the scanning probe tip, and adsorb disilane to the + features.' + + - company: N.C. State University + position: Graduate Research Assistant + location: Raleigh, NC + start_date: 2002-08 + end_date: 2007-08 + highlights: + - 'Prof. Robert J. Nemanich and Prof. Griff L. Bilbro' + - 'At NCSU I investigated thermionic energy conversion + devices based on diamond electrodes. I developed a + comprehensive model of electron transport through the + device which could account for emission from a diamond + cathode featuring negative electron affinity. I + implemented the model initially in MATLAB and later + refactored in Python. I also investigated negative + electron affinity amorphous carbon films for the + [Interstellar Boundary Explorer (IBEX)] + (https://science.nasa.gov/mission/ibex) mission in + collaboration with Lockheed Martin. I developed a + hydrogen passivation process for the amorphous carbon + films and characterized the negative electron affinity + with ultraviolet photoemission spectroscopy. I applied + this process to amorphous carbon facets which were used + as part of the IBEX-Lo detector. The IBEX space probe was + launched October 19, 2008.' + + - company: N.C. State University + position: Undergraduate Researcher + location: Raleigh, NC + start_date: 2001-08 + end_date: 2002-05 + highlights: + - 'Monte-Carlo computational molecular dynamics with Prof. + Lubos Mitas.' + + - company: N.C. State University + position: Research Experience for Undergraduates + location: Raleigh, NC + start_date: 2001-05 + end_date: 2001-08 + highlights: + - 'Monte-Carlo computational molecular dynamics with Prof. + Lubos Mitas.' + + - company: Triangle Learning Consultants + position: Tutor + location: Raleigh, NC + start_date: 2000-08 + end_date: 2002-08 + highlights: + - 'High school mathematics tutoring.' + + - company: Physics Tutorial Center, N.C. State University + position: Tutor + location: Raleigh, NC + start_date: 1998-08 + end_date: 2000-05 + highlights: + - 'First and second year college physics tutoring.' + + - company: Johnson Controls + position: Engineering Assistant + location: Charlotte, NC + date: Summer 1999 to Summer 2000 + highlights: + - 'AutoCAD' + + education: + - institution: N.C. State University + area: Physics + degree: Ph.D. + location: Raleigh, NC + start_date: 2002-08 + end_date: 2007-12 + highlights: + - 'Committee: Robert J. Nemanich (co-chair), Griff Bilbro + (co-chair), David Aspnes, Thomas Perl' + - 'Dissertation: [Thermionic Energy Conversion and Particle Detection Using Diamond and Diamond-Like Carbon Surfaces](http://www.lib.ncsu.edu/resolver/1840.16/3107)' + + - institution: N.C. State University + area: Physics + degree: B.S. + location: Raleigh, NC + start_date: 1998-08 + end_date: 2002-05 + highlights: + - 'Cum Laude' + + - institution: N.C. State University + area: Mathematics + degree: B.S. + location: Raleigh, NC + start_date: 1998-08 + end_date: 2002-05 + highlights: + - 'Cum Laude' + + - institution: North Carolina School of Science and Mathematics + area: Physics and Mathematics + degree: High School + location: Durham, NC + start_date: 1996-08 + end_date: 1998-05 + + skills: + - bullet: Technical leadership + - bullet: Software engineering management + - bullet: Python (advanced) + - bullet: AWS (Certified Solutions Architect - Associate) + - bullet: Ansible + - bullet: Docker + - bullet: Data modeling and architecture + - bullet: Asynchronous and distributed systems + - bullet: Computational physics and computational geometry + + patents: + - bullet: 'Coffman, V.R., Chen, Y., Hendrix, L.S., Sankey, + W.J., **Smith, J.R.**, Wheeler, D., Methods and apparatus for + machine learning predictions of manufacture processes. + [U.S. Patent 15,340,338](https://patents.google.com/patent/US10281902B2/) + granted 2019-05-07.' + + teaching: + - bullet: '[Software Carpentry Workshop, National Institute of Standards and Technology, Gaithersburg MD. September 23-24, 2015](https://pages.nist.gov/2015-09-23-nist)' + - bullet: '[Software Carpentry Workshop, National Institute of Standards and Technology, Gaithersburg MD. July 23-24, 2015](https://pages.nist.gov/2015-07-23-nist)' + - bullet: 'Software Carpentry Bootcamp, Carnegie Mellon + University. July 27-28, 2013' + - bullet: 'Software Carpentry Bootcamp, Johns Hopkins + University. June 18-19, 2012' + - bullet: 'Software Carpentry Bootcamp, University of Chicago. + April 2-3, 2012' + + honors_and_awards: + - bullet: 'COMAP Mathematical Contest in Modeling 2002, + Meritorious Submission' + - bullet: Eagle Scout Award, 1996 + + service: + - bullet: 'Scipy 2021 Program Committee Member' + - bullet: 'Scipy 2020 Program Committee Member' + - bullet: 'President, Graduate Physics Student Association + (GPSA). April 2005 - April 2006' + - bullet: 'University Graduate Student Assc. Representative. + April 2003 - April 2005' + + countries_visited: + - 'Belgium, Bermuda, Canada, France, Georgia, Germany, Greece, + Hong Kong, Italy, Maldives, Mongolia, Morocco, Netherlands, + Poland, Portugal, South Korea, Spain, Thailand, Turkey, + Ukraine, United Arab Emirates' + + selected_software: + - name: '[tec](http://jrsmith3.github.io/tec)' + highlights: + - 'Utilities for simulating vacuum thermionic energy + conversion devices.' + + - name: '[ibei](http://ibei.readthedocs.org/en/latest)' + highlights: + - 'Calculator for incomplete Bose-Einstein integral.' + + publications: + - title: 'Design and characterization of GaN p-i-n diodes for + betavoltaic devices' + authors: + - Khan, M.R. + - '**Smith, J.R.**' + - Tompkins, R.P. + - Kelley, S. + - Litz, M. + - Russo, J. + - Leathersich, J. + - Shahedipour-Sandvik, F. + - Jones, K.A. + - Iliadis, A. + doi: 10.1016/j.sse.2017.06.010 + journal: Solid-State Electronics + date: 2017 + volume: 136 + pages: 24-29 + + - title: 'GaN Power Schottky Diodes with Drift Layers Grown on + Four Substrates' + authors: + - Tompkins, R.P. + - '**Smith, J.R.**' + - Kirchner, K.W. + - Jones, K.A. + - Leach, J.H. + - Udwary, K. + - Preble, E. + - Suvarna, P. + - Leathersich, J.M. + - Shahedipour-Sandvik, F. + doi: 10.1007/s11664-014-3021-9 + journal: Journal of Electronic Materials + date: 2014 + volume: 43 + issue: 4 + pages: 850-856 + + - title: 'Increasing the efficiency of a thermionic engine using + a negative electron affinity collector' + authors: + - '**Smith, J.R.**' + doi: 10.1063/1.4826202 + journal: Journal of Applied Physics + date: 2013 + volume: 114 + pages: 164514 + + - title: GaN Power Schottky Diodes + authors: + - Tompkins, R.P. + - '**Smith, J.R.**' + - Kirchner, K.W. + - Jones, K.A. + - Preble, E. + - Leach, J. + - Mulholland, G. + - Suvarna, P. + - Tungare, M. + - Shahedipour-Sandvik, F. + doi: 10.1149/1.3701521 + journal: ECS Transactions + date: 2012 + volume: 45 + issue: 7 + pages: 17-25 + + - title: 'Theory of space charge limited regime of thermionic + energy converter with negative electron affinity emitter' + authors: + - '**Smith, J.R.**' + - Bilbro, G. + - Nemanich, R. + doi: 10.1116/1.3125282 + journal: Journal of Vacuum Science and Technology B + date: 2009 + volume: 27 + pages: 1132-1141 + + - title: 'Considerations for a high performance thermionic + energy conversion device based on an NEA emitter' + authors: + - '**Smith, J.R.**' + - Bilbro, G. + - Nemanich, R. + doi: 10.1103/PhysRevB.76.245327 + journal: Physical Review B + date: 2007 + volume: 76 + pages: 245327-245332 + + - title: 'Using negative electron affinity diamond emitters to + mitigate space charge in vacuum thermionic energy conversion + devices' + authors: + - '**Smith, J.R.**' + - Bilbro, G. + - Nemanich, R. + doi: 10.1016/j.diamond.2006.09.011 + journal: Diamond and Related Materials + date: 2006 + volume: 15 + pages: 2082-2085 + + - title: 'The effect of Schottky barrier lowering and nonplanar + emitter geometry on the performance of a thermionic energy + converter' + authors: + - '**Smith, J.R.**' + - Bilbro, G. + - Nemanich, R. + doi: 10.1016/j.diamond.2005.12.057 + journal: Diamond and Related Materials + date: 2006 + volume: 15 + pages: 870-874 + + - title: 'A Free Energy Model for Hysteresis in Ferroelectric + Materials' + authors: + - Smith, R.C. + - Seelecke, S. + - Ounaies, Z. + - '**Smith, J.R.**' + doi: 10.1177/1045389X03038841 + journal: Journal of Intelligent Material Systems and Structures + date: 2023-11 + volume: 14 + pages: 719-739 + + - title: 'Model Development and Inverse Compensator Design for + High Speed Nanopositioning' + authors: + - Smith, R.C. + - Salapaka, M.V. + - Hatch, A. + - '**Smith, J.R.**' + - De, T. + doi: 10.1109/CDC.2002.1184930 + journal: 'Proceedings of the 41st IEEE Conference on Decision + and Control, 2002' + date: 2002-12 + volume: 4 + pages: 3652-3657 + + non_refereed_publications: + - title: 'Applying LaPO4 Phosphor via Spinning for + BetaPhotovoltaic Devices' + authors: + - Khan, M.R. + - '**Smith, J.R.**' + - Kirchner, K. + - Jones, K.A. + journal: US Army Research Laboratory Technical Report + date: 2015-06 + technical_report_id: ARL-TR-7269 + url: https://apps.dtic.mil/sti/citations/tr/ADA621659 + + invited_presentations: + - bullet: '**Smith, J.R.** September 2015. Achieving >20% + efficiency using a vacuum thermionic energy converter + featuring a diamond anode. University of British Columbia.' + + presentations: + - bullet: '**Smith, J.R.** November 2013. Achieving >20% + efficiency using a vacuum thermionic energy converter + featuring a III-nitride, negative electron affinity anode. + Materials Research Society Fall Meeting, Boston, + Massachusetts.' + - bullet: '**Smith, J.R.**, Ricketts, D., Bain, J. June 2011. + Localized Thermal Modification of Surfaces via Electron + Bombardment from an STM Tip. 55th International Conference on + Electron, Ion, and Photon Beam Technology and + Nanofabrication, Las Vegas, Nevada.' + - bullet: '**Smith, J.R.**, Ricketts, D., Hu, W., Dang, Y., + Ozcan, O., Sitti, M., Davis, R., Bain, J. November 2010. + Scanning Probe Nanomanufacturing on Si: Surface + Characterization of the Process Technique. Materials Research + Society Fall Meeting, Boston, Massachusetts.' + - bullet: '**Smith, J.R.**, Bilbro, G., Nemanich, R. March 2009. + Optimized vacuum thermionic energy conversion using diamond + materials. American Physical Society March Meeting, + Pittsburgh, Pennsylvania.' + - bullet: '**Smith, J.R.**, Bilbro, G., Nemanich, R. November + 2007. Vacuum thermionic energy conversion from nitrogen and + phosphorus doped diamond. Materials Research Society Fall + Meeting, Boston, Massachusetts.' + - bullet: '**Smith, J.R.**, Nemanich, R., Friedmann, T., + Hertzberg, E. November 2007. Development of a Hydrogen + Termination Procedure for Tetrahedral Amorphous Carbon for + use with the Interstellar Boundary Explorer. Materials + Research Society Fall Meeting, Boston, Massachusetts.' + - bullet: '**Smith, J.R.**, Bilbro, G., Nemanich, R. September + 2007. Efficient conversion of heat directly to electricity + using negative electron affinity diamond electrodes. 18th + European Conference on Diamond, Diamond-Like Materials, + Carbon Nanotubes, and Nitrides 2007. Berlin, Germany.' + - bullet: '**Smith, J.R.**, Bilbro, G., Nemanich, R. March 2007. + Theoretical investigation of vacuum thermionic energy + conversion devices for efficient conversion of solar to + electrical energy. American Physical Society March Meeting, + Denver, Colorado.' + - bullet: '**Smith, J.R.**, Bilbro, G., Nemanich, R. May 2006. + The Effect of Negative Electron Affinity Emitters on the + Space Charge Effect of Vacuum Thermionic Energy Conversion + Devices. ICNDST & ADC 2006 Joint Conference, Research + Triangle Park, North Carolina.' + - bullet: '**Smith, J.R.**, Bilbro, G., Nemanich, R. March 2006. + The Effect of Negative Electron Affinity Emitter Materials on + Space Charge Mitigation of Vacuum Thermionic Energy + Conversion Devices. American Physical Society March Meeting, + Baltimore, Maryland.' + - bullet: '**Smith, J.R.**, Bilbro, G., Nemanich, R. December + 2005. Vacuum TEC Modeling. Thermionic Energy Conversion MURI + Review Meeting. Berkeley, California.' + - bullet: '**Smith, J.R.**, Bilbro, G., Nemanich, R. November + 2005. Effect of Nanostructured Emitters on the Performance of + Vacuum Thermionic Energy Conversion Devices. Materials + Research Society Fall Meeting, Boston, Massachusetts.' + - bullet: '**Smith, J.R.**, Bilbro, G., Nemanich, R. December + 2004. Modeling Vacuum Thermionic Energy Converters. + Thermionic Energy Conversion MURI Review Meeting. Santa Cruz, + California.' + - bullet: '**Smith, J.R.**, Bilbro, G., Nemanich, R. July 2004. + Modeling Vacuum Thermionic Energy Converters. Thermionic + Energy Conversion MURI Review Meeting, Raleigh, North + Carolina.' + - bullet: '**Smith, J.R.**, Bilbro, G., Nemanich, R. April 2004. + The Theory of Thermionic Energy Conversion. Thermioinic + Energy Conversion SBIR phase II Kickoff meeting, Raleigh, + North Carolina.' + - bullet: '**Smith, J.R.** and Mitas, L. 2001. Molecular + Dynamics Simulations. 2001 Summer REU Program Presentations, + Raleigh, North Carolina.' + + posters: + - bullet: '**Smith, J.R.** November 2014. + [Beta-enhanced thermoelectron emission and energy conversion](https://github.com/jrsmith3/conf-mrs_fall_2014_poster/releases), + Boston, MA.' + - bullet: '**Smith, J.R.** August 2013. Simulated thermionic + engine performance using III-nitride, negative electron + affinity collector, Washington, DC.' + - bullet: '**Smith, J.R.**, Ricketts, D., Davis, R., Bain, J., + Fedder, G., Sitti, M., Santhanam, S., Dang, Y., Hu, W., + Ozcan, O., Zhang, A., Gu, J. Tip directed, field assisted + nanomanufacturing. DARPA MEMS PI Review Meeting July 2010. + San Francisco, California.' + - bullet: '**Smith, J.R.**, Hu, W., Dang, Y., Ozcan, O., Sitti, + M., Bain, J., Davis, R., Ricketts, D. Towards Writing Si + Nanowires on Si (100) with an STM Tip: Surface Preparation + and Initial Results. Materials Research Society Fall Meeting + 2009. Boston, Massachusetts.' + - bullet: '**Smith, J.R.**, Ricketts, D., Davis, R., Bain, J., + Fedder, G., Sitti, M., Santhanam, S., Dang, Y., Hu, W., + Ozcan, O., Zhang, A. Tip directed, field assisted + nanomanufacturing: Initial surface preparation results. DARPA + MEMS PI Review Meeting July 2009. Sunriver, Oregon.' + - bullet: '**Smith, J.R.**, Nemanich, R. Hertzberg, E., + Friedmann, T.A. Hydrogen termination of ta:C for use in + interstellar neutral particle detection. New Diamond and Nano + Carbons 2007. Osaka, Japan.' + - bullet: '**Smith, J.R.**, Nemanich, R. Effect of Hydrogen + Passivation on RMS Roughness and Electronic Structure of + Diamond-like Carbon Films. Materials Research Society Fall + Meeting 2006. Boston, Massachusetts.' + - bullet: '**Smith, J.R.**, Bilbro, G., Nemanich, R. Theory of + the performance of a thermionic energy conversion device with + a negative electron affinity emitter. 17th European + Conference on Diamond, Diamond-Like Materials, Carbon + Nanotubes, and Nitrides 2006. Estoril, Portugal.' + - bullet: '**Smith, J.R.**, Bilbro, G., Nemanich, R. A model for + the effect of Schottky barrier lowering and non-planar + emitter geometry on the performance of a thermionic energy + converter. 16th European Conference on Diamond, Diamond-Like + Materials, Carbon Nanotubes, and Nitrides 2005. Toulouse, + France.' + - bullet: '**Smith, J.R.**, Bilbro, G., Nemanich, R. Modeling + Thermionic Energy Conversion Devices. June 2005 Thermionic + Energy Conversion MURI Meeting, Santa Barbara, California.' + - bullet: '**Smith, J.R.** and Bilbro, G. Conventional Theory of + Thermioinic Emission. November 2003. Thermionic Energy + Conversion MURI Review Meeting, Cambridge, Massachusetts.' + +design: + theme: classic diff --git a/src/markdown/BulletEntry.j2.md b/src/markdown/BulletEntry.j2.md new file mode 100644 index 0000000..7431c32 --- /dev/null +++ b/src/markdown/BulletEntry.j2.md @@ -0,0 +1 @@ +- <> diff --git a/src/markdown/EducationEntry.j2.md b/src/markdown/EducationEntry.j2.md new file mode 100644 index 0000000..630b07c --- /dev/null +++ b/src/markdown/EducationEntry.j2.md @@ -0,0 +1,9 @@ +## <>, ((* if entry.degree *))<> in ((* endif *))<> + +((* if entry.date_string *))- <> +((* endif *)) +((* if entry.location *))- <> +((* endif *)) +((* for item in entry.highlights *)) +- <> +((* endfor *)) diff --git a/src/markdown/ExperienceEntry.j2.md b/src/markdown/ExperienceEntry.j2.md new file mode 100644 index 0000000..44c3b7e --- /dev/null +++ b/src/markdown/ExperienceEntry.j2.md @@ -0,0 +1,9 @@ +## <>, <> + +((* if entry.date_string *))- <> +((* endif *)) +((* if entry.location *))- <> +((* endif *)) +((* for item in entry.highlights *)) +- <> +((* endfor *)) diff --git a/src/markdown/Header.j2.md b/src/markdown/Header.j2.md new file mode 100644 index 0000000..010b1c8 --- /dev/null +++ b/src/markdown/Header.j2.md @@ -0,0 +1,47 @@ + + +# RenderCV Pipeline + +Are you ready to revolutionize the way you manage and craft your CVs and resumes? + +Picture this: + +1. You simply update your `src/John_Doe_CV.yaml` input file and push the changes. +2. Then, a pipeline generates a new PDF and Markdown from it and uploads it to the repository. +3. When you are done with your work, you can create a new release on GitHub, tagging your CV with something like `v2024.04`. The pipeline will automatically add the PDF and its $\LaTeX$ source as assets to the release. +4. You have successfully created your CV pipeline, and all the history is in safe hands and reproducible. + +**How to start?** + +1. [Click here](https://github.com/new?template_name=rendercv-pipeline&template_owner=sinaatalay) to create your CV repository based on this `rendercv-pipeline` template repository. +2. Edit either + - the `src/John_Doe_CV.yaml` file, or + - the contents of `src/markdown` or `src/classic` directories + + and push. Then, see the magic happen. + +**Some tips** + +- Learn more about [RenderCV](https://github.com/sinaatalay/rendercv) to understand what you can do with this tool. +- Edit and preview your CV in your browser without installing anything by creating a codespace. Click the <> **Code** button, then click the **Codespaces** tab, and then click **Create codespace on main**. The environment will be ready for RenderCV usage. Update `.vscode/launch.json` to point to your YAML file and press `F5` to run RenderCV in the browser. + + +# <>'s CV + +((* if cv.phone *)) +- Phone: <> +((* endif *)) +((* if cv.email *)) +- Email: [<>](mailto:<>) +((* endif *)) +((* if cv.location *)) +- Location: <> +((* endif *)) +((* if cv.website *)) +- Website: [<>](<>) +((* endif *)) +((* if cv.social_networks *)) + ((* for network in cv.social_networks *)) +- <>: [<>](<>) + ((* endfor *)) +((* endif *)) diff --git a/src/markdown/NormalEntry.j2.md b/src/markdown/NormalEntry.j2.md new file mode 100644 index 0000000..374be0b --- /dev/null +++ b/src/markdown/NormalEntry.j2.md @@ -0,0 +1,9 @@ +## <> + +((* if entry.date_string *))- <> +((* endif *)) +((* if entry.location *))- <> +((* endif *)) +((* for item in entry.highlights *)) +- <> +((* endfor *)) diff --git a/src/markdown/OneLineEntry.j2.md b/src/markdown/OneLineEntry.j2.md new file mode 100644 index 0000000..649f617 --- /dev/null +++ b/src/markdown/OneLineEntry.j2.md @@ -0,0 +1 @@ +- <>: <> diff --git a/src/markdown/PublicationEntry.j2.md b/src/markdown/PublicationEntry.j2.md new file mode 100644 index 0000000..73aef66 --- /dev/null +++ b/src/markdown/PublicationEntry.j2.md @@ -0,0 +1,9 @@ +## <> ((* if entry.doi *))([<>](<>))((* elif entry.url *))([<>](<>))((* endif *)) + +((* if entry.date_string *)) +- <> +((* endif *)) +- <> +((* if entry.journal *)) +- <> +((* endif *)) diff --git a/src/markdown/SectionBeginning.j2.md b/src/markdown/SectionBeginning.j2.md new file mode 100644 index 0000000..409e29e --- /dev/null +++ b/src/markdown/SectionBeginning.j2.md @@ -0,0 +1 @@ +# <> diff --git a/src/markdown/TextEntry.j2.md b/src/markdown/TextEntry.j2.md new file mode 100644 index 0000000..90e577a --- /dev/null +++ b/src/markdown/TextEntry.j2.md @@ -0,0 +1,2 @@ +<> +