From b1bbec2ccb1c5b262de1d1dc5e9bcce2a3e96392 Mon Sep 17 00:00:00 2001 From: ahuston-0 Date: Fri, 27 Mar 2026 15:23:21 -0400 Subject: [PATCH] add formatting --- .direnv/bin/nix-direnv-reload | 19 ++ .envrc | 1 + .github/copilot-instructions.md | 34 ++++ .github/prompts/resume-review.prompt.md | 95 ++++++++++ .github/workflows/build-resume.yaml | 44 +++++ flake.lock | 61 ++++++ flake.nix | 45 +++++ main.tex | 240 ++++++++++++++---------- 8 files changed, 440 insertions(+), 99 deletions(-) create mode 100755 .direnv/bin/nix-direnv-reload create mode 100644 .envrc create mode 100644 .github/copilot-instructions.md create mode 100644 .github/prompts/resume-review.prompt.md create mode 100644 .github/workflows/build-resume.yaml create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/.direnv/bin/nix-direnv-reload b/.direnv/bin/nix-direnv-reload new file mode 100755 index 0000000..f4edacc --- /dev/null +++ b/.direnv/bin/nix-direnv-reload @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -e +if [[ ! -d "/home/alice/.gitprojects/resumes" ]]; then + echo "Cannot find source directory; Did you move it?" + echo "(Looking for "/home/alice/.gitprojects/resumes")" + echo 'Cannot force reload with this script - use "direnv reload" manually and then try again' + exit 1 +fi + +# rebuild the cache forcefully +_nix_direnv_force_reload=1 direnv exec "/home/alice/.gitprojects/resumes" true + +# Update the mtime for .envrc. +# This will cause direnv to reload again - but without re-building. +touch "/home/alice/.gitprojects/resumes/.envrc" + +# Also update the timestamp of whatever profile_rc we have. +# This makes sure that we know we are up to date. +touch -r "/home/alice/.gitprojects/resumes/.envrc" "/home/alice/.gitprojects/resumes/.direnv"/*.rc diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000..ed09c0b --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,34 @@ +# Project Guidelines + +## Code Style +- Primary source is `main.tex`; keep edits focused there unless build config changes are required. +- Follow existing LaTeX macro style: reusable `\newcommand` helpers for resume blocks (e.g., `\resumeSubheading`, `\resumeEducation`, `\resumeItem`). +- Preserve compact spacing/layout conventions (`\vspace`, custom `\titleformat`, `tabular*` alignment) unless asked to redesign formatting. +- Keep package usage consistent with current preamble and avoid adding new packages unless required for a user request. + +## Architecture +- This workspace is a single-document resume project. +- `main.tex` contains both template macros and resume content. +- Files like `main.aux`, `main.fdb_latexmk`, and `main.fls` are generated build artifacts, not source-of-truth. +- `glyphtounicode` is included for text extractability/ATS friendliness via `\pdfgentounicode=1`. + +## Build and Test +- Build PDF (preferred): `latexmk -pdf main.tex` +- Alternative build: `pdflatex main.tex` (run multiple times if references/layout need settling) +- Clean artifacts: `latexmk -c` +- Validate by checking successful compile and reviewing resulting `main.pdf` for layout overflow/line wrapping regressions. + +## Project Conventions +- Use existing macros instead of ad-hoc formatting in section bodies. +- Keep section/list structure aligned with current pattern: `\resumeSubHeadingListStart` / `\resumeSubHeadingListEnd` and `\resumeItemListStart` / `\resumeItemListEnd`. +- Keep content concise and achievement-oriented; avoid large prose blocks that break one-page layout assumptions. +- Do not manually edit generated files (`*.aux`, `*.fdb_latexmk`, `*.fls`, etc.); `.gitignore` already treats these as build outputs. + +## Integration Points +- External links are rendered with `hyperref` (`hidelinks`) and should stay valid/HTTPS. +- Typography/layout relies on current package set (`sourcesanspro`, `titlesec`, `multicol`, `tabularx`); changing these can significantly alter spacing. + +## Security +- Resume data includes personally identifiable information (name, location, email, phone, profile URLs). +- Do not invent or expose new sensitive personal details when generating edits. +- Prefer placeholders when asked to add unknown contact/private information. diff --git a/.github/prompts/resume-review.prompt.md b/.github/prompts/resume-review.prompt.md new file mode 100644 index 0000000..0200273 --- /dev/null +++ b/.github/prompts/resume-review.prompt.md @@ -0,0 +1,95 @@ +--- +name: "Resume Review" +description: "Use when: reviewing your resume as a hiring manager for SWE roles at startups or big tech / FAANG. Reads the LaTeX source, builds the PDF, views the rendered layout, and delivers structured feedback covering ATS keywords, impact metrics, clarity, and formatting." +agent: agent +--- + +You are an experienced software engineering hiring manager who has hired engineers at top-tier startups and FAANG companies. Your standards are high. You are evaluating this resume as though it just landed in your inbox for a mid-to-senior software engineering role. Be direct, specific, and constructive — prioritize signal over style. + +## Your Task + +Review the candidate's resume by following the steps below in order. + +### Step 1 — Read the LaTeX source + +Read [main.tex](../main.tex) to understand the full content and structure of the resume: sections, roles, dates, technologies, bullet text, projects, certifications, and any formatting macros. + +### Step 2 — Build the PDF + +Run the following command in the terminal to compile the resume: + +``` +latexmk -pdf main.tex +``` + +If the build produces errors, include them as a finding under **Formatting & Layout** (e.g., "Compile error on line X — fix before submission"). Continue the review using the LaTeX source regardless. + +### Step 3 — View the rendered PDF + +Clean up any stale preview files, then convert the first page of the built PDF to a PNG and view it: + +``` +rm -f main-preview*.png +pdftoppm -r 150 -png main.pdf main-preview +``` + +Then use #tool:view_image to view `main-preview-1.png`. + +If this step fails for any reason (conversion error, tool unavailable, file not found), note it briefly — e.g., *"PDF preview unavailable — layout assessment based on LaTeX source only"* — and proceed. Do not retry or block on this step. + +### Step 4 — Deliver structured feedback + +Write your review using exactly the sections below. Be specific: quote bullet text, name technologies, cite line counts or spacing observations. Avoid vague commentary. + +--- + +## Resume Review + +### Overall Impression +*Pass / Borderline / No — and why in 2–3 sentences.* Would this clear a 30-second recruiter screen and reach your desk? Would it pass ATS filtering for a standard SWE job description at a startup or FAANG? + +### Strengths +What genuinely stands out? Consider: recognizable employers or schools, strong quantified impact, relevant technical depth, notable projects, certifications, or clean presentation. Be honest — only list real strengths. + +### ATS & Keywords +Evaluate keyword coverage for a mid-to-senior SWE role at a startup or FAANG. Consider: +- Programming languages (e.g., Python, Java, Go, TypeScript) +- Cloud platforms and services (e.g., AWS, GCP, Azure, Lambda, S3, EKS) +- Frameworks and tools (e.g., React, Spring Boot, Kubernetes, Terraform, Kafka) +- Engineering practices (e.g., CI/CD, microservices, distributed systems, REST, gRPC) +- Certifications (e.g., AWS SAA, CKA) + +List keywords that are **present and strong**, **present but weak** (mentioned once or vaguely), and **missing or underrepresented** relative to typical FAANG/startup JDs. + +### Impact & Metrics +Are accomplishments achievement-oriented and quantified? Review each bullet: +- Does it lead with a strong action verb? +- Does it state *what* was built/improved *and* the measurable result (latency, throughput, cost, scale, time saved, error rate)? +- Are there weak "responsible for" or "worked on" bullets that should be rewritten? + +Call out specific bullets that are strong and specific bullets that need work (quote them). + +### Clarity & Conciseness +Flag any content that is: +- Vague or jargon-heavy without substance +- Redundant across bullet points or sections +- Overlong (bullets exceeding ~90 characters or two lines in the rendered PDF) +- Confusing to someone unfamiliar with the employer's internal terminology + +### Formatting & Layout +Assess the rendered visual (or LaTeX structure if PDF unavailable): +- Is the layout clean and easy to scan in 30 seconds? +- Is whitespace used well, or does it feel cramped/padded to fill space? +- Does it fit on one page without overflow? +- Are section headers, dates, and company names visually distinct? +- Any alignment, spacing, or typography issues? + +If PDF preview was unavailable, state that clearly and base this section on the LaTeX source structure. + +### Top 3–5 Actionable Improvements +List the highest-priority changes the candidate should make before submitting, ranked by impact. Each item should be: +- **Specific**: name the section, line, or bullet +- **Actionable**: say exactly what to change or add +- **Justified**: one sentence on why it matters for startup/FAANG hiring + +Format as a numbered list. diff --git a/.github/workflows/build-resume.yaml b/.github/workflows/build-resume.yaml new file mode 100644 index 0000000..2d96548 --- /dev/null +++ b/.github/workflows/build-resume.yaml @@ -0,0 +1,44 @@ +name: Build and Release Resume PDF + +on: + push: + branches: + - main + paths: + - 'main.tex' + - '.github/workflows/build-resume.yaml' + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install LaTeX dependencies + run: | + sudo apt-get update + sudo apt-get install -y latexmk texlive-latex-base texlive-latex-extra texlive-fonts-recommended + + - name: Build PDF + run: latexmk -pdf main.tex && mv main.pdf Alice_Huston_Resume_Software_Engineer.pdf + + - name: Upload PDF artifact + uses: actions/upload-artifact@v3 + with: + name: resume-pdf + path: Alice_Huston_Resume_Software_Engineer.pdf + + - name: Create Release + if: success() + uses: softprops/action-gh-release@v1 + with: + files: Alice_Huston_Resume_Software_Engineer.pdf + tag_name: resume-${{ github.run_number }} + body: "Resume PDF built from commit ${{ github.sha }}" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..f194334 --- /dev/null +++ b/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1774386573, + "narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..ce8b3da --- /dev/null +++ b/flake.nix @@ -0,0 +1,45 @@ +{ + description = "Resume development environment"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = import nixpkgs { + inherit system; + }; + + tex = ( + pkgs.texlive.combine { + inherit (pkgs.texlive) + scheme-medium + preprint + titlesec + enumitem + sourcesanspro + xifthen + ifmtarg + framed + paralist + fontawesome7 + ; + } + ); + + preCommitTool = if pkgs ? prek then pkgs.prek else pkgs.pre-commit; + in + { + devShells.default = pkgs.mkShell { + packages = [ + tex + pkgs.tex-fmt + preCommitTool + ]; + }; + } + ); +} \ No newline at end of file diff --git a/main.tex b/main.tex index 5cd7c38..608ba84 100644 --- a/main.tex +++ b/main.tex @@ -24,7 +24,6 @@ \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt} - \addtolength{\oddsidemargin}{-0.5in} \addtolength{\evensidemargin}{-0.5in} \addtolength{\textwidth}{1in} @@ -41,78 +40,82 @@ \vspace{-0.85em}\bfseries%\centering }{}{0em}{}[\color{black}\titlerule\vspace{-5pt}] - \pdfgentounicode=1 \newcommand{\resumeItem}[1]{ - \item\small{ +\item\small{ {#1 \vspace{-2pt}} } } \newcommand{\resumeSubheading}[4]{ - \vspace{-2pt}\item - \begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r} - \textbf{#1} & #2 \\ - \textit{\small#3} & \textit{\small #4} \\ - \end{tabular*}\vspace{-7pt} + \vspace{-2pt} +\item + \begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r} + \textbf{#1} & #2 \\ + \textit{\small#3} & \textit{\small #4} \\ + \end{tabular*}\vspace{-7pt} } \newcommand{\resumeEducation}[5]{ - \vspace{-2pt}\item - \begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r} - \textbf{#1} | #2 & #3 \\ - \textit{\small#4} & \textit{\small #5} \\ - \end{tabular*}\vspace{-7pt} + \vspace{-2pt} +\item + \begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r} + \textbf{#1} | #2 & #3 \\ + \textit{\small#4} & \textit{\small #5} \\ + \end{tabular*}\vspace{-7pt} } \newcommand{\resumeSubSubheading}[2]{ - \item - \begin{tabular*}{0.97\textwidth}{l@{\extracolsep{\fill}}r} - \textit{\small#1} & \textit{\small #2} \\ - \end{tabular*}\vspace{-7pt} +\item + \begin{tabular*}{0.97\textwidth}{l@{\extracolsep{\fill}}r} + \textit{\small#1} & \textit{\small #2} \\ + \end{tabular*}\vspace{-7pt} } \newcommand{\resumeProjectHeading}[2]{ - \item - \begin{tabular*}{0.97\textwidth}{l@{\extracolsep{\fill}}r} - \small\textbf{#1} & #2 \\ - \end{tabular*}\vspace{-7pt} +\item + \begin{tabular*}{0.97\textwidth}{l@{\extracolsep{\fill}}r} + \small\textbf{#1} & #2 \\ + \end{tabular*}\vspace{-7pt} } \newcommand{\resumeSubItem}[1]{\resumeItem{#1}\vspace{-4pt}} \renewcommand\labelitemii{$\vcenter{\hbox{\tiny$\bullet$}}$} -\newcommand{\resumeSubHeadingListStart}{\begin{itemize}[leftmargin=0.15in, label={}]} -\newcommand{\resumeSubHeadingListEnd}{\end{itemize}} -\newcommand{\resumeItemListStart}{\begin{itemize}} -\newcommand{\resumeItemListEnd}{\end{itemize}\vspace{-5pt}} +\newcommand{\resumeSubHeadingListStart}{ +\begin{itemize}[leftmargin=0.15in, label={}]} + \newcommand{\resumeSubHeadingListEnd}{ +\end{itemize}} +\newcommand{\resumeItemListStart}{ +\begin{itemize}} + \newcommand{\resumeItemListEnd}{ +\end{itemize}\vspace{-5pt}} \begin{document} - - \begin{center} - {\LARGE Alice Huston} \\ \vspace{2pt} - \begin{multicols}{2} - \begin{flushleft} + {\LARGE Alice Huston} \\ \vspace{2pt} + \begin{multicols}{2} + \begin{flushleft} %% Github profile is no longer used %% work is moved over to private gitea instance at nayeonie.com %% - %%\href{https://www.github.com/ahuston-0}{github.com/ahuston-0}\\ - \faIcon{git} \href{https://nayeonie.com/ahuston-0}{nayeonie.com/ahuston-0}\\ - \faIcon{linkedin} \href{https://www.linkedin.com/in/ahuston0}{linkedin.com/in/ahuston0} - \end{flushleft} + %%\href{https://www.github.com/ahuston-0}{github.com/ahuston-0}\\ + \textbf{Portfolio}: + \href{https://nayeonie.com/ahuston-0}{nayeonie.com/ahuston-0}\\ + \faIcon{linkedin} + \href{https://www.linkedin.com/in/ahuston0}{linkedin.com/in/ahuston0} + \end{flushleft} - \begin{flushright} - \href{tel:848-210-1300}{(848) 210-1300}\\ - \href{mailto:{aliceghuston@gmail.com}}{aliceghuston@gmail.com} - \end{flushright} - \end{multicols} + \begin{flushright} + \href{tel:848-210-1300}{(848) 210-1300}\\ + \href{mailto:{aliceghuston@gmail.com}}{aliceghuston@gmail.com} + \end{flushright} + \end{multicols} \end{center} - %-----------EDUCATION----------- \vspace{-1.5em} \section{Education} @@ -127,19 +130,21 @@ \vspace{-8pt} \begin{multicols}{2} -\small{ -\textbf{Languages}{: C/C++, Python, Java, Bash, Typescript} \\ -\textbf{Frameworks}{: Hadoop, Airflow, Kubernetes, Docker, OpenCV} \\ -\textbf{OS}{: NixOS, RHEL 8, Debian, Raspberry Pi OS, Ubuntu Server, Windows} \\ -\textbf{Tools}{: LaTeX, SQL, ROS, OpenGL} -} + \small{ + \textbf{Languages}{: C/C++, Python, Java, Bash, Typescript} \\ + \textbf{Frameworks}{: Hadoop, Airflow, Kubernetes, Docker, OpenCV} \\ + \textbf{Databases/Lakehouses}{: Starburst, Iceberg, Hive, + CockroachDB, OracleDB }\\ + \textbf{OS}{: NixOS, RHEL 8, Debian, Ubuntu Server, Windows} \\ + \textbf{Tools}{: LaTeX, Terraform, SQL, OpenGL} + } -\columnbreak + \columnbreak -\small{ -\textbf{AWS Certified Solutions Architect - Associate} \\ -Amazon Web Services, Mar. 2024 -} + \small{ + \textbf{AWS Certified Solutions Architect - Associate} \\ + Amazon Web Services, Mar. 2024 + } \end{multicols} %-----------EXPERIENCE----------- @@ -149,40 +154,58 @@ Amazon Web Services, Mar. 2024 {Software Engineer II}{Jan. 2025 -- Present} {JPMorgan Chase}{Jersey City, NJ} \resumeItemListStart -\resumeItem{Created configurable data ingestion framework for automated data refinement and movement for hybrid data lake} -\resumeItem{Architected and implemented an orchestration system based on Apache airflow for both event-based and SLA-based data ingestion} -\resumeItem{Led weekly office hour sessions to demonstrate and assist with onboarding and configuring new datasets} -\resumeItem{Trained a team of developers to support the custom frameworks for use across multiple applications} -\resumeItem{Created helm charts for making platform services available and configurable to other teams } +\resumeItem{Created configurable data ingestion framework for +automated data refinement and movement for hybrid data lake} +\resumeItem{Architected and implemented an orchestration system based +on Apache airflow for both event-based and SLA-based data ingestion} +\resumeItem{Led weekly office hour sessions to demonstrate and assist +with onboarding and configuring new datasets} +\resumeItem{Trained a team of developers to support the custom +frameworks for use across multiple applications} +\resumeItem{Created helm charts for making platform services +available and configurable to other teams } \resumeItemListEnd -%% create a new resume item below for a software engineering job at JPMorgan Chase - +%% create a new resume item below for a software engineering job at +% JPMorgan Chase \resumeSubheading {Site Reliability Engineer}{Jul. 2022 -- Jan. 2025} {JPMorgan Chase}{Jersey City, NJ} \resumeItemListStart \resumeItem{Supported 30 applications} -\resumeItem{SME for Hadoop data lake, means additional support for tableau dashboards, kubernetes applications, cloud foundry applications, maintaining dremio instance, S3 compatible object store} -\resumeItem{SME for Linux systems, Networking (firewalls, load balancers, etc.), Hadoop} -\resumeItem{Led toil reduction and noisy alert reduction across our applications} -\resumeItem{Led onboarding and standardization efforts for observability tooling} -\resumeItem{Fully automated disaster recovery procedures across a subset of our applications} -\resumeItem{Automated copy, validation of data, and merging of across Hadoop lakes (72 hour effort reduction)} +\resumeItem{SME for Hadoop data lake, means additional support for + Tableau dashboards, Kubernetes applications, cloud foundry +applications, maintaining dremio instance, S3 compatible object store} +\resumeItem{SME for Linux systems, Networking (firewalls, load +balancers, etc.), Hadoop} +\resumeItem{Led toil reduction and noisy alert reduction across our +applications} +\resumeItem{Led onboarding and standardization efforts for +observability tooling} +\resumeItem{Fully automated disaster recovery procedures across a +subset of our applications} +\resumeItem{Automated copy, validation of data, and merging of across +Hadoop lakes (72 hour effort reduction)} \resumeItemListEnd \resumeSubheading {Software Development Intern}{Dec. 2020 -- May 2022} {Stevens Institute of Technology}{(Remote) Hoboken, NJ} \resumeItemListStart -\resumeItem{Led a team of student interns to develop \href{https://github.com/StevensDeptECE/GrailGUI}{\textbf{Grail}}, an \textbf{OpenGL}-based graphics API and browser engine} -\resumeItem{Ported \textbf{C++} networking functionality on \textbf{Linux} to \textbf{Windows} using \textbf{Winsock}} -\resumeItem{Added support for \textbf{ESRI Shapefiles} to draw and animate maps through rendering engine} -\resumeItem{Improved XDL Type system, a custom standard similar to CORBA, to send and receive statically-typed data} +\resumeItem{Led a team of student interns to develop + \href{https://github.com/StevensDeptECE/GrailGUI}{\textbf{Grail}}, an +\textbf{OpenGL}-based graphics API and browser engine} +\resumeItem{Ported \textbf{C++} networking functionality on +\textbf{Linux} to \textbf{Windows} using \textbf{Winsock}} +\resumeItem{Added support for \textbf{ESRI Shapefiles} to draw and +animate maps through rendering engine} +\resumeItem{Improved XDL Type system, a custom standard similar to +CORBA, to send and receive statically-typed data} \resumeItemListEnd -% Removing this experience as it is not as relevant to the software engineering positions I am applying for +% Removing this experience as it is not as relevant to the software +% engineering positions I am applying for % and the work was not as technical as my other experiences %\resumeSubheading %{IT R\&D Project Management Intern}{Jun. 2020 -- Aug. 2020} @@ -191,25 +214,33 @@ Amazon Web Services, Mar. 2024 %\resumeItem{Led meetings with potential vendors for an upcoming project} %\resumeItem{Gathered requirements from past projects and potential users} %\resumeItem{Collected and processed data to narrow down potential vendors and -% viable products} -%\resumeItem{Resolved pre-testing issues with setup and application requirements} +% viable products} +%\resumeItem{Resolved pre-testing issues with setup and application +% requirements} %\resumeItemListEnd \resumeSubheading {Research Intern}{Jun. 2019 -- Dec. 2019} {Maritime Security Center}{Hoboken, NJ} \resumeItemListStart -\resumeItem{Created an image classification system with \textbf{OpenCV} to filter out noise and detect buoys in a \textbf{ROS/Gazebo} simulation} -\resumeItem{Added mapping functionality to plot obstacles onto a 2D map generated by \textbf{OctoMap}} -\resumeItem{Optimized the image classification and mapping frameworks to improve reliability in navigation} +\resumeItem{Created an image classification system with + \textbf{OpenCV} to filter out noise and detect buoys in a +\textbf{ROS/Gazebo} simulation} +\resumeItem{Added mapping functionality to plot obstacles onto a 2D +map generated by \textbf{OctoMap}} +\resumeItem{Optimized the image classification and mapping frameworks +to improve reliability in navigation} \resumeItemListEnd -% Removing this experience as it is not as relevant to the software engineering positions I am applying for and the work was not as technical as my other experiences +% Removing this experience as it is not as relevant to the software +% engineering positions I am applying for and the work was not as +% technical as my other experiences %\resumeSubheading %{Research Intern}{Jul. 2018 -- Aug. 2018} %{Rutgers School of Engineering}{Piscataway, NJ} %\resumeItemListStart -%\resumeItem{Used piezoelectric materials to create and detect mechanical waves from \textbf{Arduino} microcontrollers} +%\resumeItem{Used piezoelectric materials to create and detect +% mechanical waves from \textbf{Arduino} microcontrollers} %\resumeItem{Detected different mediums based on a mechnical wave's travel time} %\resumeItemListEnd @@ -218,31 +249,42 @@ Amazon Web Services, Mar. 2024 % Certifications moved to Technical Skills & Certifications section above -\section{Projects} -\resumeSubHeadingListStart -\resumeProjectHeading{SwitchForward}{Jun. 2020 -- Aug. 2020} -\resumeItemListStart -\resumeItem{A \textbf{Python}-based Telegram bot to send stock updates for the Nintendo Switch during a supply shortage} -\resumeItem{Used the Gmail API to receive and parse emails from a Google Group tracking Nintendo Switch stock} -\resumeItem{Sent updates to a Telegram announcements channel used by \textbf{5-10} users} -\resumeItemListEnd - -\resumeProjectHeading{Autonomous Robot}{Aug. 2018 -- Dec. 2018} -\resumeItemListStart -\resumeItem{An \textbf{Arduino}-based robot designed to navigate through a maze} -\resumeItem{Primarily worked on pathplanning and control in a dynamic setting} -\resumeItem{Implemented basic error-correction to account for drift during navigation} -\resumeItemListEnd - -% Removing this project as it is not as relevant to the software engineering positions I am applying for -% and the work was not as technical as my other experiences -%\resumeProjectHeading{Cost-effective Road Anomaly Locator}{Sep. 2016 -- May. 2018} +%\section{Projects} +%\resumeSubHeadingListStart +%\resumeProjectHeading{SwitchForward}{Jun. 2020 -- Aug. 2020} %\resumeItemListStart -%\resumeItem{Designed an affordable methodology for implementing and monitoring a unit to detect potholes and other damaging road anomalies with \textbf{65\%} accuracy ($p<0.05$)} -%\resumeItem{Assembled and tested units for to collect data and demonstrate effectiveness of the unit} -%\resumeItem{Ran several tests and did statistical analysis on the resulting data} +%\resumeItem{A \textbf{Python}-based Telegram bot to send stock +% updates for the Nintendo Switch during a supply shortage} +%\resumeItem{Used the Gmail API to receive and parse emails from a +% Google Group tracking Nintendo Switch stock} +%\resumeItem{Sent updates to a Telegram announcements channel used by +% \textbf{5-10} users} +%\resumeItemListEnd +% +%\resumeProjectHeading{Autonomous Robot}{Aug. 2018 -- Dec. 2018} +%\resumeItemListStart +%\resumeItem{An \textbf{Arduino}-based robot designed to navigate +% through a maze} +%\resumeItem{Primarily worked on pathplanning and control in a dynamic setting} +%\resumeItem{Implemented basic error-correction to account for drift +% during navigation} %\resumeItemListEnd +% Removing this project as it is not as relevant to the software +% engineering positions I am applying for +% and the work was not as technical as my other experiences +%\resumeProjectHeading{Cost-effective Road Anomaly Locator}{Sep. 2016 +% -- May. 2018} +%\resumeItemListStart +%\resumeItem{Designed an affordable methodology for implementing and +% monitoring a unit to detect potholes and other damaging road +% anomalies with \textbf{65\%} accuracy ($p<0.05$)} +%\resumeItem{Assembled and tested units for to collect data and +% demonstrate effectiveness of the unit} +%\resumeItem{Ran several tests and did statistical analysis on the +% resulting data} +%\resumeItemListEnd + +%\resumeSubHeadingListEnd -\resumeSubHeadingListEnd \end{document}