Add past information, WIP current

This commit is contained in:
Michael Bradley 2024-07-14 00:10:50 -04:00
parent bf14459797
commit a01c28c8c5
7 changed files with 200 additions and 196 deletions

View file

@ -2,8 +2,7 @@
\ProvidesClass{resume-openfont}[2021/05/30 Abdullah's version] \ProvidesClass{resume-openfont}[2021/05/30 Abdullah's version]
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\DeclareOption{print}{\def\@cv@print{}} \DeclareOption{print}{\def\@cv@print{}}
\DeclareOption*{% \DeclareOption*{ \PassOptionsToClass{\CurrentOption}{article}
\PassOptionsToClass{\CurrentOption}{article}
} }
\ProcessOptions\relax \ProcessOptions\relax
\LoadClass{article} \LoadClass{article}
@ -11,7 +10,7 @@
%-------------------------------------------------------------- %--------------------------------------------------------------
% Package Imports % Package Imports
\RequirePackage[english]{babel} \RequirePackage[english]{babel}
% page setup % page setup
\RequirePackage{fancyhdr} \RequirePackage{fancyhdr}
% Set boundaries % Set boundaries
\RequirePackage[hmargin=1cm, vmargin=0.94cm]{geometry} \RequirePackage[hmargin=1cm, vmargin=0.94cm]{geometry}
@ -23,9 +22,7 @@
\RequirePackage{enumitem} \RequirePackage{enumitem}
% Using tables like the profile section % Using tables like the profile section
\RequirePackage{tabularx} \RequirePackage{tabularx}
% Used for the link symbol % Set up font
\RequirePackage{fontawesome}
% Set up font
\RequirePackage{lato-font} \RequirePackage{lato-font}
\RequirePackage{raleway-font} \RequirePackage{raleway-font}
% make underlying constants: credits to Alex Beattie for noticing and suggesting fix % make underlying constants: credits to Alex Beattie for noticing and suggesting fix
@ -34,35 +31,17 @@
% Reformatting default sections % Reformatting default sections
% section % section
\titlespacing{\section}{0pt}{0pt}{0pt} \titlespacing{\section}{0pt}{0pt}{0pt}
\titleformat{\section}{% \titleformat{\section}{\color{headings}% Using comments to allow us to split the command across multiple line
\color{headings}% Using comments to allow us to split the command across multiple line \scshape\customLatoLight\fontsize{16pt}{24pt}%first number is size, second number is space between lines
\scshape% \selectfont\raggedright\uppercase} {}{0em}{}
\customLatoLight%
\fontsize{16pt}{24pt}%first number is size, second number is space between lines
\selectfont%
\raggedright%
\uppercase%
} {}{0em}{}
% subsection % subsection
\titlespacing{\subsection}{0pt}{\parskip}{-\parskip} \titlespacing{\subsection}{0pt}{\parskip}{-\parskip}
\titleformat{\subsection}{% \titleformat{\subsection}{\color{subheadings}\customLatoBlack\fontsize{12pt}{12pt}\selectfont\bfseries\uppercase\normalfont% Normal font is used to reset the customization, so it doesn't bleed into anything else
\color{subheadings}%
\customLatoBlack%
\fontsize{12pt}{12pt}%
\selectfont%
\bfseries%
\uppercase%
\normalfont% Normal font is used to reset the customization, so it doesn't bleed into anything else
} {}{0em}{} } {}{0em}{}
% remove header footer stuff like page numbers % remove header footer stuff like page numbers
\newcommand{\resetHeaderAndFooter}{% \newcommand{\resetHeaderAndFooter}{\fancyhf{}\fancyfoot{}\renewcommand{\headrulewidth}{0pt}\renewcommand{\footrulewidth}{0pt}}
\fancyhf{}%
\fancyfoot{}%
\renewcommand{\headrulewidth}{0pt}%
\renewcommand{\footrulewidth}{0pt}%
}
%-------------------------------------------------------------- %--------------------------------------------------------------
% Formatting commands - commands to control spacing % Formatting commands - commands to control spacing
@ -81,58 +60,28 @@
%-------------------------------------------------------------- %--------------------------------------------------------------
% Subheadings command - create different types of heading % Subheadings command - create different types of heading
\newcommand{\runsubsection}[1]{% \newcommand{\runsubsection}[1]{\color{subheadings}\customLatoBlack\fontsize{12pt}{12pt}\selectfont\bfseries#1\normalfont}
\color{subheadings}%
\customLatoBlack%
\fontsize{12pt}{12pt}%
\selectfont%
\bfseries%
#1%
\normalfont}%
% Descriptors command % Descriptors command
\newcommand{\descript}[1]{% \newcommand{\descript}[1]{\color{subheadings}\raggedright\scshape\customRalewayMedium\fontsize{11pt}{13pt}\selectfont{#1}\normalfont}
\color{subheadings}%
\raggedright%
\scshape%
\customRalewayMedium%
\fontsize{11pt}{13pt}%
\selectfont{#1}%
\normalfont}
% Location command % Location command
\newcommand{\location}[1]{% \newcommand{\location}[1]{\color{headings}\raggedright\customRalewayMedium\fontsize{11pt}{13pt}\selectfont{#1}\normalfont}
\color{headings}%
\raggedright%
\customRalewayMedium%
\fontsize{11pt}{13pt}%
\selectfont{#1}%
\normalfont}
% Minor command - like even smaller sub section % Minor command - like even smaller sub section
\newcommand{\minorSection}[1]{% \newcommand{\minorSection}[1]{\color{subheadings}\raggedright\scshape\customRalewayMedium\fontsize{11pt}{12pt}\selectfont{#1}\normalfont}
\color{subheadings}%
\raggedright%
\scshape%
\customRalewayMedium%
\fontsize{11pt}{12pt}%
\selectfont{#1}%
\normalfont}
% Project command % Project command
\newcommand{\Project}[2]{ \newcommand{\Project}[2]{
\runsubsection{% \runsubsection{
\href{#2}{\uppercase{#1} \,\faExternalLink} \href{#2}{#1}
} }
\hfill \hfill
} }
% Underlined link command % Underlined link command
\newcommand{\underlinedLink}[2]{% \newcommand{\underlinedLink}[2]{\underline{\href{#1}{#2}}}
\href{#1}{\uline{#2}}%
}
% Command for table % Command for table
\newcommand{\singleItem}[2]{\normalsize{\textbf{#1} #2}} \newcommand{\singleItem}[2]{\normalsize{\textbf{#1} #2}}
\newcommand{\doubleItem}[4]{\singleItem{#1}{#2} & \singleItem{#3}{#4}} \newcommand{\doubleItem}[4]{\singleItem{#1}{#2} & \singleItem{#3}{#4}}
@ -143,23 +92,18 @@
%-------------------------------------------------------------- %--------------------------------------------------------------
% Bullet Lists with fewer gaps command % Bullet Lists with fewer gaps command
\newenvironment{bullets}{ \newenvironment{bullets}{
\vspace{-1mm} \vspace{-1mm}
\begin{itemize} \begin{itemize}
\itemsep1pt \itemsep1pt
\parskip1.5pt \parskip1.5pt
\parsep1.5pt \parsep1.5pt
}{ }{
\end{itemize} \end{itemize}
\vspace{-\topsep} \vspace{-\topsep}
} }
% Command for skill table % Command for skill table
\newenvironment{skillList}{% \newenvironment{skillList}{\noindent\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}ll}}{\end{tabular*}}
\noindent%
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}ll}%
}{%
\end{tabular*}%
}
%-------------------------------------------------------------- %--------------------------------------------------------------
% Customize built-in commands % Customize built-in commands

View file

@ -7,11 +7,10 @@
% Convenience command - make it easy to fill template % Convenience command - make it easy to fill template
% Create job position command. Parameters: company, position, location, when % Create job position command. Parameters: company, position, location, when
\newcommand{\resumeHeading}[4]{\runsubsection{\uppercase{#1}}\descript{ | #2}\hfill\location{#3 | #4}\fakeNewLine} \newcommand{\resumeHeading}[4]{\runsubsection{#1}\descript{ - #2}\hfill\location{#3 | #4}\fakeNewLine}
% Create education heading. Parameters: Name, degree, location, when % Create education heading. Parameters: Name, degree, location, when
\newcommand{\educationHeading}[4]{\runsubsection{#1}\hspace*{\fill} \location{#3 | #4}\\ \newcommand{\educationHeading}[4]{\runsubsection{#1} - \descript{#2}\hspace*{\fill} \location{#3 | #4}\\}
\descript{#2}\fakeNewLine}
% Create project heading. Parameters: Name, link, Tech stack % Create project heading. Parameters: Name, link, Tech stack
\newcommand{\projectHeading}[3]{\Project{#1}{#2} \newcommand{\projectHeading}[3]{\Project{#1}{#2}
@ -25,134 +24,49 @@
% Parameters: courses % Parameters: courses
\newcommand{\teacherAssistant}[1]{\textbf{Teacher Assistant (TA):} #1} \newcommand{\teacherAssistant}[1]{\textbf{Teacher Assistant (TA):} #1}
% Parameters: accomplishment, grade
\newcommand{\accomplishmentEntry}[2]{#1\hfill\location{Grade #2}\\}
\newcommand{\accomplishmentEntryUni}[2]{#1\hfill\location{#2}\\}
\newcommand{\hobby}[2]{#1\hfill\location{#2}\\}
\newcommand{\skillHeading}[1]{\textbf{#1}\\}
%-------------------------------------------------------------- %--------------------------------------------------------------
\begin{document} \begin{document}
%-------------------------------------------------------------- %--------------------------------------------------------------
% Profile % Profile
%-------------------------------------------------------------- %--------------------------------------------------------------
\newcommand{\yourName}{First Last} \newcommand{\yourName}{Michael Bradley}
% How you want it to show up on the resume % How you want it to show up on the resume
\newcommand{\yourWebsite}{abdullaharif.tech} \newcommand{\yourWebsite}{mmbradley.ca}
% vs how you want it to show up. If it's you can just replace "\yourWebsiteLink" with "yourWebsite" % vs how you want it to show up. If it's you can just replace "\yourWebsiteLink" with "yourWebsite"
\newcommand{\yourWebsiteLink}{https://abdullaharif.tech} \newcommand{\yourWebsiteLink}{https://www.mmbradley.ca}
\newcommand{\yourEmail}{someEmail@edu.com} \newcommand{\yourEmail}{michaelmbrad@gmail.com}
\newcommand{\yourPhone}{1-234-567-890} \newcommand{\yourPhonePretty}{(647) 852-9696}
\newcommand{\githubUserName}{aarif123456} \newcommand{\yourPhoneRaw}{+16478529696}
\newcommand{\linkedInUserName}{abdullaharif98} \newcommand{\githubUserName}{MichaelMBradley}
\newcommand{\linkedInUserName}{michaelmbradley}
% An alternate profile section
% \alignProfileTable
% \begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r}
% \ralewayBold{\href{\yourWebsiteLink}{\Large \yourName}} &
% Email : \href{mailto:\yourEmail}{\yourEmail}
% \\
% \href{https://github.com/\githubUserName}{GitHub://\githubUserName} &
% Mobile : \yourPhone
% \\
% \href{https://www.linkedin.com/in/\linkedInUserName}{LinkedIn://\linkedInUserName} & Website : \href{\yourWebsiteLink}{\yourWebsite}
% \\
% \end{tabular*}
\begin{center} \begin{center}
\Huge \scshape \latoRegular{\yourName} \\ \vspace{1pt} \Huge \scshape \latoRegular{\yourName} \\ \vspace{1pt}
\small \href{mailto:\yourEmail}{\underline{\yourEmail}} $|$ \yourPhone $|$ \small \href{mailto:\yourEmail}{\underline{\yourEmail}} $|$ \href{tel:\yourPhoneRaw}{\underline{\yourPhonePretty}} $|$
\href{https://www.linkedin.com/in/\linkedInUserName}{\underline{linkedIn/\linkedInUserName}} $|$ \href{https://www.linkedin.com/in/\linkedInUserName}{\underline{linkedIn/\linkedInUserName}} $|$
\href{https://github.com/\githubUserName}{\underline{github/\githubUserName}} \href{https://github.com/\githubUserName}{\underline{github/\githubUserName}}
% $|$ \href{\yourWebsiteLink}{\underline{\yourWebsite}} % $|$ \href{\yourWebsiteLink}{\underline{\yourWebsite}}
\end{center} \end{center}
%-------------------------------------------------------------- \input{sections/education}
% Education
%--------------------------------------------------------------
\section{Education}
% Put school first and degree second if your school is reputable
\educationHeading{BSc. Honours Computer Science With Software Engineering Specialization}{University of Windsor}{Windsor, ON}{Jun 2021}
\teacherAssistant{World Wide Web Information Systems Development}
% \courseWork{Data Structures and Algorithms; Operating Systems; Computer Security; Software Testing; Advanced Networking; Big Data Analytics}
\sectionsep \sectionsep
\input{sections/work}
%--------------------------------------------------------------
% Experience
%--------------------------------------------------------------
\section{Work Experience}
\resumeHeading{Amazon}{Software Development Engineer Intern}{Toronto, ON}{May 2020 Aug 2020}
\begin{bullets}
\item Designed and implemented a dashboard using \textbf{React} and \textbf{TypeScript} to visualize data stored in \textbf{DynamoDB}, decreasing time to understand delivery driver work sessions by over 10 times.
% \item Here is another bullet that I might choose to uncomment for some jobs
\item Ensured only authorized employees have access to the application by creating an \textbf{AWS Lambda@Edge} function to intercept and sign valid requests.
\item Devised and deployed the infrastructure in TypeScript through \textbf{AWS CDK}, then created efficient algorithms to process data from a custom \textbf{REST API}, so it could scale to handle millions of deliveries.
\item Setup a CI/CD pipeline and exceeded requirements in each stage, which lead to the application being pushed to production.
\end{bullets}
\sectionsep \sectionsep
\input{sections/skills}
\resumeHeading{University of Windsor}{Research Assistant (RA)}{Windsor, ON}{Feb 2020 - May 2020}
\begin{bullets}
\item Developed a Personal Health Record (PHR) system in \textbf{\href{https://spring.io/}{Spring}} based on the theoretical model outlined in \underlinedLink{https://research.library.mun.ca/11920}{Mitu Kumar's thesis}.
\item Applied the \href{https://link.springer.com/chapter/10.1007/978-3-642-10838-9\_23}{mCP-ABE} encryption scheme using the \href{http://gas.dia.unisa.it/projects/jpbc/}{JPBC} library, so patients have fine-grained access control over their health records with the ability to instantly revoke access.
\end{bullets}
\sectionsep \sectionsep
\input{sections/projects}
\resumeHeading{JoaTu}{Software Engineer Intern}{Montreal, QC}{Dec 2018 May 2019}
\begin{bullets}
\item Rewrote legacy \textbf{Django code} in \textbf{Ruby in Rails} and refactored it to make the system more extensible.
\item Created \textbf{UML} diagrams and documented where features were implemented, to make the codebase more maintainable.
\end{bullets}
\sectionsep \sectionsep
\input{sections/accomplishments}
%-------------------------------------------------------------- \newpage
% Projects
%--------------------------------------------------------------
\section{Projects}
\projectHeading{Automated Spear-Phisher}{https://github.com/Aarif123456/Fb-Twitter-gui}{Python, PySpark, Selenium, Apache, NLP, Big Data} \end{document}
A security research tool to send targeted spam messages on either Facebook or Twitter. The program analyzes the feed of its target to increase the effectiveness of the messages.\\
\sectionsep
\projectHeading{Image Repository}{https://github.com/Aarif123456/image\_repository}{Java, PHP, React, TypeScript, Maven, GCP, MySQL}
A full-stack image repository, where users can store their files. Created a GCP cloud function to implement \href{https://www.cs.utexas.edu/~bwaters/publications/papers/cp-abe.pdf}{CP-ABE} encryption and used it to ensure files are secure at rest.\\
\sectionsep
\projectHeading{Biometric Dynamic Keystroke Spoofer}{https://github.com/Aarif123456/KeystrokeDynamicsSpoofer}{Python, Object-Oriented Design, CyberSecurity}
A program that authenticates users based on their typing patterns. And a spoofer that uses the genetic algorithm to mimic the user's typing pattern.
\sectionsep
\projectHeading{Distributed Key-Value store}{https://github.com/Aarif123456/Distributed-DB}{Java, Distributed System, Computer Networks, Concurrency}
A distributed key-value store which automatically replicates data in the background while the user manages their data. Implemented a custom P2P protocol to maximize fault tolerance and scalability.\\
\sectionsep
\projectHeading{War of Weebles}{https://github.com/Aarif123456/GoalOrientedBehaviour}{C\#, Unity, Concurrency, Artificial Intelligence}
A capture-the-flag-styled shooting game composed of AI-controlled players. The agents change their goals based on various factors, such as their health, current weapon, their personality and what they see.\\
\sectionsep
% Example using bullets and dates
% \projectHeadingWithDate{Hogwart\textquotesingle{}s Library Management System}{https://github.com/Aarif123456/hogwartslibrary}{PHP, JavaScript, HTML, CSS, MySQL}{Aug 2019}
% \begin{bullets}
% \item A full-stack library management system, where users can manage books and holds on their accounts. Users can search the library\textquotesingle{}s catalogue, which has every book mentioned in the Harry Potter series. The system distinguishes between 4 users. For examples, librarians who can also check or return books on behalf of users.\\
% \end{bullets}
% \sectionsep
%--------------------------------------------------------------
% Skills
%--------------------------------------------------------------
\section{Skills}
\begin{skillList}
\singleItem{Languages:}{Java, C++, Python, C\#, PHP, Prolog, Bash, C, Racket, SQL}
\\
\singleItem{Web Development:}{React, JavaScript, TypeScript, HTML/CSS}
\\
\singleItem{Technology:}{Git, AWS, GCP, Azure, Docker, Unity, Apache, \LaTeX, MongoDB, DynamoDB, Neo4j}
\end{skillList}
% A more concise alternate
% \begin{skillList}
% \doubleItem{Languages:}{Java, C++, Python, C\#, PHP, Prolog, Bash, C, Racket}%
% {Databases:}{SQL, MongoDB, Neo4j, DynamoDB}
% \\
% \doubleItem{Web Development:}{JavaScript, TypeScript, React, HTML/CSS}
% {Technology:}{Git, AWS, GCP, Azure, Docker, \LaTeX}%
% \end{skillList}
\end{document}

View file

@ -0,0 +1,24 @@
\section{Accomplishments}
\educationHeading{University}{Carleton University}{Ottawa, ON}{Sep 2020 - Present}
\accomplishmentEntryUni{Nominated for Co-op of the Year}{December 2023}
\hbox{}
\educationHeading{High School}{Riverdale Collegiate Institute}{Toronto, ON}{Sep 2015 - Jun 2020}
\accomplishmentEntry{Math club president}{12}
%\accomplishmentEntry{Choir section leader}{12}
\accomplishmentEntry{High honour roll}{12}
\accomplishmentEntry{Honour roll}{9-11}
\accomplishmentEntry{First place in the OAPT Physics contest}{11}
%\accomplishmentEntry{Captain and MVP of the Riverdale Curling Team}{9-12}
% \hbox{}
% \educationHeading{Air Cadets}{246 Squadron}{Toronto, ON}{Sep 2013 - Jun 2020}
% \accomplishmentEntry{Promoted to Warrant Officer First Class, the highest rank a cadet can achieve}{12}
% \accomplishmentEntry{Received the Lord Strathcona Medal, the highest non-bravery medal a cadet can achieve}{11}
% \accomplishmentEntry{Advanced to the provincial Cadet Orienteering Competition in Ottawa}{11}
% \accomplishmentEntry{Received the award for Outstanding Service to the Squadron}{10}
% \accomplishmentEntry{Organized and managed a weekend Field Training Exercise}{10}
% \accomplishmentEntry{Given the 246 Squadron Cadet of the Year award}{9}

7
sections/education.tex Normal file
View file

@ -0,0 +1,7 @@
\section{Education}
\educationHeading{Bachelor of Computer Science (Honours)}{Carleton University}{Ottawa, ON}{Sep 2020 - Dec 2024}
Accepted with \$3000/year scholarship. Achieved a major CGPA of 11.58/12 (A+).
Artificial Intelligence and Machine Learning stream.

23
sections/projects.tex Normal file
View file

@ -0,0 +1,23 @@
\section{Personal Projects}
\projectHeading{Real-time Shadow Simulator}{https://github.com/MichaelMBradley/perlin-shadows}{C++, OpenGL}
\begin{bullets}
\item this was fun :3 % TODO: Fill out
\end{bullets}
% TODO: Mention https://github.com/MichaelMBradley/nbody ?
\projectHeading{Electronic Holiday Card Distribution}{https://github.com/MichaelMBradley/holidaycards2022}{JavaScript, HTML5, CSS3}
\begin{bullets}
\item Created a website from scratch (deployed using GitHub Pages) to distribute holiday cards to friends and family
\item Used JavaScript APIs to encrypt the messages using 256-bit AES-CTR to ensure messages were only read by the intended recipient
\item Used a graphics library (\href{https://p5js.org}{p5.js}) to generate unique assets and animated backgrounds
\item Implemented a limited set of markdown functionality with regex replacement
\end{bullets}
\projectHeading{Video-Game Market Web Scraper}{https://github.com/MichaelMBradley/CSGOCaseValues}{Python, MatPlotLib}
\begin{bullets}
\item Developed program to retrieve and analyze Steam Market data to determine the expected value of opening a lootbox in CS:GO
\item Gathered analysis by scraping relevant websites, allowing analysis to be done over months-worth of daily data
\item Found meaningful ways to represent data to show profitability over time, proving them to be a bad investment
\end{bullets}

43
sections/skills.tex Normal file
View file

@ -0,0 +1,43 @@
\section{Skills}
\skillHeading{TypeScript}
\begin{bullets}
\item Integrated with Google Maps APIs to build a map component to filter and display a list of clinics
\item Profiled and improved an un-optimized list component until updating the underlying data did not create lag
\item Took initiative to reduce the use of the \texttt{any} type at Emids, improving developer experience and catching more bugs during compilation
\item Created a pure JavaScript single-page site from scratch to securely deliver holiday messages to friends and family, including a unique generative design for each recipient and partial Markdown support
\end{bullets}
\skillHeading{Python}
\begin{bullets}
\item Refactored and type hinted a test automation library at Ross Video to fix bugs and improve developer efficiency
\item Researched automatically generating unit tests to save developer time and improve the stability of the codebase at Ross Video
\item Analyzed scraped data from websites to determine profitability of loot boxes to demonstrate how poor an investment it is to open them
\end{bullets}
% \skillHeading{Java}
% \begin{bullets}
% \item Applied knowledge of data structures to generate a circle-packing of an arbitrary shape, then induced a series of trees over the circle and traversed the trees to create a polycurve
% \end{bullets}
% TODO: Make C a separate category or add to C++?
\skillHeading{C++}
\begin{bullets}
\item Single-handedly wrote a top-down video game in C++ with OpenGL graphics for group project after my group mates dropped the course due to workload
\end{bullets}
% TODO: Mention VPS
\skillHeading{Linux}
\begin{bullets}
\item Set up a custom Arch Linux installation for my daily personal use over the last 2 years
\item Maintained the system and researched solutions when my extensive customization broke it
\item Scripted with Bash to add functionality to Jenkins at Ross Video
\end{bullets}
% TODO: Include info from BBQNX (SVN?)
\skillHeading{Git}
\begin{bullets}
\item Used Azure DevOps to develope and collaborate on a monorepo at Emids
\item Used Gerrit to conduct and receive code reviews on several Git repositories at Ross Video
\item Managed personal projects and hosted custom websites on GitHub
\end{bullets}

49
sections/work.tex Normal file
View file

@ -0,0 +1,49 @@
\section{Work Experience}
\resumeHeading{Embedded Software Developer Student}{BlackBerry QNX}{Kanata, ON}{May 2024 - August 2024}
\begin{bullets}
\item did some C i guess % TODO: Fill out
\end{bullets}
\hbox{}
\resumeHeading{Software Developer}{Emids}{Remote}{May 2023 - August 2023}
\begin{bullets}
\item Analysed and optimised a UI component until updates to the underlying data created no perceptible lag
\item Created a filter component that would dynamically update a list of clinics and calculate the appropriate zoom level to display the clinics on a map
\item Added features to the back-end of an active healthcare solution using an in-house functional language
\item Reworked existing InQ Telehealth UI to accommodate new settings for clinicians to enhance clinic discoverability
\end{bullets}
\hbox{}
\resumeHeading{Test Automation \& Software Developer}{Ross Video}{Hybrid - Kanata, ON}{May 2022 - December 2022}
\begin{bullets}
\item Automated runs of the \href{https://www.zaproxy.org/}{OWASP ZAP} and \href{https://www.tenable.com/products/tenable-io}{tenable.io} security scans by accessing their Python APIs with scripts using an in-house testing framework
\item Revamped an internal test automation codebase by single-handedly refactoring fifteen thousand of lines of Python to standardize the return types of the internal library functions, add type hints, and improve readability
\item Created custom generic CI/CD jobs in Jenkins to build and test products, enabling the product teams to quickly build, test, and release new features
\item Wrote Bash scripts to add features to Jenkins jobs like sending a message in Microsoft Teams indicating the success or failure of a build
\item Rewrote an internal SharePoint site to improve readability and make it easier to search for specific documentation
\item Update processes for managing equipment in the server racks to ensure consistent documentation and maintain cleanliness
\item Re-hired part-time after 8 month co-op placement to research unit testing and architectural changes to an internal automated testing framework
\end{bullets}
\hbox{}
\resumeHeading{Research Intern}{Carleton University}{Remote}{May 2021 Aug 2021}
\begin{bullets}
\item Awarded the Dean's Summer Research Internship
\item Worked with the Graphics, Imaging, and Games Lab
\item Wrote a report using \LaTeX\hbox{} on generating polycurves by circle-packing polylines to act as a reference for future implementation in upper year student projects
\item Efficiently wrote code in Java with knowledge of data structures to create circle-packings and analyze input geometry
\end{bullets}
%\hbox{}
%\educationHeading{Founder, Drone Operator}{Kawartha Aerial Video}{Peterborough, ON}{2016-2018}
%\begin{bullets}
% \item Created a small business to take drone photos and videos for realtors and property owners
% \item Created and distributed marketing materials to realtors and cottagers to acquire new customers
% \item Managed budget to ensure the revenue was properly accounted, resulting in the business fully paying back its initial investment
% \item Managed client engagement and expectation, resulting in overall satisfaction and quick turn-around times
%\end{bullets}