diff --git a/resume-openfont.cls b/resume-openfont.cls index 5cecc83..01d6bf6 100644 --- a/resume-openfont.cls +++ b/resume-openfont.cls @@ -71,12 +71,7 @@ \newcommand{\minorSection}[1]{\color{subheadings}\raggedright\scshape\customRalewayMedium\fontsize{11pt}{12pt}\selectfont{#1}\normalfont} % Project command -\newcommand{\Project}[2]{ -\runsubsection{ -\href{#2}{#1} -} - \hfill -} +\newcommand{\Project}[2]{\runsubsection{\href{#2}{\underline{#1}}}\hfill} % Underlined link command \newcommand{\underlinedLink}[2]{\underline{\href{#1}{#2}}} diff --git a/resume.tex b/resume.tex index 8f80097..04e3032 100644 --- a/resume.tex +++ b/resume.tex @@ -54,7 +54,7 @@ \small \href{mailto:\yourEmail}{\underline{\yourEmail}} $|$ \href{tel:\yourPhoneRaw}{\underline{\yourPhonePretty}} $|$ \href{https://www.linkedin.com/in/\linkedInUserName}{\underline{linkedIn/\linkedInUserName}} $|$ \href{https://github.com/\githubUserName}{\underline{github/\githubUserName}} - % $|$ \href{\yourWebsiteLink}{\underline{\yourWebsite}} + $|$ \href{\yourWebsiteLink}{\underline{\yourWebsite}} \end{center} \input{sections/education} diff --git a/sections/projects.tex b/sections/projects.tex index c9129b4..b667bd0 100644 --- a/sections/projects.tex +++ b/sections/projects.tex @@ -2,16 +2,24 @@ \projectHeading{Real-time Shadow Simulator}{https://github.com/MichaelMBradley/perlin-shadows}{C++, OpenGL} \begin{bullets} - \item this was fun :3 % TODO: Fill out + \item Built an OpenGL renderer in C++ that could cast real-time shadows on over 130M vertices + \item Implemented a custom Perlin noise generator optimized to generate tiles in parallel + \item Created lighting solution that scaled as needed so the renderer was limited only by VRAM + \item Optimized matrix and vector operations with the GLM library \end{bullets} -% TODO: Mention https://github.com/MichaelMBradley/nbody ? +\projectHeading{N-Body M-Dimensional Gravitation Simulator}{https://github.com/MichaelMBradley/nbody}{Python, NumPy} +\begin{bullets} + \item Implemented time-stepped gravity simulations over N bodies in 2 or 3 dimensions + \item Set up functions such that an arbitrary number of dimensions could be used (visualization only for 2D/3D) + \item Found initial conditions for a number of somewhat stable configurations of up to 8 bodies +\end{bullets} -\projectHeading{Electronic Holiday Card Distribution}{https://github.com/MichaelMBradley/holidaycards2022}{JavaScript, HTML5, CSS3} +\projectHeading{Electronic Holiday Card Distribution}{https://github.com/MichaelMBradley/holidaycards2022}{JavaScript, HTML, CSS} \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 Used JavaScript APIs to encrypt the messages to ensure they were only read by the intended recipient + \item Integrated the \href{https://p5js.org}{\underline{p5.js}} graphics library to generate unique assets and animated backgrounds \item Implemented a limited set of markdown functionality with regex replacement \end{bullets} diff --git a/sections/skills.tex b/sections/skills.tex index c54943e..599988b 100644 --- a/sections/skills.tex +++ b/sections/skills.tex @@ -1,13 +1,23 @@ \section{Skills} +% TODO: Remove any information that's a duplicate of something previously mentioned? +\skillHeading{C, C++ (OpenGL)} +\begin{bullets} + \item Analyzed threading model of Sensor Framework at BlackBerry QNX to fix existing lock-ups and avoid future bugs + \item Combined Phong lighting and real-time shadows to render Perlin noise on over 130M vertices at several FPS + \item Wrote a top-down video game for a group project on my own after my group mates dropped the course, got an A+ +\end{bullets} + \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 Took initiative to reduce the use of the \texttt{any} type at Emids, improving developer experience and catching more bugs \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} +\newpage % FIXME: Temp formatting + \skillHeading{Python} \begin{bullets} \item Refactored and type hinted a test automation library at Ross Video to fix bugs and improve developer efficiency @@ -20,23 +30,18 @@ % \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} +\skillHeading{POSIX (Linux, QNX)} \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 Worked with QNX APIs at BlackBerry to write efficient multi-threaded C code + \item Managed a VPS to serve my personal website and handle any miscellaneous hosting I want to do \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 GitLab to manage code and reviews at BlackBerry, and exported commits into legacy SVN repos \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 diff --git a/sections/work.tex b/sections/work.tex index 42f4173..81d05ad 100644 --- a/sections/work.tex +++ b/sections/work.tex @@ -2,40 +2,41 @@ \resumeHeading{Embedded Software Developer Student}{BlackBerry QNX}{Kanata, ON}{May 2024 - August 2024} \begin{bullets} - \item did some C i guess % TODO: Fill out + \item Created a generic abstraction on mutexes to make multi-threaded code simpler and safer + \item Tracked down memory leaks, race conditions, and deadlocks in interconnected multi-threaded C libraries + \item Refactored legacy C code to comply with MISRA standard, fixing code previously thought to be safe \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 Optimized UI components until updates to the underlying data created no perceptible lag + \item Created a filter component to dynamically update a list and calculate the appropriate zoom level to display 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} +\resumeHeading{Test Automation \& Software Developer}{Ross Video}{Hybrid - Kanata, ON}{May 2022 - March 2023} \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 Re-hired part-time after my co-op placement to research automated unit testing for an internal test 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 Created generic Jenkins CI/CD jobs to build and test products, enabling product teams to rapidly iterate features + \item Automated \href{https://www.zaproxy.org/}{\underline{OWASP ZAP}} and \href{https://www.tenable.com/products/tenable-io}{\underline{tenable.io}} security scans using an in-house test framework to access their Python APIs + \item Wrote Bash scripts to add features to Jenkins jobs like Microsoft Teams messages indicating build status \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 + \item Update processes for managing equipment in server racks to ensure consistent documentation and cleanliness \end{bullets} \hbox{} -\resumeHeading{Research Intern}{Carleton University}{Remote}{May 2021 – Aug 2021} +\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 Awarded the Dean's Summer Research Internship to work 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 + \item Used knowledge of data structures to write effecient Java code to create circle-packings and analyze geometry \end{bullets} %\hbox{}