Paul Lysak, Developer in Kharkiv, Kharkiv Oblast, Ukraine
Paul is available for hire
Hire Paul

Paul Lysak

Verified Expert  in Engineering

Software Developer

Location
Kharkiv, Kharkiv Oblast, Ukraine
Toptal Member Since
February 18, 2015

Paul is a seasoned software developer with over a decade of experience and a focus on Scala, Play, Akka, and Apache Spark. He develops safe, maintainable software that is robust against unintended bugs and transparent for monitoring and diagnostics. He uses computational resources efficiently, developing reactive applications that don't clog up threads.

Portfolio

Databiz
Apache Kafka, Play, Akka, Scala
Sentrana, Inc. (via Toptal)
Redshift, Spark, MongoDB, Play, Scala
Kreditech
MongoDB, RabbitMQ, PostgreSQL, Apache Maven, Hibernate, Spring, Java, Scala

Experience

Availability

Part-time

Preferred Environment

Git, IntelliJ IDEA, Linux

The most amazing...

...thing I've created is a SQL query parser with Scala parser combinators. It was ready to do useful stuff in just two days.

Work Experience

Scala Developer

2017 - 2018
Databiz
  • Developed the back-end for a specialized chat application.
  • Designed and developed a service for integrating the chat application with a CRM.
  • Integrated the chat back-end with MS Azure push notifications.
  • Created a toolset for integration testing of web socket interactions.
  • Developed Scala macros for generating Akka-HTTP routes from Swagger annotations.
Technologies: Apache Kafka, Play, Akka, Scala

Scala Developer

2016 - 2017
Sentrana, Inc. (via Toptal)
  • Implemented the core of the back-end for data transformation workflow.
  • Created a fully reactive user management service and SDK for simple integration into other projects.
  • Led the development of an opportunity analysis system, from early proof of concept to minimum viable product.
  • Did performance and capacity optimizations for a Spark application.
Technologies: Redshift, Spark, MongoDB, Play, Scala

Scala Developer

2013 - 2015
Kreditech
  • Developed an online loan processing application core.
  • Handled investigation and troubleshooting of production issues.
  • Improved system transparency by setting up collection of log metrics and developing an audit trail sub-system.
  • Developed infrastructure for indexing data in Elasticsearch in order to improve scalability and convenience of use.
  • Tuned RabbitMQ queues to ensure that no incoming payments are lost and that system performance is fine.
Technologies: MongoDB, RabbitMQ, PostgreSQL, Apache Maven, Hibernate, Spring, Java, Scala

Java/JavaScript Developer

2011 - 2013
JasperSoft
  • Handled bug fixes and improvements in Jasper Reports Server.
  • Researched the possibility of integrating JavaScript asynchronous modules (AMD) into an existing system. Contributed to some open source tools, for example https://github.com/ibolmo/jasmine-jstd-adapter/pull/18.
  • Developed UI for a federated data source configuration so that multiple databases would look like one large database.
Technologies: jQuery, JavaScript, Spring, Hibernate, Apache Maven, Java

Java Developer

2010 - 2011
Team International
  • Ported parts of a middleware layer of a telecom system from WebLogic to JBoss.
  • Handled bug fixes and improvements for a media content management system.
Technologies: EJB3, jBPM, Enterprise Service Bus (ESB), JBoss, Apache Maven, Hibernate, Spring, Java

Java Developer

2010 - 2010
Grid Dynamics
  • Extended an application for in-memory data grid testing.
  • Developed a data normalization layer for a web crawler.
Technologies: Ruby, jQuery, JavaScript, GWT, Apache Lucene, Hibernate, Spring, Java

Java/JavaScript Developer

2009 - 2010
Freelance
  • Developed parts of a web application for drawing sketches and ordering engravings.
Technologies: jQuery, JavaScript, Apache Maven, DWR, Hibernate, Spring, Java

Java Developer

2007 - 2009
Uniquare
  • Developed a bank teller workplace automation application.
Technologies: JavaScript, Ant Design, Java

ETL Tool for Personal Finance Tracking

https://github.com/paul-lysak/finloader
A tool that parses raw data stored in CSV files, transforms it, and saves it into a relational database for further analysis. I use it for my finance tracking.

CSV Streaming Parser

https://github.com/paul-lysak/CsvStreamingParser
A JavaScript library for parsing large CSV files piece-by-piece.

Serverless Photo Gallery

https://github.com/paul-lysak/gallery-proto
I back up my photos on Amazon S3 and I wanted to be able to browse the backups directly, without prior downloading. The solution has to be cost efficient—it makes no sense to pay for constantly running server when you need it just a few hours per year. At the same time, it has to be always available. So, I leveraged AWS services to build a serverless gallery application:

Cognito - for user management and authentication
Lambda - for custom code that generates thumbnails and signs the cookies
API Gateway - for exposing lambdas through HTTP calls
CloudFront - for caching resized images and authorizing access by checking signed cookies.

The UI was implemented in JavaScript with Vue.js, and lambdas for the back-end in Scala.

The solution works great—when I don't browse the photos, it costs nothing besides S3 storage cost, and when I actively use it, it's just a few cents per month.

Languages

Java, Scala, SQL, Ruby, JavaScript

Paradigms

ETL, Functional Programming, Object-oriented Programming (OOP), Object-oriented Design (OOD)

Frameworks

Play, Akka, jBPM, GWT, Ant Design, Spark, TestNG, Spring, Finagle, Mockito, JUnit, Hibernate

Tools

SBT, Git, IntelliJ IDEA, Spark SQL, Amazon Elastic MapReduce (EMR), ScalaTest, Apache Maven, RabbitMQ

Platforms

Spark Core, JBoss, AWS Lambda, Apache Kafka, Heroku, Linux

Libraries/APIs

Apache Lucene, DWR, Akka Streams, ScalikeJDBC, Slick, jQuery

Storage

Redshift, Amazon S3 (AWS S3), Elasticsearch, MongoDB, PostgreSQL

Other

Enterprise Service Bus (ESB), EJB3, Akka HTTP

2003 - 2009

Master's Degree in Applied Mathematics

Kharkiv Polytechnical Institute - Kharkiv, Ukraine

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