4 Commits

Author SHA1 Message Date
685b5f5847 Update CV tutor role dates and README project structure
- Modify Engineering Study Spot Tutor date range in CV
- Update README.md with additional build scripts and refined project structure description
2025-02-06 14:51:22 -05:00
56f3bbca75 Refine research assistant role description for clarity 2025-02-06 14:44:09 -05:00
e21e945cd5 Add build-docker.sh and enhance build-local.sh with local LaTeX tool detection
- Create build-docker.sh script for Docker-based resume and CV generation
- Modify build-local.sh to check for local LaTeX tools and fallback to Docker if needed
- Implement functions to build PDFs using local tools or Docker
- Improve build process flexibility and error handling
2025-02-06 14:43:54 -05:00
55afdad907 Refactor CV and Resume templates to use shared components for modularity. Updated README to reflect new structure and added links to latest PDFs. Enhanced GitHub Actions workflow for automatic release management, including a streamlined process for versioned releases. 2024-12-11 13:31:28 -05:00
12 changed files with 294 additions and 248 deletions

View File

@@ -67,9 +67,29 @@ jobs:
resume.pdf resume.pdf
cv.pdf cv.pdf
name: Latest PDFs name: Latest PDFs
tag_name: release-${{ github.run_number }} tag_name: latest
body: | body: |
Latest version of resume and CV (public version) Latest version of resume and CV (public version)
This release is automatically updated with each push to main. For versioned releases, see the numbered releases.
prerelease: false
draft: false
fail_on_unmatched_files: true
generate_release_notes: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Create a numbered release for version history
- name: Create Numbered Release
uses: softprops/action-gh-release@v1
with:
files: |
resume.pdf
cv.pdf
name: Release ${{ github.run_number }}
tag_name: release-${{ github.run_number }}
body: |
Version ${{ github.run_number }} of resume and CV (public version)
prerelease: false prerelease: false
draft: false draft: false
fail_on_unmatched_files: true fail_on_unmatched_files: true

View File

@@ -12,16 +12,35 @@ This project demonstrates professional DevOps practices while providing a beauti
- Containerized local development with Docker - Containerized local development with Docker
- Clean separation of content and styling - Clean separation of content and styling
## Latest PDFs
The most recent public versions are always available at:
- Resume: `https://github.com/USERNAME/resume-cv/releases/download/latest/resume.pdf`
- CV: `https://github.com/USERNAME/resume-cv/releases/download/latest/cv.pdf`
Replace `USERNAME` with your GitHub username after forking.
## Project Structure ## Project Structure
``` ```
. .
├── cv.tex # Extended CV template ├── cv.tex # Extended CV template
├── resume.tex # Resume template ├── resume.tex # Resume template (subset of CV)
├── shared/ # Shared components
│ ├── style/ # Common LaTeX styles
│ │ └── common.tex # Shared style definitions
│ └── sections/ # Shared content sections
│ ├── header.tex # Contact information
│ ├── education.tex
│ ├── skills.tex
│ ├── coursework.tex
│ └── publications.tex
├── .secrets # Personal information (git-ignored) ├── .secrets # Personal information (git-ignored)
├── build-local.sh # Local build script ├── build-local.sh # Local build script
├── build-docker.sh # Docker build script
├── generate-standalone-cv.sh # Generate standalone CV PDF
└── subfiles/ └── subfiles/
└── refs.bib # BibTeX references └── refs.bib # BibTeX references
``` ```
## Using as a Template ## Using as a Template
@@ -33,11 +52,19 @@ This project demonstrates professional DevOps practices while providing a beauti
- Private version includes all personal details from `.secrets` - Private version includes all personal details from `.secrets`
- The script automatically generates and cleans up temporary files - The script automatically generates and cleans up temporary files
## Modifying Content
The project uses a modular structure to avoid duplication:
- Common sections are stored in `shared/sections/`
- Styling is defined in `shared/style/common.tex`
- The resume is a subset of the CV, reusing shared components
- Add new sections by creating files in `shared/sections/` and including them with `\input{}`
## CI/CD Pipeline ## CI/CD Pipeline
The repository showcases modern DevOps practices through GitHub Actions: The repository showcases modern DevOps practices through GitHub Actions:
- Automated PDF generation on every push - Automated PDF generation on every push
- Public version published as GitHub release - Public version published as GitHub release with stable URLs
- Private version securely generated for repository owner - Private version securely generated for repository owner
- Environment variables managed through GitHub Secrets - Environment variables managed through GitHub Secrets

88
build-docker.sh Executable file
View File

@@ -0,0 +1,88 @@
#!/bin/bash
# Source secrets if the file exists
if [ -f .secrets ]; then
source .secrets
else
echo "Warning: .secrets file not found. Building public version only."
fi
# Set defaults for missing variables
PERSONAL_NAME=${PERSONAL_NAME:-$(whoami)}
PERSONAL_EMAIL=${PERSONAL_EMAIL:-""}
PERSONAL_WEBSITE=${PERSONAL_WEBSITE:-""}
PERSONAL_SCHOOL_EMAIL=${PERSONAL_SCHOOL_EMAIL:-""}
PERSONAL_PHONE=${PERSONAL_PHONE:-""}
PERSONAL_HOME_ADDRESS_LINE1=${PERSONAL_HOME_ADDRESS_LINE1:-""}
PERSONAL_HOME_ADDRESS_LINE2=${PERSONAL_HOME_ADDRESS_LINE2:-""}
PERSONAL_SCHOOL_ADDRESS_LINE1=${PERSONAL_SCHOOL_ADDRESS_LINE1:-""}
PERSONAL_SCHOOL_ADDRESS_LINE2=${PERSONAL_SCHOOL_ADDRESS_LINE2:-""}
PERSONAL_SCHOOL_ADDRESS_LINE3=${PERSONAL_SCHOOL_ADDRESS_LINE3:-""}
# Function to cleanup
cleanup() {
rm -f *.aux *.log *.out *.fls *.fdb_latexmk *.synctex.gz *.bbl *.blg personal_info.tex
if [ -f personal_info.tex.bak ]; then
mv personal_info.tex.bak personal_info.tex
fi
}
trap cleanup EXIT
mkdir -p output
# Backup current personal_info.tex if it exists
if [ -f personal_info.tex ]; then
cp personal_info.tex personal_info.tex.bak
fi
# Build private version (if secrets are available)
if [ -n "$PERSONAL_PHONE" ] || [ -n "$PERSONAL_HOME_ADDRESS_LINE1" ] || [ -n "$PERSONAL_SCHOOL_ADDRESS_LINE1" ]; then
echo "Building private version..."
cat > personal_info.tex << EOL
% Private version of personal information
\newcommand{\personalName}{$PERSONAL_NAME}
\newcommand{\personalEmail}{$PERSONAL_EMAIL}
\newcommand{\personalPhone}{$PERSONAL_PHONE}
\newcommand{\personalWebsite}{$PERSONAL_WEBSITE}
\newcommand{\personalSchoolEmail}{$PERSONAL_SCHOOL_EMAIL}
\newcommand{\personalHomeAddressLineOne}{$PERSONAL_HOME_ADDRESS_LINE1}
\newcommand{\personalHomeAddressLineTwo}{$PERSONAL_HOME_ADDRESS_LINE2}
\newcommand{\personalSchoolAddressLineOne}{$PERSONAL_SCHOOL_ADDRESS_LINE1}
\newcommand{\personalSchoolAddressLineTwo}{$PERSONAL_SCHOOL_ADDRESS_LINE2}
\newcommand{\personalSchoolAddressLineThree}{$PERSONAL_SCHOOL_ADDRESS_LINE3}
EOL
docker build --platform linux/arm64 -t resume-builder .
docker run --platform linux/arm64 --rm \
-v "$(pwd):/workspace" \
-v "$(pwd)/output:/workspace/output" \
resume-builder bash -c "latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode resume.tex cv.tex && mv *.pdf output/"
mv output/resume.pdf output/resume-private.pdf 2>/dev/null || true
mv output/cv.pdf output/cv-private.pdf 2>/dev/null || true
fi
# Build public version
echo "Building public version..."
cat > personal_info.tex << EOL
% Public version of personal information
\newcommand{\personalName}{$PERSONAL_NAME}
\newcommand{\personalEmail}{$PERSONAL_EMAIL}
\newcommand{\personalPhone}{~}
\newcommand{\personalWebsite}{$PERSONAL_WEBSITE}
\newcommand{\personalSchoolEmail}{$PERSONAL_SCHOOL_EMAIL}
\newcommand{\personalHomeAddressLineOne}{~}
\newcommand{\personalHomeAddressLineTwo}{~}
\newcommand{\personalSchoolAddressLineOne}{~}
\newcommand{\personalSchoolAddressLineTwo}{~}
\newcommand{\personalSchoolAddressLineThree}{~}
EOL
docker run --platform linux/arm64 --rm \
-v "$(pwd):/workspace" \
-v "$(pwd)/output:/workspace/output" \
resume-builder bash -c "latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode resume.tex cv.tex && mv resume.pdf output/resume-public.pdf && mv cv.pdf output/cv-public.pdf"
echo "Build complete!"
echo "Generated files in output/:"
ls -l output/

View File

@@ -30,11 +30,35 @@ cleanup() {
trap cleanup EXIT trap cleanup EXIT
mkdir -p output mkdir -p output
# Check if required LaTeX tools are available locally
check_latex_tools() {
command -v latexmk >/dev/null 2>&1 || return 1
command -v pdflatex >/dev/null 2>&1 || return 1
return 0
}
# Function to build using local tools
build_local() {
latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode "$1"
}
# Function to build using Docker
build_docker() {
echo "Local LaTeX tools not found, falling back to Docker..."
./build-docker.sh
exit $?
}
# Backup current personal_info.tex if it exists # Backup current personal_info.tex if it exists
if [ -f personal_info.tex ]; then if [ -f personal_info.tex ]; then
cp personal_info.tex personal_info.tex.bak cp personal_info.tex personal_info.tex.bak
fi fi
# Check if we can use local tools, otherwise fall back to Docker
if ! check_latex_tools; then
build_docker
fi
# Build private version (if secrets are available) # Build private version (if secrets are available)
if [ -n "$PERSONAL_PHONE" ] || [ -n "$PERSONAL_HOME_ADDRESS_LINE1" ] || [ -n "$PERSONAL_SCHOOL_ADDRESS_LINE1" ]; then if [ -n "$PERSONAL_PHONE" ] || [ -n "$PERSONAL_HOME_ADDRESS_LINE1" ] || [ -n "$PERSONAL_SCHOOL_ADDRESS_LINE1" ]; then
echo "Building private version..." echo "Building private version..."
@@ -52,14 +76,11 @@ if [ -n "$PERSONAL_PHONE" ] || [ -n "$PERSONAL_HOME_ADDRESS_LINE1" ] || [ -n "$P
\newcommand{\personalSchoolAddressLineThree}{$PERSONAL_SCHOOL_ADDRESS_LINE3} \newcommand{\personalSchoolAddressLineThree}{$PERSONAL_SCHOOL_ADDRESS_LINE3}
EOL EOL
docker build --platform linux/arm64 -t resume-builder . build_local resume.tex
docker run --platform linux/arm64 --rm \ build_local cv.tex
-v "$(pwd):/workspace" \
-v "$(pwd)/output:/workspace/output" \ mv resume.pdf output/resume-private.pdf 2>/dev/null || true
resume-builder bash -c "latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode resume.tex cv.tex && mv *.pdf output/" mv cv.pdf output/cv-private.pdf 2>/dev/null || true
mv output/resume.pdf output/resume-private.pdf 2>/dev/null || true
mv output/cv.pdf output/cv-private.pdf 2>/dev/null || true
fi fi
# Build public version # Build public version
@@ -78,10 +99,11 @@ cat > personal_info.tex << EOL
\newcommand{\personalSchoolAddressLineThree}{~} \newcommand{\personalSchoolAddressLineThree}{~}
EOL EOL
docker run --platform linux/arm64 --rm \ build_local resume.tex
-v "$(pwd):/workspace" \ build_local cv.tex
-v "$(pwd)/output:/workspace/output" \
resume-builder bash -c "latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode resume.tex cv.tex && mv resume.pdf output/resume-public.pdf && mv cv.pdf output/cv-public.pdf" mv resume.pdf output/resume-public.pdf
mv cv.pdf output/cv-public.pdf
echo "Build complete!" echo "Build complete!"
echo "Generated files in output/:" echo "Generated files in output/:"

115
cv.tex
View File

@@ -1,78 +1,15 @@
\documentclass{article} \documentclass{article}
\setlength{\parindent}{0pt}
\setlength{\parskip}{0em}
\usepackage{enumitem}
\usepackage{hyperref}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[left=0.5in,top=0.5in,right=0.5in,bottom=0.5in]{geometry}
% Define spacing variables % Include common style
\newlength{\sectspaceabove} \input{shared/style/common}
\newlength{\sectspacebelow}
\setlength{\sectspaceabove}{-0em} % Space before section titles
\setlength{\sectspacebelow}{-0.5em} % Space after section titles
\usepackage{etoolbox}
\patchcmd{\thebibliography}{\section*{\refname}}{}{}{}
% Hide page numbers
\pagestyle{empty}
% Custom macro for small caps and bold
\newcommand{\textscbf}[1]{\textbf{\textsc{#1}}}
% Custom macro for section headers with controlled spacing
\newcommand{\resumesection}[1]{%
\vspace{\sectspaceabove}%
\begin{center}
\textscbf{#1}
\end{center}%
\vspace{\sectspacebelow}%
}
% Include personal information % Include personal information
\input{personal_info} \input{personal_info}
\begin{document} \begin{document}
\begin{center}
{\large \textscbf{\personalName}}
\end{center}
\vspace{0.5em} % Header with contact information
\input{shared/sections/header}
\noindent
\begin{minipage}[t]{0.33\textwidth}
\raggedright
\ifx\personalSchoolAddressLineOne\empty\else
\mbox{}\par\nobreak\vspace{-\baselineskip}
\personalSchoolAddressLineOne\\%
\personalSchoolAddressLineTwo\\%
\personalSchoolAddressLineThree%
\fi
\end{minipage}%
\hfill%
\begin{minipage}[t]{0.33\textwidth}
\centering
\href{mailto:\personalEmail}{\personalEmail}%
\ifx\personalSchoolEmail\empty\else
\\\href{mailto:\personalSchoolEmail}{\personalSchoolEmail}%
\fi
\\\href{https://\personalWebsite}{\personalWebsite}%
\ifx\personalPhone\empty\else
\\\personalPhone%
\fi
\end{minipage}%
\hfill%
\begin{minipage}[t]{0.33\textwidth}
\raggedleft
\ifx\personalHomeAddressLineOne\empty\else
\personalHomeAddressLineOne\\%
\personalHomeAddressLineTwo%
\fi
\end{minipage}
\vspace{1em}
% Professional Summary Section % Professional Summary Section
\noindent \noindent
@@ -82,14 +19,8 @@
Published researcher in human-robot interaction with experience in both academic and commercial software development. Published researcher in human-robot interaction with experience in both academic and commercial software development.
\end{minipage} \end{minipage}
\resumesection{Education} % Education section
\input{shared/sections/education}
\textscbf{Bucknell University} \hfill \textscbf{Lewisburg, PA}
\textbf{Bachelor of Science in Computer Science and Engineering} \hfill \textbf{Expected Graduation: May 2026}
\begin{itemize}[noitemsep,topsep=2pt]
\item Cumulative Engineering GPA: 3.90. Dean's List: Fall 2022, Fall 2023, Spring 2024
\end{itemize}
\resumesection{Experience} \resumesection{Experience}
@@ -119,7 +50,6 @@
\item Managed live production during race events, coordinating camera operators, replay, and graphics control \item Managed live production during race events, coordinating camera operators, replay, and graphics control
\end{itemize} \end{itemize}
\textscbf{Bucknell University} \hfill \textscbf{Lewisburg, PA} \textscbf{Bucknell University} \hfill \textscbf{Lewisburg, PA}
\textbf{Computer Science Researcher - Human-Robot Interaction} \hfill \textbf{Jan 2023 Present} \textbf{Computer Science Researcher - Human-Robot Interaction} \hfill \textbf{Jan 2023 Present}
@@ -131,7 +61,7 @@
\textbf{Computer Science Research Assistant - Chemical Engineering Department} \hfill \textbf{Aug 2023 Present} \textbf{Computer Science Research Assistant - Chemical Engineering Department} \hfill \textbf{Aug 2023 Present}
\begin{itemize}[noitemsep,topsep=2pt] \begin{itemize}[noitemsep,topsep=2pt]
\item Designed and implemented an automated data collection system using a microcontroller and C++ to collect real-time temperature, pressure, and humidity data in harsh environments \item Designed and implemented an automated data collection system using a microcontroller and C++ to collect real-time temperature, pressure, and humidity data in harsh environments
\item Currently integrating robotic arm into existing coffee research project to automate repeated brewing-related tasks and data collection, freeing up researchers from unskilled repetitive work \item Currently assisting in robotic hardware integration into an existing coffee research project to automate repeated brewing-related tasks and data collection, freeing up researchers from unskilled repetitive work
\end{itemize} \end{itemize}
\textbf{Computer Science Teaching Assistant} \hfill \textbf{Jan 2024 - Present} \textbf{Computer Science Teaching Assistant} \hfill \textbf{Jan 2024 - Present}
@@ -140,7 +70,7 @@
\item Assisted students with classwork, homework, and lab assignments, focusing on teaching students how to find the answers to their questions using existing documentation \item Assisted students with classwork, homework, and lab assignments, focusing on teaching students how to find the answers to their questions using existing documentation
\end{itemize} \end{itemize}
\textbf{Engineering Study Spot Tutor - Computer Science} \hfill \textbf{Aug 2024 - Present} \textbf{Engineering Study Spot Tutor - Computer Science} \hfill \textbf{Aug 2024 - Dec 2024}
\begin{itemize}[noitemsep,topsep=2pt] \begin{itemize}[noitemsep,topsep=2pt]
\item Held drop-in help sessions for computer science students throughout all stages of the curriculum, assisting with introductory courses, software engineering, and systems programming assignments \item Held drop-in help sessions for computer science students throughout all stages of the curriculum, assisting with introductory courses, software engineering, and systems programming assignments
\end{itemize} \end{itemize}
@@ -164,7 +94,6 @@
\item Assisted staff in one-laptop per person deployment and support in response to the COVID-19 pandemic, teaching students how to fully utilize newly-available remote learning tools and programs \item Assisted staff in one-laptop per person deployment and support in response to the COVID-19 pandemic, teaching students how to fully utilize newly-available remote learning tools and programs
\end{itemize} \end{itemize}
\resumesection{Activities} \resumesection{Activities}
\textscbf{AIChE Chem-E-Car Competition Team} \hfill \textscbf{Lewisburg, PA} \textscbf{AIChE Chem-E-Car Competition Team} \hfill \textscbf{Lewisburg, PA}
@@ -225,29 +154,9 @@
\item Presented the design of our car in a poster session, heavily focusing on the safety-related aspects of our design \item Presented the design of our car in a poster session, heavily focusing on the safety-related aspects of our design
\end{itemize} \end{itemize}
% Shared sections
\resumesection{Publications} \input{shared/sections/publications}
\input{shared/sections/coursework}
\nocite{*} \input{shared/sections/skills}
\bibliography{subfiles/refs.bib}
\bibliographystyle{plain}
\resumesection{Relevant Coursework}
\textbf{Systems \& Architecture:} Computer Systems, Operating Systems Design, Computer Networks \& Security
\textbf{Software Development:} Software Engineering, Data Structures \& Algorithms, Research Methods, Ethics in Computing
\textbf{Mathematics:} Calculus II, Linear Algebra, Discrete Mathematics, Statistics, Applied Statistics with R, Data Mining
\resumesection{Skills \& Interests}
\textbf{Languages \& Frameworks:} Java, C/C++, Python, JavaScript/TypeScript, React, Next.js, PHP, SQL
\textbf{Backend \& DevOps:} REST APIs, MySQL, PostgreSQL, Docker, Apache Web Server, NGINX, ROS2
\textbf{Cloud \& Infrastructure:} AWS, GCP, Azure, Backblaze, Linux (RHEL/Debian), CI/CD
\textbf{Development Tools:} Git, JetBrains Suite, VS Code, Cursor, Linux CLI
\end{document} \end{document}

View File

@@ -1,87 +1,18 @@
\documentclass{article} \documentclass{article}
\setlength{\parindent}{0pt}
\setlength{\parskip}{0em}
\usepackage{enumitem}
\usepackage{hyperref}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[left=0.5in,top=0.5in,right=0.5in,bottom=0.5in]{geometry}
% Define spacing variables % Include common style
\newlength{\sectspaceabove} \input{shared/style/common}
\newlength{\sectspacebelow}
\setlength{\sectspaceabove}{-0.5em} % Space before section titles
\setlength{\sectspacebelow}{-0.5em} % Space after section titles
\usepackage{etoolbox}
\patchcmd{\thebibliography}{\section*{\refname}}{}{}{}
% Hide page numbers
\pagestyle{empty}
% Custom macro for small caps and bold
\newcommand{\textscbf}[1]{\textbf{\textsc{#1}}}
% Custom macro for section headers with controlled spacing
\newcommand{\resumesection}[1]{%
\vspace{\sectspaceabove}%
\begin{center}
\textscbf{#1}
\end{center}%
\vspace{\sectspacebelow}%
}
% Include personal information % Include personal information
\input{personal_info} \input{personal_info}
\begin{document} \begin{document}
\begin{center}
{\large \textscbf{\personalName}}
\end{center}
\vspace{0.5em} % Header with contact information
\input{shared/sections/header}
\noindent % Education section
\begin{minipage}[t]{0.33\textwidth} \input{shared/sections/education}
\raggedright
\ifx\personalSchoolAddressLineOne\empty\else
\mbox{}\par\nobreak\vspace{-\baselineskip}
\personalSchoolAddressLineOne\\%
\personalSchoolAddressLineTwo\\%
\personalSchoolAddressLineThree%
\fi
\end{minipage}%
\hfill%
\begin{minipage}[t]{0.33\textwidth}
\centering
\href{mailto:\personalEmail}{\personalEmail}%
\ifx\personalSchoolEmail\empty\else
\\\href{mailto:\personalSchoolEmail}{\personalSchoolEmail}%
\fi
\\\href{https://\personalWebsite}{\personalWebsite}%
\ifx\personalPhone\empty\else
\\\personalPhone%
\fi
\end{minipage}%
\hfill%
\begin{minipage}[t]{0.33\textwidth}
\raggedleft
\ifx\personalHomeAddressLineOne\empty\else
\personalHomeAddressLineOne\\%
\personalHomeAddressLineTwo%
\fi
\end{minipage}
\vspace{1em}
\resumesection{Education}
\textscbf{Bucknell University} \hfill \textscbf{Lewisburg, PA}
\textbf{Bachelor of Science in Computer Science and Engineering} \hfill \textbf{Expected Graduation: May 2026}
\begin{itemize}[noitemsep,topsep=2pt]
\item Cumulative Engineering GPA: 3.90. Dean's List: Fall 2022, Fall 2023, Spring 2024
\end{itemize}
\resumesection{Experience} \resumesection{Experience}
@@ -95,28 +26,6 @@
\item Orchestrated migration to containerized architecture using Docker and implemented automated backup systems to improve reliability \item Orchestrated migration to containerized architecture using Docker and implemented automated backup systems to improve reliability
\end{itemize} \end{itemize}
%\textscbf{Bucknell University} \hfill \textscbf{Lewisburg, PA}
%
%\textbf{Computer Science Researcher - Human-Robot Interaction} \hfill \textbf{Jan 2023 Present}
%\begin{itemize}[noitemsep,topsep=2pt]
% \item Co-founded an interdisciplinary research lab and meeting group, engaging peers in the world of human-robot interaction
% \item Led ongoing development of a platform for Human-Robot Interaction experiments, resulting in a first-author publication
%\end{itemize}
%
%\textbf{Teaching Assistant and Tutor - Computer Science, Engineering, and Physics} \hfill \textbf{Aug 2023 - Present}
%\begin{itemize}[noitemsep,topsep=2pt]
%\item Mentored diverse student groups in Java programming, Arduino development, and physics lab experiments, adapting teaching methods to various learning styles
%\item Guided engineering teams through agile development cycles while emphasizing ethical design considerations and proper documentation
%\item Supported data analysis across disciplines using Excel, Logger Pro, and custom software tools
%\item Fostered inclusive learning environments through hands-on workshops and one-on-one tutoring sessions
%\end{itemize}
%
%\textbf{Computer Science Research Assistant - Chemical Engineering Department} \hfill \textbf{Aug 2023 Present}
%\begin{itemize}[noitemsep,topsep=2pt]
% \item Developed sensor systems to improve data collection in coffee-related biochemical research, enhancing accuracy and efficiency of experiments using custom software tools to streamline data analysis.
%\end{itemize}
%
\textscbf{Bucknell University} \hfill \textscbf{Lewisburg, PA} \textscbf{Bucknell University} \hfill \textscbf{Lewisburg, PA}
\textbf{Computer Science Researcher - Human-Robot Interaction} \hfill \textbf{Jan 2023 Present} \textbf{Computer Science Researcher - Human-Robot Interaction} \hfill \textbf{Jan 2023 Present}
@@ -128,7 +37,7 @@
\textbf{Computer Science Research Assistant - Chemical Engineering Department} \hfill \textbf{Aug 2023 Present} \textbf{Computer Science Research Assistant - Chemical Engineering Department} \hfill \textbf{Aug 2023 Present}
\begin{itemize}[noitemsep,topsep=2pt] \begin{itemize}[noitemsep,topsep=2pt]
\item Designed and implemented an automated data collection system using a microcontroller and C++ to collect real-time temperature, pressure, and humidity data in harsh environments \item Designed and implemented an automated data collection system using a microcontroller and C++ to collect real-time temperature, pressure, and humidity data in harsh environments
\item Currently integrating robotic arm into existing coffee research project to automate repeated brewing-related tasks and data collection, freeing up researchers from unskilled repetitive work \item Currently assisting in robotic hardware integration into an existing coffee research project to automate repeated brewing-related tasks and data collection, freeing up researchers from unskilled repetitive work
\end{itemize} \end{itemize}
\textbf{Teaching Assistant \& Engineering Tutor} \hfill \textbf{Aug 2023 - Present} \textbf{Teaching Assistant \& Engineering Tutor} \hfill \textbf{Aug 2023 - Present}
@@ -138,16 +47,8 @@
\item Provided technical mentorship at the Engineering Study Spot, focusing on programming concepts and system design \item Provided technical mentorship at the Engineering Study Spot, focusing on programming concepts and system design
\end{itemize} \end{itemize}
\resumesection{Activities} \resumesection{Activities}
%\textscbf{Bucknell Coffee Society} \hfill \textscbf{Lewisburg, PA}
%
%\textbf{Treasurer} \hfill \textbf{Oct 2023 Present}
%\begin{itemize}[noitemsep,topsep=2pt]
% \item Co-established and launched a new campus organization, managing financial operations and coordinating event logistics.
%\end{itemize}
\textscbf{AIChE Chem-E-Car Competition Team} \hfill \textscbf{Lewisburg, PA} \textscbf{AIChE Chem-E-Car Competition Team} \hfill \textscbf{Lewisburg, PA}
\textbf{President, Electrical and Mechanical Team Lead} \hfill \textbf{Jan 2023 Present} \textbf{President, Electrical and Mechanical Team Lead} \hfill \textbf{Jan 2023 Present}
@@ -156,28 +57,9 @@
\item Implemented finite state machine architecture integrating spectrometer readings, relay control, and LED feedback for real-time reaction monitoring in isolated chamber conditions \item Implemented finite state machine architecture integrating spectrometer readings, relay control, and LED feedback for real-time reaction monitoring in isolated chamber conditions
\end{itemize} \end{itemize}
\resumesection{Publications} % Shared sections
\input{shared/sections/publications}
\nocite{*} \input{shared/sections/coursework}
\bibliography{subfiles/refs.bib} \input{shared/sections/skills}
\bibliographystyle{plain}
\resumesection{Relevant Coursework}
\textbf{Systems \& Architecture:} Computer Systems, Operating Systems Design, Computer Networks \& Security
\textbf{Software Development:} Software Engineering, Data Structures \& Algorithms, Research Methods, Ethics in Computing
\textbf{Mathematics:} Calculus II, Linear Algebra, Discrete Mathematics, Statistics, Applied Statistics with R, Data Mining
\resumesection{Skills \& Interests}
\textbf{Languages \& Frameworks:} Java, C/C++, Python, JavaScript/TypeScript, React, Next.js, PHP, SQL
\textbf{Backend \& DevOps:} REST APIs, MySQL, PostgreSQL, Docker, Apache Web Server, NGINX, ROS2
\textbf{Cloud \& Infrastructure:} AWS, GCP, Azure, Backblaze, Linux (RHEL/Debian), CI/CD
\textbf{Development Tools:} Git, JetBrains Suite, VS Code, Cursor, Linux CLI
\end{document} \end{document}

View File

@@ -0,0 +1,7 @@
\resumesection{Relevant Coursework}
\textbf{Systems \& Architecture:} Computer Systems, Operating Systems Design, Computer Networks \& Security
\textbf{Software Development:} Software Engineering, Data Structures \& Algorithms, Research Methods, Ethics in Computing
\textbf{Mathematics:} Calculus II, Linear Algebra, Discrete Mathematics, Statistics, Applied Statistics with R, Data Mining

View File

@@ -0,0 +1,8 @@
\resumesection{Education}
\textscbf{Bucknell University} \hfill \textscbf{Lewisburg, PA}
\textbf{Bachelor of Science in Computer Science and Engineering} \hfill \textbf{Expected Graduation: May 2026}
\begin{itemize}[noitemsep,topsep=2pt]
\item Cumulative Engineering GPA: 3.90. Dean's List: Fall 2022, Fall 2023, Spring 2024
\end{itemize}

View File

@@ -0,0 +1,38 @@
\begin{center}
{\large \textscbf{\personalName}}
\end{center}
\vspace{0.5em}
\noindent
\begin{minipage}[t]{0.33\textwidth}
\raggedright
\ifx\personalSchoolAddressLineOne\empty\else
\mbox{}\par\nobreak\vspace{-\baselineskip}
\personalSchoolAddressLineOne\\%
\personalSchoolAddressLineTwo\\%
\personalSchoolAddressLineThree%
\fi
\end{minipage}%
\hfill%
\begin{minipage}[t]{0.33\textwidth}
\centering
\href{mailto:\personalEmail}{\personalEmail}%
\ifx\personalSchoolEmail\empty\else
\\\href{mailto:\personalSchoolEmail}{\personalSchoolEmail}%
\fi
\\\href{https://\personalWebsite}{\personalWebsite}%
\ifx\personalPhone\empty\else
\\\personalPhone%
\fi
\end{minipage}%
\hfill%
\begin{minipage}[t]{0.33\textwidth}
\raggedleft
\ifx\personalHomeAddressLineOne\empty\else
\personalHomeAddressLineOne\\%
\personalHomeAddressLineTwo%
\fi
\end{minipage}
\vspace{1em}

View File

@@ -0,0 +1,5 @@
\resumesection{Publications}
\nocite{*}
\bibliography{subfiles/refs.bib}
\bibliographystyle{plain}

View File

@@ -0,0 +1,9 @@
\resumesection{Skills \& Interests}
\textbf{Languages \& Frameworks:} Java, C/C++, Python, JavaScript/TypeScript, React, Next.js, PHP, SQL
\textbf{Backend \& DevOps:} REST APIs, MySQL, PostgreSQL, Docker, Apache Web Server, NGINX, ROS2
\textbf{Cloud \& Infrastructure:} AWS, GCP, Azure, Backblaze, Linux (RHEL/Debian), CI/CD
\textbf{Development Tools:} Git, JetBrains Suite, VS Code, Cursor, Linux CLI

31
shared/style/common.tex Normal file
View File

@@ -0,0 +1,31 @@
\setlength{\parindent}{0pt}
\setlength{\parskip}{0em}
\usepackage{enumitem}
\usepackage{hyperref}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[left=0.5in,top=0.5in,right=0.5in,bottom=0.5in]{geometry}
% Define spacing variables
\newlength{\sectspaceabove}
\newlength{\sectspacebelow}
\setlength{\sectspaceabove}{-0.5em} % Space before section titles
\setlength{\sectspacebelow}{-0.5em} % Space after section titles
\usepackage{etoolbox}
\patchcmd{\thebibliography}{\section*{\refname}}{}{}{}
% Hide page numbers
\pagestyle{empty}
% Custom macro for small caps and bold
\newcommand{\textscbf}[1]{\textbf{\textsc{#1}}}
% Custom macro for section headers with controlled spacing
\newcommand{\resumesection}[1]{%
\vspace{\sectspaceabove}%
\begin{center}
\textscbf{#1}
\end{center}%
\vspace{\sectspacebelow}%
}