-
Notifications
You must be signed in to change notification settings - Fork 0
/
resume.tex
268 lines (205 loc) · 12.8 KB
/
resume.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
%-------------------------
% Rezume, a latex resume template for developers
% Author : Md Eftakhairul Islam
% Source Code: https://github.com/eftakhairul/resume
% License : MIT
%-------------------------
%------------PACKAGES----------------
\documentclass[a4paper,11pt]{article}
\usepackage{verbatim} % reimplements the "verbatim" and "verbatim*" environments
\usepackage{titlesec} % provides an interface to sectioning commands i.e. custom elements
\usepackage{color} % provides both foreground and background color management
\usepackage{enumitem} % provides control over enumerate, itemize and description
\usepackage{fancyhdr} % provides extensive facilities for constructing headers, footers and also controlling their use
\usepackage{tabularx} % defines an environment tabularx, extension of "tabular" with an extra designator x, paragraph like column whose width automatically expands to fill the width of the environment
\usepackage{latexsym} % provides mathematical symbols
\usepackage{marvosym} % provides martin vogel's symbol font which contains various symbols
\usepackage[empty]{fullpage} % sets margins to one inch and removes headers, footers etc..
\usepackage[hidelinks]{hyperref} % removes color and shadow of hyperlinks
\usepackage[normalem]{ulem} % provides "\ul" (uline) command which will break at line breaks
\usepackage[english]{babel} % provides culturally determined typographical rules for wide range of languages
%-----------------------------------------
\input glyphtounicode % converts glyph names to unicode
\pdfgentounicode=1 % ensures pdfs generated are ats readable
%----------FONT OPTIONS-------------------
\usepackage[default]{sourcesanspro} % uses the font source sans pro
\urlstyle{same} % changes url font from default urlfont to font being used by the document
%-----------------------------------------
%----------MARGIN OPTIONS-----------------
\pagestyle{fancy} % set page style to one configured by fancyhdr
\fancyhf{} % clear all header and footer fields
\renewcommand{\headrulewidth}{0in} % sets thickness of linerule under header to zero
\renewcommand{\footrulewidth}{0in} % sets thickness of linerule over footer to zero
\setlength{\tabcolsep}{0in} % sets thickness of column separator in tables to zero
% origin of the document is one inch from the top and from and the left
% oddsidemargin and evensidemargin both refer to the left margin
% right margin is indirectly set using oddsidemargin
\addtolength{\oddsidemargin}{-0.5in}
\addtolength{\topmargin}{-0.5in}
\addtolength{\textwidth}{1.0in} % sets width of text area in the page to one inch
\addtolength{\textheight}{1.0in} % sets height of text area in the page to one inch
\raggedbottom{} % makes all pages the height of current page, no extra vertical space added
\raggedright{} % makes all pages the width of current page, no extra horizontal space added
%------------------------------------------
%--------SECTIONING COMMANDS---------
% \titleformat{<command>}
% [<shape>]{<format>}{<label>}{<sep>}
% {<before-code>}[<after-code>]
% command is the sectioning command to be redefined
% shape is the style of the font; scshape stands for small caps style
% format is the format to be applied to whole title- label and text; absent here
% label defines the label
% sep is the horizontal separation between label and title body
% before-code is the code to be executed before
% after-code is the code to be executed after
\titleformat{\section}
{\scshape\large}{}
{0em}{\color{black}}[\color{black}\titlerule\vspace{0pt}]
%-------------------------------------
%--------REDEFINITIONS----------------
% redefines the style of the bullet point
\renewcommand\labelitemii{$\vcenter{\hbox{\tiny$\bullet$}}$}
% redefines the underline depth to 2pt
\renewcommand{\ULdepth}{2pt}
%-------------------------------------
%--------CUSTOM COMMANDS--------------
%\vspace{} defines a vertical space of given size, modifying this in custom commands can help stretch or shrink resume to remove or add content
% resumeItem renders a bullet point
\newcommand{\resumeItem}[1]{
\item\small{#1}
}
% commands to start and end itemization of resumeItem, rightmargin set to 0.11in to avoid the overflow of resumetItem beyond whatever resumeItemHeading is being used
\newcommand{\resumeItemListStart}{\begin{itemize}[rightmargin=0.11in]}
\newcommand{\resumeItemListEnd}{\end{itemize}}
% resumeSectionType renders a bolded type to be used under a section, used as skill type here, middle element is used to keep ":"s in the same vertical line
\newcommand{\resumeSectionType}[3]{
\item\begin{tabular*}{0.96\textwidth}[t]{
p{0.15\linewidth}p{0.02\linewidth}p{0.81\linewidth}
}
\textbf{#1} & #2 & #3
\end{tabular*}\vspace{-2pt}
}
% resumeTrioHeading renders three elements in three columns with second element being italicized and first element bolded, can be used for projects with three elements
\newcommand{\resumeTrioHeading}[3]{
\item\small{
\begin{tabular*}{0.96\textwidth}[t]{
l@{\extracolsep{\fill}}c@{\extracolsep{\fill}}r
}
\textbf{#1} & \textit{#2} & #3
\end{tabular*}
}
}
% resumeQuadHeading renders four elements in a two columns with the second row being italicized and first element of first row bolded, can be used for experience and projects with four elements
\newcommand{\resumeQuadHeading}[4]{
\item
\begin{tabular*}{0.96\textwidth}[t]{l@{\extracolsep{\fill}}r}
\textbf{#1} & #2 \\
\textit{\small#3} & \textit{\small #4} \\
\end{tabular*}
}
% resumeQuadHeadingChild renders the second row of resumeQuadHeading, can be used for experience if different roles in the same company need to added
\newcommand{\resumeQuadHeadingChild}[2]{
\item
\begin{tabular*}{0.96\textwidth}[t]{l@{\extracolsep{\fill}}r}
\textbf{\small#1} & {\small#2} \\
\end{tabular*}
}
% commands to start and end itemization of resumeQuadHeading, lefmargin for left indent of 0.15in for resumeItems
\newcommand{\resumeHeadingListStart}{
\begin{itemize}[leftmargin=0.15in, label={}]
}
\newcommand{\resumeHeadingListEnd}{\end{itemize}}
%-------------------------------------------
%__________________RESUME____________________
% You can rearrange sections in any order you may prefer
\begin{document}
%-----------CONTACT DETAILS------------------
% Make sure all the details are correct, you can add more links in the first row of second column if needed
\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r}
\textbf{\Huge Md Eftakhairul Islam \vspace{2pt}} & % row = 1, col = 1
Address: 95 Rue De Valognes, Laval, QC, H7M 4A8, Canada \\ % row = 1, col = 2
\href{https://www.linkedin.com/in/eftakhairul}{\uline{linkedin.com/in/eftakhairul}} $|$ % row = 2, col = 1
\href{https://github.com/eftakhairul}{\uline{github.com/eftakhairul}} % row = 2, col = 1
\vspace{2pt} & % row = 2, col = 1
Email: \href{mailto:eftakhairul@gmail.com}{\uline{eftakhairul@gmail.com}} $|$ % row = 2, col = 2
Mobile: +1 (438) 985 2516 \\ % row = 2, col = 2
\end{tabular*}
%--------------------------------------------
%-----------SUMMARY--------------------------
% Keep this short, simple and straigth to point
\section{Brief}
\small{
Skilled software engineer with over 13 years of professional experience in software architecture and implementation. Specialized in DevOps, Cloud technologies, and distributed architectures.}
%--------------------------------------------
%--------------SKILLS------------------------
% Add or remove resumeSectionTypes according to your needs
\section{Technical Skills}
\resumeHeadingListStart{}
\resumeSectionType{Languages}{:}{Golang, Node.js \& TypeScript, Ruby, PHP, Python, Java}
\resumeSectionType{Frameworks}{:}{Gin, Express, Angular, Rails, Laravel, Symfony, Django, Play}
\resumeSectionType{Databases}{:}{MySQL, PostgreSQL, MongoDB, Elasticsearch, InfluxDB, Aerospike, OrientDB, Redis, Memcached}
\resumeSectionType{Infrastucture}{:}{Kubernetes, Nomad, Kafka, Terraform, Ansible, Puppet, Packer, Jenkins, AWS, GCP, Azure}
\resumeHeadingListEnd{}
%--------------------------------------------
%-----------EXPERIENCE-----------------------
% Distill all your talking points to small bullet points which follow the pattern "challenge-action-result" for maximum efficiency. Try to quantify (use numbers) your points whenver possible, highlist words of importance
\section{Experience}
\resumeHeadingListStart{}
\resumeQuadHeading{Senior Software Engineer}{\textbf{August 2024 -- October 2024}}
{GoodRx }{Montreal, Canada}
\resumeItemListStart{}
\resumeItem{Implemented new gRPC endpoints in Identity service.}
\resumeItem{Implemented and enhanced multiple new features to the existing microservices based on \textbf{Golang \& Amazon Neptune DB}.}
\resumeItemListEnd{}
\resumeQuadHeading{Senior Software Developer}{\textbf{July 2023 -- July 2024}}
{National Bank of Canada (NBC)}{Montreal, Canada}
\resumeItemListStart{}
\resumeItem{Implemented multi-tenant private API marketplace based on \textbf{OpenAPI Specification (OAS)}.}
\resumeItem{Lead, implemented and enhanced multiple new features to the Bank internal applications based on \textbf{Golang}, while abiding by a Test Driven Development \textbf{(TDD)} process. Deployed them on \textbf{Kubernetes}.}
\resumeItemListEnd{}
\resumeQuadHeading{Senior Software Developer}{\textbf{January 2021 -- May 2023}}
{Unity Technologies}{Montreal, Canada}
\resumeItemListStart{}
\resumeItem{Lead the architecture of a highly scalable and automated end-to-end logging pipeline for containerized game servers, leveraging \textbf{Kafka, Elasticsearch, Vector and GCP}.}
\resumeItem{Designed, developed, and deployed a payload-store for game session management—available to Unity developers as a backend as a service \textbf{(BaaS)} offering. Built with \textbf{Golang} atop of \textbf{Redis}.}
\resumeItem{Architected and lead the development of the multiplayer game hosting portion of the Unity Core Apps product line. Optimized the solution to work on bare metal with low latency and six nines uptime.}
\resumeItem{Built an in-house orchestration tool based on \textbf{Nomad} for bare-metal servers.}
\resumeItemListEnd{}
\resumeQuadHeading{Software Engineer}{\textbf{Oct 2017 -- Jan 2021}}
{Index Exchange}{Montreal, Canada}
\resumeItemListStart{}
\resumeItem {Built and introduced “\textbf{infrastructure telemetry}” metrics, observability and process documentation, resulting in increased reliability and enabling change visibility. Leveraged \textbf{Golang, Kafka, Grafana} and \textbf{InfluxDB}. }
\resumeItem{Rewrote and refactored legacy \textbf{Perl-based} cire exchange platform. Participated in weekly release hardening and pushed for seamless change deployment through custom CI/CID pipeline. }
\resumeItem{Responsible for the enhancement of the core bidding platform based on \textbf{OpenRTB}. Architected and built the “\textbf{native ad}” feature and led integration into the Core Biding platform.}
\resumeItemListEnd{}
\resumeQuadHeading{Team Lead \& Software Developer}{\textbf{Jul 2016 -- Oct 2017}}
{Payment Rails Inc. aka Trolley}{Montreal, Canada}
\resumeItemListStart{}
\resumeItem{Wrote and deployed the initial version of the Trolley Core API platform in \textbf{TypeScript, Express.js and PostgresSQL}. Automated \textbf{CI/CD pipeline on AWS}. }
\resumeItem{Lead a team of five engineers. Made final decisions on tech stack, architecture and development processes. }
\resumeItemListEnd{}
\resumeQuadHeading{Senior Software Developer}{\textbf{Aug 2015 -- May 2016}}
{Executable Design Inc.}{Montreal, Canada}
\resumeItemListStart{}
\resumeItem{Led the team and established the technical direction in \textbf{Node.js, MySQL} \& \textbf{OrientDB} for various in-house projects.}
\resumeItem{Analyzed, architected and implemented various distributed applications.}
\resumeItemListEnd{}
\resumeQuadHeading{Software Developer}{\textbf{Aug 2014 -- June 2015}}
{IOU Finance Inc.}{Montreal, Canada}
\resumeItemListStart{}
\resumeItem{Implemented new feature and refactored the legacy code of their in-house loan processing applicaiton based \textbf{Ruby on Rails}.}
\resumeItem{Automated the CI/CD pipleline based on \textbf{Jenkins \& AWS cloud}.}
\resumeItemListEnd{}
\resumeHeadingListEnd{}
%---------------------------------------------
%-----------EDUCATION-------------------------
% Mention your CGPA, if its good, in the first row of second column
\section{Education}
\resumeHeadingListStart{}
\resumeQuadHeading{Concordia University}{}
{Master of Engineering (M. Eng.) in Software Engineering}{Sep 2013 -- Dec 2015}
\resumeQuadHeading{BRAC University}{}
{Bachelor of Science (B.Sc.) in Electrical and Electronic Engineering}{May 2007 -- Dec 2010}
\resumeHeadingListEnd{}
%---------------------------------------------
\end{document}