-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmy-cv.tex
277 lines (204 loc) · 12.3 KB
/
my-cv.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
269
270
271
272
273
274
275
276
277
\documentclass[a4paper, 12pt]{article}
\usepackage[cm]{fullpage}
\usepackage[nomessages]{fp}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\hypersetup{
pdftitle={My CV},
pdfauthor={Phil Tsaryk},
pdfcreator={Phil Tsaryk},
colorlinks=true,
urlcolor=blue
}
\newcommand{\position}[1]{
% bold
\textbf{#1}}
\newcommand{\itemlabel}[1]{
% italic + ":"
\textit{#1:}}
\newcommand{\lastmodified}{
\tiny{\itemlabel{Last Modified} \today}}
\newcommand{\defvalue}[2]{\ifx#1\empty#2\else#1\fi}
\newcommand{\yearsexp}{%
\FPeval{\result}{clip(\the\year - 2006)}%
\defvalue{\result}{15+}}
% Switch implementation
\usepackage{xifthen}
\newcommand{\ifequals}[3]{\ifthenelse{\equal{#1}{#2}}{#3}{}}
\newcommand{\case}[2]{#1 #2} % Dummy, so \renewcommand has something to overwrite...
\newenvironment{switch}[1]{\renewcommand{\case}{\ifequals{#1}}}{}
\newcommand{\monthname}[1]{%
\begin{switch}{#1}%
\case{01}{Jan}%
\case{02}{Feb}%
\case{03}{Mar}%
\case{04}{Apr}%
\case{05}{May}%
\case{06}{Jun}%
\case{07}{Jul}%
\case{08}{Aug}%
\case{09}{Sep}%
\case{10}{Oct}%
\case{11}{Nov}%
\case{12}{Dec}%
\end{switch}%
}
\newcounter{datediffyears}%
\newcounter{datediffmonths}%
\newcommand{\datediff}[4]{%
\setcounter{datediffyears}{#3}%
\setcounter{datediffmonths}{#4}%
\addtocounter{datediffmonths}{-#2 + 1}%
\addtocounter{datediffyears}{-#1}%
\ifnum\thedatediffmonths<0%
\setcounter{datediffmonths}{12 + \thedatediffmonths}%
\addtocounter{datediffyears}{-1}%
\addtocounter{datediffmonths}{\thedatediffyears * 12}%
\else%
\addtocounter{datediffmonths}{\thedatediffyears * 12}%
\fi
\the\numexpr\thedatediffmonths\relax\space months%
}
\newcommand{\difftoday}[2]{%
\monthname{#2} #1--Present (\datediff{#1}{#2}{\the\year}{\the\month})%
}
\newcommand{\diffdates}[4]{%
\monthname{#2} #1--\monthname{#4} #3 (\datediff{#1}{#2}{#3}{#4})%
}
% Write current page number and Last Modified date in the footer
\usepackage{fancyhdr}
\pagestyle{fancyplain}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt} % remove header line
\cfoot{\thepage}
\rfoot{\lastmodified}
\title{Phil Tsaryk}
\author{}
\date{}
\begin{document}
\maketitle
I am highly motivated person with \yearsexp{} years of experience (including University) in a front-end development.
I have solid knowledge in modern web technologies including ES6+, React, TypeScript, Angular, Node.js, etc.
I have broad experience in conforming JavaScript and HTML/CSS code to work in old browsers.
Familiar with mobile first approach, making responsive design.
Experienced in full stack development using Ruby, Ruby on Rails, Java, Node.js.
I am experienced in designing solutions from scratch and establishing development processes on the project, including CI process.
Experienced in supporting legacy code with further step-by-step refactoring.
I have strong knowledge of design patterns and web platform specifics.
I have a very good feedback from customers, team members and managers.
Enthusiastic about challenging tasks, fast learner, good team player with strong motivation and good communication skills.
Always ready to participate in mentoring programs as a mentee and a mentor.
Becides that I am taking care of my pet projects \href{https://github.com/phts}{hosted on github}.
\subsubsection*{Contacts:}
\begin{itemize}
\item Tel: \href{tel:+48534898187}{+48 534 898 187}
\item Email: \href{mailto:[email protected]}{[email protected]}
\item My legal name: Pilip Tsaryk
\end{itemize}
\section*{Skill Overview}
\begin{itemize}
\item \itemlabel{Front end} HTML5, CSS3, JavaScript (incl. ES6+), TypeScript, Sass, Less, Angular (v1.x and v2+), React (and related technologies like Redux, MobX, Reflux, Preact, Styled-components, etc.)
\item \itemlabel{Back end} Ruby, Python, Bash, Node.js, GraphQL, MySQL, PostgreSQL
\end{itemize}
\section*{Experience}
\begin{itemize}
\item \position{Middle/Senior Software Developer}, \difftoday{2018}{04}
Joined a new team mainly supporting and developing marketing landing pages on HTML5/CSS3/JS.
Developed and supporting an interactive tool (distributed as a NPM package) which allows to create a
working template of a landing page.
This is a Node.js application. It uses EJS template engine to simplify the process of gathering parts of
a page together and to automate a routine and manual work.
Later was involved to planning and development of several new projects from scratch.
One of them: A graphical constructor for non-tech guys for producing and publishing landing pages.
This is React application which generates a static page using Gatsby and is bound with multiple internal services.
Later evolved into React application with server-side rendering deployed on AWS.
Second: Interactive Node.js application based on Express for building and configuring data feeds.
I was an initiator and a maintainer of several team practices, e.g. team's code style implemented in eslint-config,
changing stand up driver every day across the team, pushing code before going home, introducing and following
Git commit message conventions, team's git flow, Jira flow.
In a meantime participating in a constant improving of development process, getting rid of legacy stuff,
experimenting with new technologies and conducting workshops and knowledge sharing sessions.
My main speciality --- JavaScript.
In frontend part --- React.
In backend part --- Node.js/Express.
Due to our project are deployed to AWS I also perform DevOps tasks: maintaining Docker images, setting up CI/CD,
and configuring AWS terraform.
Since April 2019 I have been promoted to Senior position.
Since 2020 working in a new team and releasing many cool products every sprint.
Noticeable projects:
1) Modular UI component (React) which is a core of daily interactions of million users with the main services, distributed via npm
2) Configurable UI component (React) with plugin system distributed via AWS for numerous environments
3) Handling LivePerson conversations via LivePerson Functions cloud and AWS lambdas
4) A numerous unofficial and pet projects which help people in daily routine, generating reports to Dovico, Bamboo, PagerDuty, etc.
\begin{itemize}
\item \itemlabel{Company} Grand Parade, Kraków Area, Poland
\item \itemlabel{Tools \& technologies used} HTML5/CSS3, JavaScript, TypeScript, SASS, React, Gatsby, EJS, Node.js, AWS,
Express, Webpack, rollup, jest, Git, Jira, Jenkins, GitLab CI, npm, server-side rendering, Docker, LivePerson FaaS,
Optimizely, Splunk, NewRelic, Playwright
\end{itemize}
\item \position{JavaScript Developer}, \diffdates{2017}{12}{2018}{03}
Developing an application which is being used by 1M+ users every day.
I am responsible for UI development. All code is covered with BDD tests, unit-tests, integration tests.
Development process consists of Kanban methodology, merge requests for every story/task, code reviews of merge requests, CI to run tests and make builds.
In the same time supporting another project from the same domain. It is React application with GraphQL and other modern stuff.
\begin{itemize}
\item \itemlabel{Company} EPAM Systems, Kraków Area, Poland
\item \itemlabel{Tools \& technologies used} JavaScript, React, Reflux, SASS, Mustache templates, GraphQL, Apollo, Webpack, Grunt, Karma, Jasmine, Git, Jira, Jenkins
\end{itemize}
\item \position{JavaScript Developer}, \diffdates{2015}{11}{2017}{11}
Developing a web-application for managing some specific hierarchy data which allows adding, removing, sorting, merging, exporting to Excel files, etc.
I am responsible for UI development. JavaScript code with business logic is covered by unit tests. I also perform code reviews of my collegues.
I take part in daily standups and weekly demos with the customer. I had a chance to show features invented by me from scratch to the customer.
\begin{itemize}
\item \itemlabel{Company} EPAM Systems, Kraków Area, Poland
\item \itemlabel{Tools \& technologies used} JavaScript, ES6, AngularJS 1.6, Redux, Bootstrap, Lodash, Webpack, Gulp, Bower, Karma, Jasmine, Protractor, Git, Jira, TeamCity
\end{itemize}
\item \position{Front-End Developer}, \diffdates{2016}{07}{2017}{06}
Taking part in a friend's startup as a front-end developer.
This is a social network-like application for people in a specific area of business and it works together with some hardware devices.
Responsible for a whole front-end part.
\begin{itemize}
\item \itemlabel{Tools \& technologies used} Angular 2, Material design, TypeScript, Lodash, Node.js, Webpack, Karma, Jasmine, Protractor, Git, Bitbucket, Jenkins, AWS
\end{itemize}
\item \position{JavaScript Developer}, \diffdates{2014}{04}{2015}{10}
Developing a client application for monitoring remote servers including separate versions for desktop and mobile browsers.
\begin{itemize}
\item \itemlabel{Company} SaM Solutions Gmbh, Minsk, Belarus
\item \itemlabel{Responsibilities} Planning, UI development, manual testing, taking part in meetings, UI design, making mockups, reporting
\item \itemlabel{Tools \& technologies used} JavaScript, Sencha Ext JS, Sencha Touch, SASS, SCCI protocol, Sencha Architect
\end{itemize}
\item \position{Full Stack Developer}, \diffdates{2012}{10}{2014}{02}
Developing a firmware with Web GUI for network-attached storages based on Debian GNU/Linux.
Developed and released a complete product with periodical updates with fixes and improvements.
\begin{itemize}
\item \itemlabel{Company} SaM Solutions Gmbh, Minsk, Belarus
\item \itemlabel{Responsibilities} Planning, UI and back-end development, writing automated tests, manual testing, taking part in meetings, architecture and UI design, making mockups, collaborating with translators, reporting
\item \itemlabel{Tools \& technologies used} Debian, Ruby, Sinatra, Rspec, Haml, HTML, CSS, JavaScript, jQuery, Dropbox SDK, Jasmine, Git, Jenkins, Transifex, Jira
\end{itemize}
\item \position{Java Developer}, \diffdates{2011}{11}{2012}{09}
Developing client-server application which provides remote management and configuration of servers.
\begin{itemize}
\item \itemlabel{Company} SaM Solutions Gmbh, Minsk, Belarus
\item \itemlabel{Responsibilities} Planning, developing, testing, reporting
\item \itemlabel{Tools \& technologies used} Java SE, Java RMI, Swing, JAXB, Windows PowerShell, SVN
\end{itemize}
\item \position{Full Stack Developer}, \diffdates{2011}{02}{2012}{08}
Taking part in developing of a language learning service.
\begin{itemize}
\item \itemlabel{Responsibilities} UI and back-end development, writing automated tests, manual testing
\item \itemlabel{Tools \& technologies used} Ruby, Ruby on Rails, PostgreSQL, ERB, SASS, Compass, HTML, CSS, JavaScript, jQuery, Git
\end{itemize}
\end{itemize}
\section*{Education}
\begin{itemize}
\item \position{Polotsk State University}, 2006--2011
Diploma in Software Engineering.
\end{itemize}
\section*{Appendix}
\begin{itemize}
\item \href{https://github.com/phts}{https://github.com/phts}
\item \href{https://www.linkedin.com/in/tsaryk}{https://www.linkedin.com/in/tsaryk}
\item \href{https://stackoverflow.com/users/2462524/phts}{https://stackoverflow.com/users/2462524/phts}
\item \href{https://tsaryk.com/}{https://tsaryk.com/}
\end{itemize}
\end{document}