Roman Bartusiak, Developer in Wrocław, Poland
Roman is available for hire
Hire Roman

Roman Bartusiak

Verified Expert  in Engineering

Artificial Intelligence Developer

Wrocław, Poland

Toptal member since March 26, 2018

Bio

Roman is an award-winning Ph.D. candidate in the field of artificial intelligence, but his love for technology started far earlier. Roman started programming at the age of 12, and at 13, sold his first software program. Roman also has broad expertise in machine learning and software development in multiple languages and paradigms. He likes to apply efficient solutions in order to optimally utilize resources in order to solve real-life problems.

Portfolio

Asia Wealth Platform Pte Ltd
Scala, Akka, Lagom, Cassandra, Kotlin, Micronaut, Apache Kafka, Node.js, NoSQL...
Roosters IO
Big Data, Akka Actors, Artificial Intelligence (AI), Apache Spark...
IamBot
Akka Actors, Convolutional Neural Networks (CNNs), Neural Networks...

Experience

  • Java - 6 years
  • Artificial Intelligence (AI) - 5 years
  • Scala - 5 years
  • Apache Kafka - 5 years
  • React - 4 years
  • Rust - 3 years
  • GraphQL - 3 years
  • Kotlin - 1 year

Availability

Part-time

Preferred Environment

Arch Linux, Visual Studio Code (VS Code), IntelliJ IDEA, Git, Zsh, Sublime Text, Linux

The most amazing...

...thing I've coded is an open-source library SparklingGraph that helps process graphs in distributed environments.

Work Experience

Scala Expert

2020 - PRESENT
Asia Wealth Platform Pte Ltd
  • Contributed to a highly scalable platform using Akka, Lagom, and Kubernetes.
  • Modified tools to improve version upgrades, including implementing breaking changes on Lagom.
  • Migrated to a Kotlin, Micronaut, microservices-based trader platform.
Technologies: Scala, Akka, Lagom, Cassandra, Kotlin, Micronaut, Apache Kafka, Node.js, NoSQL, REST APIs, SQL, TypeScript, Unix, RDBMS

Owner (Freelance)

2016 - PRESENT
Roosters IO
  • Implemented person detection and tracking for both wifi and Bluetooth using Rust.
  • Developed a method to estimate a person's gender and age using Kairos SDK.
  • Enabled people detection in a CCTV stream using multiple machine-learning methods.
  • Created web applications using Rust Rocket and React.
  • Determined a person's gender and estimated the age using Affectiva SDK.
  • Built an RFID tag scanner using Rust and User Diagram Protocol communication.
Technologies: Big Data, Akka Actors, Artificial Intelligence (AI), Apache Spark, Machine Learning, JavaScript, Rust, Python, Scala, Java, Unix, RDBMS

CTO | Co-founder

2017 - 2020
IamBot
  • Built image similarity models using TensorFlow. Developed convolution DDNs for image representation and cross-image similarity calculation.
  • Developed the back end using the Play framework, Akka, and Cats.
  • Implemented Akka-based work distribution. Sharded work in order to increase the scalability and parallelism of the app.
  • Developed a React, Redux, Sagas, and Relay dashboard using the Metronic template.
  • Worked with natural language processing (NLP) and natural language understanding (NLU) based on word vectors.
  • Utilized GoogleML in order to train machine learning models.
  • Designed and implemented deployment procedures using Kubernetes and Helm.
  • Utilized multiple languages in microservices that communicated using gRPC.
  • Created transformer-based language models using PyTorch.
Technologies: Akka Actors, Convolutional Neural Networks (CNNs), Neural Networks, Artificial Intelligence (AI), Machine Learning, gRPC, Helm, Kubernetes, Relay, GraphQL, Rust, Python, React, TensorFlow, Play Framework, Scala, Unix, RDBMS

IT Consultant | Research Assistant

2015 - 2016
Wrocław University of Science and Technology
  • Implemented an SSO platform based on OAuth 2 using Spring.
  • Integrated multiple services using Docker.
  • Maintained experimental environments.
  • Managed Spark clusters.
  • Executed data backups using IBM Tivoli.
Technologies: Angular, Spring, JavaScript, Java, Unix

Software Architect

2013 - 2015
Nokia Networks
  • Developed Vaadin portlets and components (GWT, JavaScript).
  • Created JEE web services.
  • Built a proof of concept (POC) using Angular.
  • Developed web service clients.
  • Managed a private Docker hub.
  • Created a full deployment solution using Jenkins and Docker.
Technologies: Angular, GWT, JEE, Vaadin, Java, Unix

Web Developer

2012 - 2013
Chop-Chop.org
  • Supported a Magento store.
  • Wrote Java software that parsed PSD files.
  • Translated PSD files to HTML code.
  • Wrote custom JavaScript scripts.
  • Developed custom Magento modules.
Technologies: JavaScript, CSS3, HTML5, Unix

SparklingGraph

Using SparklingGraph, you can do fast computations on your graph data. You can utilize the computational power of multiple nodes but also compute on your own laptop thanks to the power of Apache Spark. SparklingGraph provides many graph measures but also gives you the ability to easily load graphs from many common formats like CSV, GML, and more.

Sentinent Analysis for Polish Language using SVM and BoW

https://github.com/riomus/polish-sentiment
A self-containing project that enables users to classify texts in terms of sentiment. Using a provided docker image, you can easily use state-of-the-art NLP methods for the Polish language and achieve cutting-edge results in sentiment analysis tasks. The provided API classifies the text in terms of two sentiment classes: positive and negative.

HMM.js

https://github.com/riomus/HMM.js
These are Hidden Markov models implemented in JavaScript with Viterbi algorithms for learning. The library gives you the ability to create and train Hidden Markov Models, that can be used in many tasks like sequence classification, NLP, and more. By using low-level JavaScript primitives, the library achieves low classification and training times.

Gesture Recognition

https://github.com/riomus/GestureRecognition
This is a program for gesture recognition for JavaScript using Hidden Markov Models. The project utilizes HMM.js and OpticalFlow.js in order to classify user gestures captured using a webcam. Using that library, you can create games that utilize gestures as a controller.

Vibe.js

https://github.com/riomus/vibe.js
A ViBE background subtraction algorithm implemented in JavaScript (with performance optimizations). The library utilizes low-level JavaScript primitives in order to utilize low processing times for each video frame. Using this library, you can create projects that can easily detect non-backgrounds on webcam video streams (or other video sources).

OpticalFlow.js

https://github.com/riomus/OpticalFlow.js
An optical flow that was implemented in JavaScript. The library implements optical flow based movement detection in video streams. It can be utilized to detect movements and then processes it in order to detect gestures. Using this library, you can detect the direction of the movement on each pixel between two video frames.
2015 - 2021

Ph.D. in Computer Science (Artificial Intelligence)

Wrocław University of Science and Technology - Wrocław, Poland

2014 - 2015

Master's Degree in Computer Science (Artificial Intelligence)

Wrocław University of Science and Technology - Wrocław, Poland

2010 - 2014

Engineer's Degree in Computer Science

Wrocław University of Science of Technology - Wrocław, Poland

APRIL 2020 - PRESENT

Reactive Architecture (5): Distributed Messaging Patterns

Lightbend, Inc.

APRIL 2020 - PRESENT

Reactive Architecture (4): Building Scalable Systems

Lightbend, Inc.

APRIL 2020 - PRESENT

Reactive Architecture (3): Reactive Microservices

Lightbend, Inc.

MARCH 2020 - PRESENT

Reactive Architecture (2): Domain Driven Design

Lightbend, Inc.

MARCH 2020 - PRESENT

Reactive Architecture (1): Introduction to Reactive Systems

Lightbend, Inc.

OCTOBER 2015 - PRESENT

Machine Learning

Stanford University via Coursera

SEPTEMBER 2014 - PRESENT

Java Standard Edition 6 Programmer Certified Professional

Oracle University

APRIL 2014 - PRESENT

Functional Programming Principles in Scala

École Polytechnique Fédérale de Lausanne via Coursera

JULY 2013 - PRESENT

Introduction to Software Development on SAP HANA

SAP

Libraries/APIs

Node.js, GraphX, Akka Streams, REST APIs, Spark ML, React, Sangria, TensorFlow, AssertJ, PyTorch, jQuery

Tools

Apache Maven, Helm, SBT, GitLab CI/CD, LaTeX, GitHub Pages, GitHub, GitLab, Git, Redux Thunk, Sublime Text, IntelliJ IDEA, Docker Compose, Oh My Zsh, Zsh, Jenkins, Travis CI, Redmine, Adobe Photoshop

Languages

Java, Python 2, Python 3, GraphQL, Scala, Python, HTML5, JavaScript, JavaScript 6, Rust, SQL, TypeScript, Bash, Sass, CSS3, C++, Kotlin

Frameworks

Apache Spark, Akka, Spark, Play Framework, Play 2, Relay, gRPC, Angular, Spring, Redux, Mockito, Spring 5, GWT, Swagger, Compass, Vaadin, Lagom, Micronaut

Paradigms

Web Architecture, Distributed Computing, DevOps, Test-driven Development (TDD), Testing, Functional Programming, Scrum, Agile Software Development, Clean Code, API Architecture, Reactive Programming, Microservices, DRY, REST, Pair Programming, Object-oriented Programming (OOP)

Platforms

Docker, Arch Linux, Kubernetes, Amazon Web Services (AWS), Linux, Unix, Visual Studio Code (VS Code), JEE, Azure, Android, Apache Kafka

Storage

MongoDB, Elasticsearch, MySQL, PostgreSQL, Redis, NoSQL, RDBMS, JSON, Cassandra

Other

Akka Actors, Machine Learning, Natural Language Processing (NLP), Artificial Intelligence (AI), Neural Networks, Deep Neural Networks (DNNs), Convolutional Neural Networks (CNNs), Graphs, OOP Designs, APIs, Sagas, Generative Pre-trained Transformers (GPT), EMR, Responsive Web Apps, Web Development, Cloud, Big Data, Code Architecture, Message Queues, Scalability, Reactive Streams, Domain-driven Design (DDD), SOAP, GitFlow, SSH, Word2Vec

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