commit 10783ee1c293a1ac3f21cbb33f45988dc8ab0448 Author: Michael Bradley Date: Sat Jul 13 21:25:32 2024 -0400 Fork of github.com/Aarif123456/modern-deedy commit 07c724f diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..5c304d1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..2d2a558 --- /dev/null +++ b/README.md @@ -0,0 +1,74 @@ +# Modern Deedy + +[![Apache license](https://img.shields.io/github/license/Aarif123456/modern-deedy?style=for-the-badge)](http://www.apache.org/licenses/) + +A one-page, single-column fork of [Deedy](https://github.com/deedy/Deedy-Resume), originally created in [resumake.io](https://resumake.io). + +## Motivation 🤔 + +I love the way [Jake's Resume](https://www.overleaf.com/latex/templates/jakes-resume/syzfjbzwjncs) is laid out, but it feels overused. Deedy's resume looks beautiful, but the two-column approach feels outdated. So this is template is my attempt to combine the things I love about each template. Also, I wanted to make it easy to customize the look of the resume. So, I set it up so you can download fonts from [google fonts](https://fonts.google.com/) and quickly give your resume a new look. + +## Preview :eyes: + +![Preview](https://i.imgur.com/92v0sxg.png) + +## Quick Start :rocket: + +You can build it locally on your machine with `xelatex` or open the project in overleaf. I recommend the latter. + +### Steps to open in Overleaf + +[Overleaf template](https://www.overleaf.com/latex/templates/modern-deedy/cxtjgrmpsrvh) + +If the template gives you an error after opening. Then you will need to change the compiler. + +![Change Compiler](https://i.imgur.com/ypHmlbX.gif) + +Step 1 + +![Press Recompile](https://i.imgur.com/OPJ3DPp.gif) + +Step 2 + +## API details :gear: + +If you want to change the font just download the fonts and move the unzipped folder to the fonts folder. Then go to local-font.sty and change the font name and folder at the top folder. You can crtl+f `\newcommand{\fontFolder}` to find it faster. + +## Resume Tips :books: + +No resume template can turn into a resume with bad content into a good resume. So, here are some tips and resources to get you started. And, remember a good resume can only get you past the resume screen. So, you still need to learn to do well on the OA and interviews. + +1. Do shit, so you have things to put on your resume. + - Build projects (take classes with big projects) + - Learn multiple languages + - Contribute to open source + - Network + - Read [CTCI](https://www.amazon.ca/Cracking-Coding-Interview-Programming-Questions/dp/0984782850) for more tips. + +2. Learn how to write good bullet points. + - Try to turn your points into achievements. Think about your impact. [Guide](https://2by22.blog/overhaul-resume-highly-effective-tips/) + - Quantify where you can, but estimates are fine but avoid making up numbers + - Target your resume, make a giant resume that spans multiple pages, filled with all your accomplishment. Then comment out the bullet points, projects and/or experiences you won't use on your "main" resume. Then when you apply to a position, you can quickly adjust your resume to be more targeted. The 2-5 minutes this will take is well-spent. + - Avoid jargon + - Don't have any grammatical or spelling errors. I recommend using services like [Grammarly](https://www.grammarly.com/), [Hemingway editor](https://hemingwayapp.com/), [ProWritingAid](https://prowritingaid.com/) + +3. Stop optimizing for the ATS + - The truth about the ATS + - The ATS doesn't reject you, people do. Automated rejections are caused by knockout questions e.g. are u authorized to work in the US + - Ex-google re recruiter Amy Miller - looked at them by the date the application was submitted - so the advice here would be to apply quickly after job openings are posted ... + - Some recruiters rank by how well a candidate's resume matches the job description but this isn't common + - Actual resume prioritization goes more like this - referral -> locals -> no visa -> countries easy to get visa for -> everyone else + - Some companies have a minimum job description/resume match criteria - e.g. Taleo supports this but again this tends to be more of an exception than a rule + - Why ATS optimization feels like it helps + - Let's say a job gets filled - so you are no longer in the queue- your resume is still in the applicant tracking system + - Recruiters can search for keywords in the ATS - e.g ("Software Developer" AND ("Java" OR "C++" OR "Python") AND "Algorithm\*") + - A lot of recruiters tend to look at the job description before creating their search - better matches means you are more likely to hit up by recruiters during this search process -SO TAILORING UR RESUME STILL HELPS + - Note: not all recruiters are technically inclined. For example, they might not know something like C# and Java are hella similar. Some recruiters might legit just crtl+f keywords. + - but if ur resume seems too ATS optimized (e.g. keyword stuffing) a lot of recruiters will just toss ur resume + - References: + - An HR worker describes how they use the ATS: [Reddit](https://www.reddit.com/r/jobs/comments/cmezx2/ats_myths_and_facts_why_you_were_really_rejected/) + - Ex-google recruiter explaining the ATS: [YouTube](https://www.youtube.com/watch?v=U5K2F--rNe4&feature=youtu.be) + +- Where I got most of my info + - [The Tech Resume](https://thetechresume.com/) + - [The Google Resume](https://www.amazon.ca/Google-R%C3%A9sum%C3%A9-Prepare-Microsoft-Company/dp/151138459X) diff --git a/font-color.sty b/font-color.sty new file mode 100644 index 0000000..9853535 --- /dev/null +++ b/font-color.sty @@ -0,0 +1,12 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{font-color}[2021/05/30 Quick package to setup colour] + +%------------------------------------------------------ +% used to set the color of text +\RequirePackage[usenames,dvipsnames]{xcolor} + +%------------------------------------------------------ +% Color definitions +\definecolor{primary}{HTML}{2b2b2b} +\definecolor{headings}{HTML}{6A6A6A} +\definecolor{subheadings}{HTML}{333333} diff --git a/fonts/Lato/Lato-Black.ttf b/fonts/Lato/Lato-Black.ttf new file mode 100644 index 0000000..a4a924f Binary files /dev/null and b/fonts/Lato/Lato-Black.ttf differ diff --git a/fonts/Lato/Lato-BlackItalic.ttf b/fonts/Lato/Lato-BlackItalic.ttf new file mode 100644 index 0000000..d6f8945 Binary files /dev/null and b/fonts/Lato/Lato-BlackItalic.ttf differ diff --git a/fonts/Lato/Lato-Bold.ttf b/fonts/Lato/Lato-Bold.ttf new file mode 100644 index 0000000..b63a14d Binary files /dev/null and b/fonts/Lato/Lato-Bold.ttf differ diff --git a/fonts/Lato/Lato-BoldItalic.ttf b/fonts/Lato/Lato-BoldItalic.ttf new file mode 100644 index 0000000..8f9a50d Binary files /dev/null and b/fonts/Lato/Lato-BoldItalic.ttf differ diff --git a/fonts/Lato/Lato-Italic.ttf b/fonts/Lato/Lato-Italic.ttf new file mode 100644 index 0000000..49e9f2c Binary files /dev/null and b/fonts/Lato/Lato-Italic.ttf differ diff --git a/fonts/Lato/Lato-Light.ttf b/fonts/Lato/Lato-Light.ttf new file mode 100644 index 0000000..9c0a705 Binary files /dev/null and b/fonts/Lato/Lato-Light.ttf differ diff --git a/fonts/Lato/Lato-LightItalic.ttf b/fonts/Lato/Lato-LightItalic.ttf new file mode 100644 index 0000000..53b140b Binary files /dev/null and b/fonts/Lato/Lato-LightItalic.ttf differ diff --git a/fonts/Lato/Lato-Regular.ttf b/fonts/Lato/Lato-Regular.ttf new file mode 100644 index 0000000..33eba8b Binary files /dev/null and b/fonts/Lato/Lato-Regular.ttf differ diff --git a/fonts/Lato/Lato-Thin.ttf b/fonts/Lato/Lato-Thin.ttf new file mode 100644 index 0000000..0c599a0 Binary files /dev/null and b/fonts/Lato/Lato-Thin.ttf differ diff --git a/fonts/Lato/Lato-ThinItalic.ttf b/fonts/Lato/Lato-ThinItalic.ttf new file mode 100644 index 0000000..7db3a8c Binary files /dev/null and b/fonts/Lato/Lato-ThinItalic.ttf differ diff --git a/fonts/Raleway/Raleway-Bold.otf b/fonts/Raleway/Raleway-Bold.otf new file mode 100644 index 0000000..2f840b7 Binary files /dev/null and b/fonts/Raleway/Raleway-Bold.otf differ diff --git a/fonts/Raleway/Raleway-ExtraBold.otf b/fonts/Raleway/Raleway-ExtraBold.otf new file mode 100644 index 0000000..133552c Binary files /dev/null and b/fonts/Raleway/Raleway-ExtraBold.otf differ diff --git a/fonts/Raleway/Raleway-ExtraLight.otf b/fonts/Raleway/Raleway-ExtraLight.otf new file mode 100644 index 0000000..4ab05bb Binary files /dev/null and b/fonts/Raleway/Raleway-ExtraLight.otf differ diff --git a/fonts/Raleway/Raleway-Heavy.otf b/fonts/Raleway/Raleway-Heavy.otf new file mode 100644 index 0000000..63c952a Binary files /dev/null and b/fonts/Raleway/Raleway-Heavy.otf differ diff --git a/fonts/Raleway/Raleway-Light.otf b/fonts/Raleway/Raleway-Light.otf new file mode 100644 index 0000000..cb4ff4e Binary files /dev/null and b/fonts/Raleway/Raleway-Light.otf differ diff --git a/fonts/Raleway/Raleway-Medium.otf b/fonts/Raleway/Raleway-Medium.otf new file mode 100644 index 0000000..79786fe Binary files /dev/null and b/fonts/Raleway/Raleway-Medium.otf differ diff --git a/fonts/Raleway/Raleway-Regular.otf b/fonts/Raleway/Raleway-Regular.otf new file mode 100644 index 0000000..871e0f4 Binary files /dev/null and b/fonts/Raleway/Raleway-Regular.otf differ diff --git a/fonts/Raleway/Raleway-SemiBold.otf b/fonts/Raleway/Raleway-SemiBold.otf new file mode 100644 index 0000000..33d19f6 Binary files /dev/null and b/fonts/Raleway/Raleway-SemiBold.otf differ diff --git a/fonts/Raleway/Raleway-Thin.otf b/fonts/Raleway/Raleway-Thin.otf new file mode 100644 index 0000000..13a581d Binary files /dev/null and b/fonts/Raleway/Raleway-Thin.otf differ diff --git a/lato-font.sty b/lato-font.sty new file mode 100644 index 0000000..7ff2f1f --- /dev/null +++ b/lato-font.sty @@ -0,0 +1,51 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{lato-font}[2021/05/30 Quick package to use the Lato fonts] + +%------------------------------------------------------ +% Package Imports +% Set up fonts +\RequirePackage{fontspec,xltxtra,xunicode,fontenc} +% used to set the color of text +\RequirePackage{font-color} + +%------------------------------------------------------ +% Set up font options +\newcommand{\fontFolder}{fonts/Lato/} +\newcommand{\fontName}{Lato} + +%------------------------------------------------------ +% Command to select text +\newfontfamily{\customLatoThin}[Path = \fontFolder]{\fontName-Thin} +\newfontfamily{\customLatoLight}[Path = \fontFolder]{\fontName-Light} +\newfontfamily{\customLatoRegular}[Path = \fontFolder]{\fontName-Regular} +\newfontfamily{\customLatoBold}[Path = \fontFolder]{\fontName-Bold} +\newfontfamily{\customLatoBlack}[Path = \fontFolder]{\fontName-Black} + +\newfontfamily{\customLatoThinItalic}[Path = \fontFolder]{\fontName-ThinItalic} +\newfontfamily{\customLatoLightItalic}[Path = \fontFolder]{\fontName-LightItalic} +\newfontfamily{\customLatoItalic}[Path = \fontFolder]{\fontName-Italic} +\newfontfamily{\customLatoBoldItalic}[Path = \fontFolder]{\fontName-BoldItalic} +\newfontfamily{\customLatoBlackItalic}[Path = \fontFolder]{\fontName-BlackItalic} + +%------------------------------------------------------ +\newcommand{\latoThin}[1]{\customLatoThin\selectfont#1\normalfont} +\newcommand{\latoLight}[1]{\customLatoLight\selectfont#1\normalfont} +\newcommand{\latoRegular}[1]{\customLatoRegular\selectfont#1\normalfont} +\newcommand{\latoBold}[1]{\customLatoBold\selectfont#1\normalfont} +\newcommand{\latoBlack}[1]{\customLatoBlack\selectfont#1\normalfont} + +\newcommand{\latoThinItalic}[1]{\customLatoThinItalic\selectfont#1\normalfont} +\newcommand{\latoLightItalic}[1]{\customLatoLightItalic\selectfont#1\normalfont} +\newcommand{\latoItalic}[1]{\customLatoItalic\selectfont#1\normalfont} +\newcommand{\latoBoldItalic}[1]{\customLatoBoldItalic\selectfont#1\normalfont} +\newcommand{\latoBlackItalic}[1]{\customLatoBlackItalic\selectfont#1\normalfont} + + +%------------------------------------------------------ +% Set main fonts +\defaultfontfeatures{Mapping=tex-text} +% \setsansfont[Color=primary, Path = \fontFolder, BoldItalicFont=\fontName-Italic,BoldFont=\fontName-Regular,ItalicFont=\fontName-LightItalic]{\fontName-Light} +% \setsansfont[Color=primary, Path = \fontFolder, BoldItalicFont=\fontName-BoldItalic,BoldFont=\fontName-Bold,ItalicFont=\fontName-Italic]{\fontName-Regular} +\setmainfont[Color=primary, Path = \fontFolder, BoldItalicFont=\fontName-Italic,BoldFont=\fontName-Regular,ItalicFont=\fontName-LightItalic]{\fontName-Light} + +% \setmainfont[Color=primary, Path = \fontFolder, BoldItalicFont=\fontName-BoldItalic,BoldFont=\fontName-Bold,ItalicFont=\fontName-Italic]{\fontName-Regular} diff --git a/raleway-font.sty b/raleway-font.sty new file mode 100644 index 0000000..f93006a --- /dev/null +++ b/raleway-font.sty @@ -0,0 +1,48 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{raleway-font}[2021/05/30 Quick package to use Raleway fonts] + +%------------------------------------------------------ +% Package Imports +% Set up fonts +\RequirePackage{fontspec,xltxtra,xunicode,fontenc} +% used to set the color of text +\RequirePackage{font-color} + +%------------------------------------------------------ +% Set up font options +\newcommand{\@fontFolder}{fonts/Raleway/} +\newcommand{\@fontName}{Raleway} + +%------------------------------------------------------ +% Command to select text - organized by increasing thickness + +\newfontfamily{\customRalewayThin}[Path = \@fontFolder]{\@fontName-Thin} +\newfontfamily{\customRalewayExtraLight}[Path = \@fontFolder]{\@fontName-ExtraLight} +\newfontfamily{\customRalewayLight}[Path = \@fontFolder]{\@fontName-Light} + +\newfontfamily{\customRalewayRegular}[Path = \@fontFolder]{\@fontName-Regular} +\newfontfamily{\customRalewayMedium}[Path = \@fontFolder]{\@fontName-Medium} +\newfontfamily{\customRalewaySemiBold}[Path = \@fontFolder]{\@fontName-SemiBold} + +\newfontfamily{\customRalewayBold}[Path = \@fontFolder]{\@fontName-Bold} +\newfontfamily{\customRalewayExtraBold}[Path = \@fontFolder]{\@fontName-ExtraBold} +\newfontfamily{\customRalewayHeavy}[Path = \@fontFolder]{\@fontName-Heavy} + +%------------------------------------------------------ +\newcommand{\ralewayThin}[1]{\customRalewayThin\selectfont#1\normalfont} +\newcommand{\ralewayExtraLight}[1]{\customRalewayExtraLight\selectfont#1\normalfont} +\newcommand{\ralewayLight}[1]{\customRalewayLight\selectfont#1\normalfont} + +\newcommand{\ralewayRegular}[1]{\customRalewayRegular\selectfont#1\normalfont} +\newcommand{\ralewayMedium}[1]{\customRalewayMedium\selectfont#1\normalfont} +\newcommand{\SemiBold}[1]{\customRaleway\selectfont#1\normalfont} + +\newcommand{\ralewayBold}[1]{\customRalewayBold\selectfont#1\normalfont} +\newcommand{\ralewayExtraBold}[1]{\customRalewayExtraBold\selectfont#1\normalfont} +\newcommand{\ralewayHeavy}[1]{\customRalewayHeavy\selectfont#1\normalfont} + +%------------------------------------------------------ +% Set main fonts +\defaultfontfeatures{Mapping=tex-text} +\setsansfont[Scale=MatchLowercase, Path = \@fontFolder, BoldFont = \@fontName-SemiBold]{\@fontName-ExtraLight} +% \setmainfont[Color=primary, Path = \@fontFolder, BoldFont = \@fontName-Regular]{\@fontName-Light} diff --git a/resume-openfont.cls b/resume-openfont.cls new file mode 100644 index 0000000..d725e73 --- /dev/null +++ b/resume-openfont.cls @@ -0,0 +1,169 @@ +% Intro Options +\ProvidesClass{resume-openfont}[2021/05/30 Abdullah's version] +\NeedsTeXFormat{LaTeX2e} +\DeclareOption{print}{\def\@cv@print{}} +\DeclareOption*{% + \PassOptionsToClass{\CurrentOption}{article} +} +\ProcessOptions\relax +\LoadClass{article} + +%-------------------------------------------------------------- +% Package Imports +\RequirePackage[english]{babel} +% page setup +\RequirePackage{fancyhdr} +% Set boundaries +\RequirePackage[hmargin=1cm, vmargin=0.94cm]{geometry} +% remove ugly boxes around links +\usepackage[hidelinks]{hyperref} +% setup custom titles +\RequirePackage{titlesec} +% For skills table +\RequirePackage{enumitem} +% Using tables like the profile section +\RequirePackage{tabularx} +% Used for the link symbol +\RequirePackage{fontawesome} +% Set up font +\RequirePackage{lato-font} +\RequirePackage{raleway-font} +% make underlying constants: credits to Alex Beattie for noticing and suggesting fix +\RequirePackage{ulem} +%-------------------------------------------------------------- +% Reformatting default sections +% section +\titlespacing{\section}{0pt}{0pt}{0pt} +\titleformat{\section}{% +\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 +\selectfont% +\raggedright% +\uppercase% +} {}{0em}{} + +% subsection +\titlespacing{\subsection}{0pt}{\parskip}{-\parskip} +\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 +} {}{0em}{} + +% remove header footer stuff like page numbers +\newcommand{\resetHeaderAndFooter}{% +\fancyhf{}% +\fancyfoot{}% +\renewcommand{\headrulewidth}{0pt}% +\renewcommand{\footrulewidth}{0pt}% +} +%-------------------------------------------------------------- +% Formatting commands - commands to control spacing + +% A shortcut to control spacing +\newcommand{\NoSpace}{\vspace*{-2pt}} + +% Command to simulate new line, to fix spacing glitches +\newcommand{\fakeNewLine}{\newline \vspace{-\baselineskip}} + +% Command to align table at the start of the resume +\newcommand{\alignProfileTable}{ + \raggedbottom + \raggedright + \setlength{\tabcolsep}{0in} +} + +%-------------------------------------------------------------- +% Subheadings command - create different types of heading +\newcommand{\runsubsection}[1]{% +\color{subheadings}% +\customLatoBlack% +\fontsize{12pt}{12pt}% +\selectfont% +\bfseries% +#1% +\normalfont}% + +% Descriptors command +\newcommand{\descript}[1]{% +\color{subheadings}% +\raggedright% +\scshape% +\customRalewayMedium% +\fontsize{11pt}{13pt}% +\selectfont{#1}% +\normalfont} + +% Location command +\newcommand{\location}[1]{% +\color{headings}% +\raggedright% +\customRalewayMedium% +\fontsize{11pt}{13pt}% +\selectfont{#1}% +\normalfont} + +% Minor command - like even smaller sub section +\newcommand{\minorSection}[1]{% +\color{subheadings}% +\raggedright% +\scshape% +\customRalewayMedium% +\fontsize{11pt}{12pt}% +\selectfont{#1}% +\normalfont} + +% Project command +\newcommand{\Project}[2]{ +\runsubsection{% +\href{#2}{\uppercase{#1} \,\faExternalLink} +} + \hfill +} + +% Underlined link command +\newcommand{\underlinedLink}[2]{% +\href{#1}{\uline{#2}}% +} + +% Command for table +\newcommand{\singleItem}[2]{\normalsize{\textbf{#1} #2}} +\newcommand{\doubleItem}[4]{\singleItem{#1}{#2} & \singleItem{#3}{#4}} + +%-------------------------------------------------------------- +% Section separators command +\newcommand{\sectionsep}[0]{\vspace{7pt}} + +%-------------------------------------------------------------- +% Bullet Lists with fewer gaps command +\newenvironment{bullets}{ +\vspace{-1mm} +\begin{itemize} +\itemsep1pt +\parskip1.5pt +\parsep1.5pt +}{ +\end{itemize} +\vspace{-\topsep} +} + +% Command for skill table +\newenvironment{skillList}{% +\noindent% +\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}ll}% +}{% +\end{tabular*}% +} + +%-------------------------------------------------------------- +% Customize built-in commands +% Align Sections +\let\oldSection\section +\renewcommand{\section}[1]{\oldSection{#1}\raggedright} +\renewcommand{\underline}[1]{\uline{#1}} diff --git a/resume.tex b/resume.tex new file mode 100644 index 0000000..5f9a24e --- /dev/null +++ b/resume.tex @@ -0,0 +1,158 @@ +\documentclass[]{resume-openfont} + +\pagestyle{fancy} +\resetHeaderAndFooter + +%-------------------------------------------------------------- +% Convenience command - make it easy to fill template + +% Create job position command. Parameters: company, position, location, when +\newcommand{\resumeHeading}[4]{\runsubsection{\uppercase{#1}}\descript{ | #2}\hfill\location{#3 | #4}\fakeNewLine} + +% Create education heading. Parameters: Name, degree, location, when +\newcommand{\educationHeading}[4]{\runsubsection{#1}\hspace*{\fill} \location{#3 | #4}\\ +\descript{#2}\fakeNewLine} + +% Create project heading. Parameters: Name, link, Tech stack +\newcommand{\projectHeading}[3]{\Project{#1}{#2} +\descript{#3}\\} + +\newcommand{\projectHeadingWithDate}[4]{\Project{#1}{#2} +\descript{#3 | #4}\\} + +% Parameters: courses +\newcommand{\courseWork}[1]{\textbf{Coursework:} #1} + +% Parameters: courses +\newcommand{\teacherAssistant}[1]{\textbf{Teacher Assistant (TA):} #1} + +%-------------------------------------------------------------- +\begin{document} + +%-------------------------------------------------------------- +% Profile +%-------------------------------------------------------------- +\newcommand{\yourName}{First Last} +% How you want it to show up on the resume +\newcommand{\yourWebsite}{abdullaharif.tech} +% vs how you want it to show up. If it's you can just replace "\yourWebsiteLink" with "yourWebsite" +\newcommand{\yourWebsiteLink}{https://abdullaharif.tech} +\newcommand{\yourEmail}{someEmail@edu.com} +\newcommand{\yourPhone}{1-234-567-890} +\newcommand{\githubUserName}{aarif123456} +\newcommand{\linkedInUserName}{abdullaharif98} + +% 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} + \Huge \scshape \latoRegular{\yourName} \\ \vspace{1pt} + \small \href{mailto:\yourEmail}{\underline{\yourEmail}} $|$ \yourPhone $|$ + \href{https://www.linkedin.com/in/\linkedInUserName}{\underline{linkedIn/\linkedInUserName}} $|$ + \href{https://github.com/\githubUserName}{\underline{github/\githubUserName}} + % $|$ \href{\yourWebsiteLink}{\underline{\yourWebsite}} +\end{center} + +%-------------------------------------------------------------- +% 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 + +%-------------------------------------------------------------- +% 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 + +\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 + +\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 + +%-------------------------------------------------------------- +% Projects +%-------------------------------------------------------------- +\section{Projects} + +\projectHeading{Automated Spear-Phisher}{https://github.com/Aarif123456/Fb-Twitter-gui}{Python, PySpark, Selenium, Apache, NLP, Big Data} +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} \ No newline at end of file