-
Notifications
You must be signed in to change notification settings - Fork 1
/
cv.html
199 lines (156 loc) · 10.5 KB
/
cv.html
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
---
layout: default
title: "Curriculum Vitae - Filip Procházka"
permalink: /cv
meta:
og:
type: profile
other:
- property: "profile:first_name"
value: Filip
- property: "profile:last_name"
value: Procházka
- property: "profile:gender"
value: male
sitemap:
priority: 1.0
---
<div class="cv" xmlns:n="http://www.w3.org/1999/xhtml">
<div class="row">
<div class="col-lg-10 offset-lg-1">
<div class="pull-right cv-pic">
<img src="{% link /assets/img/selfi.jpg %}" itemprop="image" alt="Filip Procházka" width="300">
</div>
<h2>
<span class="visible-print-inline">Filip Procházka - </span>Curriculum Vitae
</h2>
{% assign thisYear = site.time | date: "%Y" | plus: 0 %}
<ul>
<li><strong>Primary languages</strong>: Java/Kotlin (Spring, Hibernate), PHP (Nette, Symfony), SQL</li>
<li><strong>Experience with</strong>: Python, TypeScript, Bash, C/C++, Go, Ruby, Haskell and others</li>
<li><strong>Programming</strong>: over {{ thisYear | minus: 2006 }} years</li>
</ul>
<h2 id="work-and-projects">Work and projects</h2>
<h3><a href="https://www.shipmonk.com/">ShipMonk</a> <span class="light">- May 2022 to August 2024</span></h3>
<p>
I was hired as a Principal Engineer to introduce Java into ShipMonk's technology stack.
ShipMonk is historically a (nicely written) modular monolith in PHP,
which has grown to the size where it is necessary to start chopping it into smaller right-sized services (not to be confused with microservices),
and on that occasion we decided to rewrite some of the legacy parts in Java.
</p>
<p>
I was tasked with hiring a team of Java Developers and building a system for synchronizing customer data with external systems (orders, stock, etc.).
The basis of the application is built on Spring Boot, Hibernate, and PostgreSQL. Everything is dockerized and runs in k8s.
The system's architecture was designed to be an event-driven integration engine with bits of event-sourcing principles.
The emphasis was on our ability to quickly debug any issue (e.g., wrongly synced data) and introduce new integrations quickly and cheaply.
</p>
<p>
Due to my team's success, I was later promoted to Director of Engineering and given two additional teams, totaling about 30 engineers, 3 of which were my direct reports.
</p>
<p>
My whole ShipMonk affair was an eye-opening experience like few before.
I've made the most significant advancements in my ability to hire, lead a team, and deliver incremental, measurable, valuable product improvements out of all my roles.
</p>
<h3><a href="https://www.cogvio.com/">Cogvio s.r.o.</a> <span class="light">- March 2017 to April 2022</span></h3>
<p>
<abbr title="VP of Engineering">I've led</abbr> the development of applications that help automate processes in the Health & Pharma industry.
Our main topics were Market Access, Pharmaceutical Pricing, and we've worked on new ones.
</p>
<p>
Most of my time was spent developing the Price Monitor, which we wrote as an API in Java (Spring Boot, Hibernate, PostgreSQL, ElasticSearch, ...) used in the frontend JavaScript app.
A big part of the system was a data pipeline, which we've used to process 250+ data sources.
The entire system runs on AWS, and the backend sits in Docker.
</p>
<p>
I've laid out the infrastructure for the first products, which was then improved and used by all the other projects.
Later, we switched to IaaC to manage it. I've also managed most of our servers, including self-hosted Gitlab and Gitlab CI Runners.
</p>
<p>
I've designed big part of the data pipeline and worked on huge chunks of the system, including data extraction,
transformation (cleanup, normalization, etc.), deduplication, and historicization, and then loading the data from the data warehouse to the analytical applications.
</p>
<p>
I've also done most of the hiring of other developers, team management, and product specification breakdowns into technical tasks.
</p>
<h3>Lavito.cz <span class="light">- February 2016 to January 2017</span></h3>
<p>
I was improving my ability to write well-designed, clean, and perfectly tested applications with Symfony under the advisement of <a href="https://vasekpurchart.cz/">Vašek Purchart</a>.
</p>
<h3>Rohlik.cz <small>Velká Pecka s.r.o.</small> <span class="light">- July 2014 to November 2015</span></h3>
<p>
In Rohlik (a Czech word for roll - yes, the pastry), I had a role similar to Damejidlo.
Still, I was mostly doing damage (and technical debt) control and minimalization because of the development speed, more than any kind of proper design planning.
</p>
<p>
I've greatly enjoyed the finalization of HTTPS configuration and deployment of ElasticSearch for the product database, which helped us immensely with performance.
I've also rewritten our custom geocoding to an open-source library.
And as the last task, me and <a href="https://jiripudil.cz/">Jiří Pudil</a> wrote a custom client for the ČSOB card payment gateway.
</p>
<h3>Damejidlo.cz <small>Pizza Time s.r.o.</small> <span class="light">- January 2013 to July 2014</span></h3>
<p>
My role was similar to that of a technical lead or a <strong>system architect</strong>.
The team consulted with me on most technical challenges, but most of my work was programming in PHP.
</p>
<p>
From the beginning, I lead the rewrite of the application to <strong>Doctrine 2 ORM</strong>.
The rewrite was continuous because we could not afford to stop the development or throw away the existing application.
As the first thing, I made sure we started using the Composer and Nette/Tester to start writing tests.
</p>
<p>
I've also integrated and deployed Redis for sessions and caching, HTTPS for the whole website,
<a href="{% post_url 2014-06-26-kdyby-rabbitmq-aneb-asynchronni-kdyby-events %}">RabbitMQ</a> for background processing,
<a href="{% post_url 2014-09-08-monolog-syslog-a-papertrail %}">Monolog and Papertrail</a> for logs handling, and other technologies.
</p>
<h3>Fulltime opensource <span class="light">- September 2011 to January 2013</span></h3>
<p>
For over a year, I was unemployed by my own decision and lived on savings and small projects so that I could program for fun and improve. And I believe it paid off :)
</p>
<h3>D3 Network <span class="light">- September 2010 to September 2011</span></h3>
<p>
My first <i>"real job"</i> as a full-time programmer and my first experience with working in a team.
I started here right after high school while still learning the basics of Nette Framework.
Our team worked on <strong>insurance contract management</strong> for the Triglav insurance company.
Currently, the company no longer exists.
</p>
<h3>Beginnings</h3>
<p>
I discovered "the web" somewhere around 2004, and I immediately knew that it was something I'd be making a living on.
At first, I only played with <strong>HTML</strong> and <strong>CSS</strong>, but later, I discovered <strong>JavaScript</strong>.
The first web-related book I bought was <a href="https://www.databazeknih.cz/knihy/css-kaskadove-styly-kompletni-pruvodce-120759">about CSS by Petr Staníček</a> to learn HTML coding and styling properly.
In high school, I discovered <strong>PHP</strong> and started learning programming.
This was around when webhostings were only beginning to deploy PHP 5.2 and the scripts had to be written with the <code>.php5</code> extension - fun times.
</p>
<h2 id="open-source">Open-source</h2>
<h3>Kdyby (CMS)</h3>
<p>
In high school, I decided to create the best CMS and get rich off of it, and I've made several websites on the first version.
However, I quickly realized how much I didn't yet know, which resulted in the CMS eventually dying
because of my inability to finish it without perfecting it while rewriting it about ten times from scratch over a few years.
</p>
<p>
Subsequently, I discovered <strong>Nette Framework</strong>, which triggered another round of rewriting that was never finished.
Thankfully, by then, I'd gained some common sense and <a href="https://github.com/Kdyby">split the project into several smaller useful parts</a>, which can be used in various applications.
</p>
<h3>Nette Framework</h3>
<p>
I've actively used Nette Framework for about ten years - answering questions on the forum, writing a bit of documentation, and contributing pull requests here and there.
</p>
<h3>Other</h3>
<p>
My <a href="https://github.com/fprochazka?tab=repositories">GitHub profile</a> contains various projects I've worked on or contributed to.
</p>
<h2 id="education">Education</h2>
<p>Highest achieved education: University Bachelor</p>
<ul>
<li><strong>Masaryk University</strong> - <a href="https://www.fi.muni.cz/catalogue2014//study-fields-html/bc-ap.html">Applied Informatics</a> - 2014 to 2017, finished with a state exam</li>
<li><strong>SPŠ Jedovnice</strong> - 2006 to 2010, finished with graduation</li>
<li><strong>Gymnasium Velké Pavlovice</strong> - 2002 to 2006</li>
</ul>
<h2 id="other">Ostatní informace</h2>
<dl class="row other">
<dt class="col-sm-3 text-xs-right">Languagues</dt><dd class="col-sm-8">Czech (native), English (<a href="https://en.wikipedia.org/wiki/Common_European_Framework_of_Reference_for_Languages#Common_reference_levels">B2</a>)</dd>
<dt class="col-sm-3 text-xs-right">Drivers licence</dt><dd class="col-sm-8"><a href="https://en.wikipedia.org/wiki/European_driving_licence#Categories_valid_in_all_EEA_member_states">B</a></dd>
</dl>
</div>
</div>
</div>