Jiri Pokorny, Developer in Prague, Czech Republic
Jiri is available for hire
Hire Jiri

Jiri Pokorny

Verified Expert  in Engineering

Concurrency Developer

Location
Prague, Czech Republic
Toptal Member Since
April 9, 2021

Jiri started programming at a young age and is a programmer at heart. Over time, he has grown into an experienced senior developer currently focused on big data processing. He strongly believes in writing clean and maintainable code, and while he enjoys solving complex problems, Jiri strives to keep solutions as simple as possible.

Portfolio

Open Bean
Scala, Amazon S3 (AWS S3), AWS Lambda, Akka Streams, Akka, Kubernetes...
Second Foundation
Kotlin, Coroutines, PostgreSQL, RabbitMQ, Solace, JVM, Trading Systems...
Jumpshot
Apache Spark, Scala, Akka Actors, Concurrency, MongoDB, HDFS, Python

Experience

Availability

Part-time

Preferred Environment

Linux, IntelliJ IDEA, Scala, JVM, Big Data

The most amazing...

...thing I've discovered was functional programming, which has opened my eyes and made my code much more reliable, readable, and concise.

Work Experience

Senior Software Developer

2021 - 2021
Open Bean
  • Developed raw data ingestion using Scala, AWS S3, and Lambda.
  • Designed raw data format that is versatile enough for required use-cases.
  • Architected index data structure and library to speed up relevant queries and support downstream distributed computations.
Technologies: Scala, Amazon S3 (AWS S3), AWS Lambda, Akka Streams, Akka, Kubernetes, Amazon Simple Queue Service (SQS), Amazon Elastic MapReduce (EMR), SBT, Apache Spark, Spark SQL

Senior Software Developer

2020 - 2020
Second Foundation
  • Developed a real-time market trading adapter for normalizing market operations for multiple use-cases.
  • Participated in internal system design and protocols between distributed components.
  • Developed a system for scraping of published data on various web pages.
Technologies: Kotlin, Coroutines, PostgreSQL, RabbitMQ, Solace, JVM, Trading Systems, Distributed Systems

Senior Software Developer

2017 - 2020
Jumpshot
  • Served as the lead developer of the processing pipeline for internal platforms that were used throughout the company.
  • Implemented a custom Spark job scheduling service for continuous application of patterns to data. This allowed for scaling out the computation to keep strict delivery deadlines.
  • Implemented a safe mechanism of mutable data publication on HDFS using snapshotting. This prevented consumer errors and allowed for safe synchronization between clusters.
  • Optimized recalculation algorithms to speed-up the computation by the order.
  • Vastly improved service reliability, resiliency, and monitoring.
  • Completely redesigned the pipeline for processing search engine results, improved source code, and participated in improving data quality.
  • Occasionally led a few other developers on associated tasks.
Technologies: Apache Spark, Scala, Akka Actors, Concurrency, MongoDB, HDFS, Python

Technical Lead

2012 - 2016
ZOOM International
  • Implemented live screen monitoring into existing screen monitoring solutions.
  • Developed integrations with an external system for call recording.
  • Participated in complex bug fixing of business-critical applications.
Technologies: Java, JVM, Multithreading, Linux, Python, Bash

Pattern Application System

This project was responsible for the application of patterns to large-scale data. I was the main developer on this project. Patterns themselves were a moving target, were updated several times a day, and there was a deadline when the pattern has to be applied to all the historical data from the time of its publication.

As updates mutated the resulting data, there had to be a safe publishing mechanism on HDFS and safe synchronization to other clusters. There was a service to expose the current status of patterns for consumers. The pattern application was costly—there was an algorithm to limit the recalculation to just specific parts. Another interesting aspect of this service was the resiliency and the effort to minimize the chances of disrupting the computation by a single bad batch/pattern.

The service itself was a Scala-based application with multiple concurrent Spark jobs spawned into the Cloudera cluster. It used Scala futures and Akka Actors for handling concurrency and MongoDB to persist global computation state and track job states. There was an HTTP API and CLI tool to control various aspects of the running system.

Metrostation Prague

https://github.com/pr0chz/metrostation
A small application to notify users of the current station in Prague metro in the notification bar on Android phone. Prague metro was specific as it had cell signal just in stations—this application exploited that and used a list of GSM cell ids to track and predict the movement of the user. Now the application is outdated as metro tunnels are being covered with signals, and I did not continue with development, but still, it was a nice little hobby project.

Languages

Scala, Kotlin, Python, Java, Bash

Frameworks

Apache Spark, Akka

Platforms

Linux, JVM, Android, AWS Lambda, Kubernetes

Other

Big Data, Concurrency, Coroutines, Multithreading, Computer Science, Akka Actors, Solace, Distributed Systems

Libraries/APIs

Akka Streams

Tools

IntelliJ IDEA, RabbitMQ, Amazon Simple Queue Service (SQS), Amazon Elastic MapReduce (EMR), SBT, Spark SQL

Storage

MongoDB, HDFS, PostgreSQL, Amazon S3 (AWS S3)

Industry Expertise

Trading Systems

2001 - 2008

Master's Degree in Computer Science

Czech Technical University in Prague - Prague, Czech Republic

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring