Filip Procházka

Filip Procházka - Curriculum Vitae

  • Primary languages: Java/Kotlin (Spring, Hibernate), PHP (Nette, Symfony), SQL
  • Experience with: Python, TypeScript, Bash, C/C++, Go, Ruby, Haskell and others
  • Programming: over 18 years

Work and projects

ShipMonk - May 2022 to August 2024

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.

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.

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.

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.

Cogvio s.r.o. - March 2017 to April 2022

I've led 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.

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.

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.

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.

I've also done most of the hiring of other developers, team management, and product specification breakdowns into technical tasks.

Lavito.cz - February 2016 to January 2017

I was improving my ability to write well-designed, clean, and perfectly tested applications with Symfony under the advisement of Vašek Purchart.

Rohlik.cz Velká Pecka s.r.o. - July 2014 to November 2015

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.

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 Jiří Pudil wrote a custom client for the ČSOB card payment gateway.

Damejidlo.cz Pizza Time s.r.o. - January 2013 to July 2014

My role was similar to that of a technical lead or a system architect. The team consulted with me on most technical challenges, but most of my work was programming in PHP.

From the beginning, I lead the rewrite of the application to Doctrine 2 ORM. 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.

I've also integrated and deployed Redis for sessions and caching, HTTPS for the whole website, RabbitMQ for background processing, Monolog and Papertrail for logs handling, and other technologies.

Fulltime opensource - September 2011 to January 2013

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 :)

D3 Network - September 2010 to September 2011

My first "real job" 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 insurance contract management for the Triglav insurance company. Currently, the company no longer exists.

Beginnings

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 HTML and CSS, but later, I discovered JavaScript. The first web-related book I bought was about CSS by Petr Staníček to learn HTML coding and styling properly. In high school, I discovered PHP 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 .php5 extension - fun times.

Open-source

Kdyby (CMS)

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.

Subsequently, I discovered Nette Framework, which triggered another round of rewriting that was never finished. Thankfully, by then, I'd gained some common sense and split the project into several smaller useful parts, which can be used in various applications.

Nette Framework

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.

Other

My GitHub profile contains various projects I've worked on or contributed to.

Education

Highest achieved education: University Bachelor

  • Masaryk University - Applied Informatics - 2014 to 2017, finished with a state exam
  • SPŠ Jedovnice - 2006 to 2010, finished with graduation
  • Gymnasium Velké Pavlovice - 2002 to 2006

Ostatní informace

Languagues
Czech (native), English (B2)
Drivers licence
B