Piotr Persona

Software Engineer

backend • distributed systems • cloud-native technologies

Contact

If you have any questions or feedback please do not hesitate to contact me via email:

contact@piotrpersona.com

You will find me on:

Commercial experience

Legalzoom

Kraków, Poland (remote)

Apr 2023 - present

Senior Software Engineer

🔧 Go, gRPC, Kubernetes, AWS, Redshift, NER, VGG16, OpenCV, React.js, Typescript, Python

Working in Mail Processing team responsible for digitalization and physical mail delivery.

Highlights:

  • Development of gRPC and GraphQL APIs;
  • Integration with 3rd party API shipment provider;
  • Image similarity analysis using neural network and agglomerative clustering techniques;
  • Training detectron2 object detection model on AWS Sagemaker;
  • Smart crop implementation using OpenCV and YOLO;
  • Sender detection using NER (Named Entity Recognition) and custom algorithm;

Champion Tech Limited

Douglas, Isle of Man (remote)

Apr 2022 - Apr 2023

Senior Software Engineer

🔧 Go, gRPC, Docker, Kubernetes, Chlickhouse, Nats, Redis, ScyllaDB (Cassandra)

Working as a Senior Software Engineer on sports betting backend system. I was responsible for delivering data from sports feed provider to end user via Nats and Websockets. I designed and implemented automatic feature maintenance feature based on metrics and manual feature toggle API in gRPC. I was invloved in the development of referal system, specifically in the virtual wallet implementation.

Highlights:

  • Designed and implemented system maintenance service in Go, communication via Nats and gRPC;
  • Integrated sports feed provider with Sportsbook application, in Go via Nats and Websockets;
  • Invented and implemented decimal to fractional conversion algorithm in Javascript;
  • Introduced and implemented Opentelemetry standard to the company, working with SRE team to deploy and operate Jaeger, Uptrace, Grafana and Prometheus;
  • Optimizing gRPC APIs and Websockets using distributed tracing;
  • Designed and implemented virtual wallet compontent using MySQL;
  • Improving technical stack by implementing tests, automatic versioner tool and adivising technical solutions;
  • Contribution to internal Golang tooling and frameworks;
  • Mentoring and helping developers;

G2A

Kraków, Poland (remote)

Feb 2020 - Apr 2022

Go Developer/Software Solutions Architect

🔧 Go, Docker, Kubernetes, Helm, Kafka, Redis, MongoDB, Microservices, Event-sourcing

I started as a Golang developer working on Payment API Gateway prodcut. Then I worked on breaking down PHP monolithic application to microservices using Event Sourcing/CQRS based solution, implemented in Go. The team cosisted of 3 developers, scrum master, product owner and QA engineer. The entire process followed scrum and agile practices including meetings such as: daily stand-up, planning, refinement, demo and retrospective. After 1.5 year I was assigned the responsibilities of Software Solutions Architect in Payments Domain, which included: design and architecture meetings, leading technical direction of software in Payments domain according to company standards, adivising technical solutions and decisions and leading internal Go developers group. I attended internal G2A Remote Hackaton and was in the winning team twice.

Highlights:

  • Designed and implemented event sourcing-based solution in Go to record payment transactions logs, using Kafka as message bus, Redis and MongoDB to persist data;
  • Building Event Sourcing and CQRS system for payment transaction processing;
  • Designed and implemented software release automation tools with Jenkins CI/CD system to meet GitFlow workflow;
  • Architected and implemented payment transaction status notification solution;
  • Led and implemented payments system transaction changelog with Big Data Spark platform using Go, Kafka and Kubernetes;
  • Contributed to Java regression tests;
  • Designed and implemented performance soak and spike tests on Kubernetes using Go vegeta library;
  • Coordinated technical direction of teams in Payments domain as a Solutions Software Architect;
  • Contributed to company internal Golang libraries;
  • Led and coordinated internal Golang developers group meetings and direction;
  • Golang application monitoring with Prometheus, Grafana, Kibana and Opentelemetry (OTEL);
  • Detected and solved memory leak issues;
  • Optimized Go applications CPU throttling and usage using pprof;
  • Mentoring and helping developers;

Samsung R&D Poland

Kraków, Poland (on-site)

Sep 2018 - Jan 2020

Junior Software Engineer

🔧 Docker, Ansible, Nginx, Kubernetes, Helm, Python, Jenkins, Grafana, Prometheus, Skydive network

I joined the team, which was building Grafana, InfluxDB and Collectd based cloud monitoring solution. I implemented automation program with in Python, which was running Ansible roles under the hood to install monitoring components. Then I was working with Senior developer on installing Kubernetes cluster on top of Openstack virtual machines. My responsibility was to implement Ansible roles to install Kubernetes in version 1.14. My next project was implmentation of custom Kubernetes network plugin using Nginx. The solution was tailored for the specific usage of network developers by network architect. Development was done in Python 3.6 and deployed to Kubernetes cluster using Helm.

Highlights:

  • Automated monitoring system (Grafana, InfluxDB, ELK) management and configuration with Python and Ansible;
  • Implemented installtion API with Python;
  • Automated installation of Kubernetes 1.14 cluster on OpenStack VMs using Ansible;
  • Implemented custom LBaaS on top of Kubernetes with Nginx and Python;
  • Working in a Scrum;

Education

distributed databases, NoSQL databases, iOS development, Machine Learning, Advanced programming in Python, Natural Language Processing

Thesis topic:

Application of Topological Data Analysis in the development of the COVID-19 pandemic

The thesis presents application of Topological Data Analysis in the development of COVID-19 pandemic. The research was done on data from CSSEGISandData/COVID-19 GitHub repository, which contains daily history of pandemic development. The goal of this experiment was to detect hidden features and connection in the subject data set, which may be useful in combating with pandemic. Methods of Topological Data Analysis on time-series data were applied, in order to explore data.

Advanced C++, Python in Telecommunication, Relational databases, Algorithms and data structures, C++ in Telecommunication

Thesis topic:

Online cruise booking system presented on a website

The thesis describes software development strategies, observations, issues and their solutions faced during web application development process in association with Ster company. It also contains programming tools characteristic, with justification for the choice and presents how the system works. I implemented backend in both Python and Golang with MySQL database and hosted the application on Heroku.

Projects

keywords:community detection, louvain algorithm, go

Github users community detection visualisation. gg will extract user related resources from Github and construct a graph presenting relationships among the users.

keywords:microservices, message queues, ios, python

Application which sends a notification based on calendar event location and current location, considering estimated travel time by selected form of transport.

keywords:javascript, react, youtube

Set breakpoints on any youtube video and resume playback. Intented to be used when transcribing songs by ear.

keywords:jazzicon, generator, avatar, vue

Static app hosted on github pages which generates and displays jazzicon with download option.

keywords:chrome, extension, typescript, react, antdesign

Chrome Extension which sorts bookmarks recursively by attribute using React.js, Typescript and Antdesign.

keywords:setup, automation, ansible

The entire development environment setup in a single repository

Music

Below are the latest Spotify releases I contributed to on guitar.