Piotr Maj, Developer in Antwerp, Belgium
Piotr is available for hire
Hire Piotr

Piotr Maj

Verified Expert  in Engineering

Quality Assurance Engineer and Software Developer

Antwerp, Belgium

Toptal member since December 10, 2018

Bio

Piotr is a QA test automation engineer with an abundance of professional experience. He has nine years of specializing in Python and has successfully developed test frameworks from scratch for four companies. He has spent the past few years growing in continuous integration, SCM, and DevOps. Piotr is experienced working in an Agile environment using Scrum and Kanban methodologies.

Portfolio

Tatango
Python, JavaScript, Automated Testing, Testing, E2E Testing, Vi, QA Leadership...
Alteryx
Test Automation, Test Automation Frameworks, Quality Assurance (QA), Agile...
Telenet | Liberty Global
Test Automation, Jira, Agile, Ansible, Grafana, Kibana, Kubernetes, Docker...

Experience

  • Python - 10 years
  • Quality Assurance (QA) - 9 years
  • Test Automation - 9 years
  • Scrum - 6 years
  • Linux - 6 years
  • Test Automation Frameworks - 6 years
  • Agile - 6 years
  • Git - 5 years

Availability

Part-time

Preferred Environment

Debian, Linux, Vim Text Editor, PyCharm, Subversion (SVN), Git

The most amazing...

...thing I've developed and tested are my frameworks for multiple clients. After many years of continuous improvements, they are now close to perfection!

Work Experience

Senior QA Test Automation Engineer

2020 - 2021
Tatango
  • Developed a Python test automation framework from scratch for the Tatango web interface and ported all tests from the previous JavaScript framework.
  • Extended the test framework to simultaneously test the old web interface that was in production, the new web interface being developed, the internal API, and the external PublicAPI.
  • Guided and trained new team members while we were building the test team.
Technologies: Python, JavaScript, Automated Testing, Testing, E2E Testing, Vi, QA Leadership, PyCharm, Bash Script, Sed, Kanban, Selenium Page Object, Selenium PageFactory, Selenium WebDriver, Uservices, Regular Expressions, Manual QA, Website QA, QA Testing, UI Testing, Automation, UI Automation, Browser Automation, Automation Tools, Automated UI Testing, GUI Testing, API Testing, UX Testing, Software Design, QA Automation, Scrum, Jira, Linux, Debian, GitHub, Git, Bash, Selenium, Regex, Quality Assurance (QA), Software QA, Test Cases, Test Planning, QA Test Plan Management, Black Box Testing, Object-oriented Programming (OOP), Manual Testing

QA Test Automation Engineer

2019 - 2020
Alteryx
  • Implemented a specific automation framework for Alteryx Machine Learning, a machine learning toolkit and the newest product of Alteryx, on top of the existing general test framework.
  • Made several improvements to Alteryx's general test framework and extensions, making writing automated tests more efficient. One of them was porting to pytest-runner.
  • Implemented over 200 complex end-to-end test cases with a total execution time of over ten hours.
Technologies: Test Automation, Test Automation Frameworks, Quality Assurance (QA), Agile, Scrum, Python, QA Automation, Pywinauto, Chromium Embedded Framework (CEF), Selenium, Automated Testing, Testing, E2E Testing, PyCharm, Continuous Integration (CI), Jenkins Pipeline, Selenium Page Object, Selenium PageFactory, Selenium WebDriver, TestLink, Selenium IDE, Regular Expressions, Manual QA, Website QA, QA Testing, UI Testing, Automation, UI Automation, Browser Automation, Desktop Automation, Automation Tools, Automated UI Testing, GUI Testing, UX Testing, Software Design, GitLab, Git, Jenkins, Windows, Regex, Software QA, Test Cases, Test Planning, QA Test Plan Management, Black Box Testing, CI/CD Pipelines, Object-oriented Programming (OOP), Manual Testing

Senior System Integration Engineer

2017 - 2019
Telenet | Liberty Global
  • Integrated and validated internal STB components for an E2E system; specifically, integrated STB with HE components of a large-and-complex digital broadcasting TV system.
  • Automated the generation and deployment of STB configuration files for various production environments in six countries fully. This was challenging from the technical, architectural, and management sides as multiple teams were involved.
  • Facilitated the work processes of many engineers in terms of time and eliminated configuration errors that have been causing many issues from customers in the field.
  • Analyzed and reported issues in complex network flows.
  • Reviewed deployment of Ansible scripts for a large number of μServices.
  • Analyzed issues coming from different countries which were using our system.
Technologies: Test Automation, Jira, Agile, Ansible, Grafana, Kibana, Kubernetes, Docker, Microservices, Git, Bash, Python, Testing, E2E Testing, Vi, QA Leadership, Bash Script, Sed, Uservices, Regular Expressions, Manual QA, QA Testing, Automation, Automation Tools, API Testing, Linux, Debian, Elasticsearch, Regex, Quality Assurance (QA), Software QA, Test Cases, QA Test Plan Management, Black Box Testing, Manual Testing

Managing Director

2016 - 2017
Asper
  • Led a small startup business consisting of six employees.
  • Successfully designed and produced a series of vending machines to sell candles and lanterns in cemeteries, all within less than a year.
  • Noticed a specific retail need in the Polish market and automated it. In Polish culture, it is very popular to go to the graveyard and light lanterns in memory of loved ones; this makes the market for selling candles huge and worth automating.
  • Gained a lot of experience related to managing people and projects.
Technologies: Asana, C, Bash Script, Manual QA

Senior Embedded Software Developer (Testing)

2014 - 2016
Irdeto
  • Worked on two security-related projects that were a part of Irdeto's conditional access system for broadcasting digital TV.
  • Developed a secure bootloader and RAM apps for a secure processor.
  • Redesigned a Python test framework in such a way that sped up test execution, made writing test scripts easier and increased maintainability and scalability.
  • Improved the development-and-deployment process by implementing continuous integration using Jenkins, formalized the review process using Gerrit, and introduced coding standards.
  • Maintained and developed the smartcards used for all cryptographic operations needed by set-top boxes.
  • Oversaw and maintained, improved, and refactored a huge test suite of more than 2,500 test cases.
  • Supported newer senior members of the software test team through coaching, mentoring, and advising.
Technologies: Test Automation, Test Automation Frameworks, Quality Assurance (QA), Agile, Scrum, QA Automation, Tcl, Regular Expressions, Nose, CVS, Git, C, Jenkins, Python, Automated Testing, Testing, Vi, QA Leadership, PyCharm, Continuous Integration (CI), Bash Script, Sed, Jenkins Pipeline, TFS, Transaction Control Language (TCL), Manual QA, QA Testing, Automation, Build Automation, Software Design, Linux, Bash, Regex, Software QA, Test Cases, Test Planning, Embedded Systems, Firmware, Black Box Testing, Microcontrollers, CI/CD Pipelines, Object-oriented Programming (OOP)

QA Test Automation Engineer

2014 - 2014
Egnyte
  • Spearheaded and maintained a test automation project associated with enterprise cloud file-sharing solutions.
  • Developed a test framework and scripts based on Python, Selenium, and AppleScript to test hybrid cloud solutions and a desktop application on macOS X platforms.
  • Helped other teams to improve their automation frameworks and shared my knowledge with them.
Technologies: Test Automation, Test Automation Frameworks, Quality Assurance (QA), Jira, Agile, Scrum, QA Automation, Git, AppleScript, Selenium, Python, Automated Testing, Testing, E2E Testing, PyCharm, Continuous Integration (CI), OS X, Bash Script, Sikuli, Manual QA, Website QA, QA Testing, UI Testing, Automation, UI Automation, Browser Automation, Desktop Automation, Automation Tools, Automated UI Testing, GUI Testing, UX Testing, Software Design, Jenkins, Software QA, Test Cases, Test Planning, Black Box Testing, Microcontrollers, Object-oriented Programming (OOP), Manual Testing

Software Configuration Manager

2013 - 2013
Nokia
  • Maintained and developed a multipurpose build-system for a type of specialized telecommunications (LTE) software.
  • Administered the continuous integration build servers and infrastructure.
  • Worked as a part of an SCM team responsible for Linux administration, maintaining the Makefiles, central build scripts, and the test automation of the production toolset.
  • Developed Bash, Python, and Make-based scripts for build automation.
Technologies: Jira, Agile, Make, Bash, Python, Testing, Vi, Bash Script, Manual QA, QA Testing, Automation, Linux, Regex, Quality Assurance (QA), Software QA, Object-oriented Programming (OOP)

Smartcard Test Object Lead

2011 - 2013
ST-Ericsson
  • Verified the SIM, USIM, SAT, ISIM and AT commands for a mobile platform functionality against ETSI, 3GPP, and internal standards.
  • Automated regression tests in Python, created test plans test cases, and developed test tools in Python.
  • Analyzed the test basis and identified test conditions while working on the system and integration test levels.
Technologies: Test Automation, Test Automation Frameworks, QA Automation, Regular Expressions, Python, Automated Testing, Testing, Kanban, Manual QA, QA Testing, Automation, Automation Tools, C, Quality Assurance (QA), Software QA, Test Cases, Test Planning, Embedded Systems, Firmware, Black Box Testing, Microcontrollers, Object-oriented Programming (OOP)

Experience

Test Framework for a Web App and API

Developed a Python test automation framework from scratch for the Tatango web interface and ported all tests from the previous JavaScript framework. I extended the test framework to simultaneously test the old web interface in production, the new web interface, the internal API, and the external public API.

Test Suite for a Machine Learning Toolkit in Alteryx's Windows Application

Performed the test automation of the machine learning toolkit, which is a part of Alteryx Designer, the Windows desktop software for data science. I used Python, Selenium in CEF mode, and pywinauto for automation. During six months, I built a test suite of more than 200 complex end-to-end test cases from scratch, with an execution time of over 10 hours.

Test Framework for Secure CPUs

As a software developer, I constructed a Python framework to fulfill the need for the integration and component testing of ROM and RAM applications, with the added complication of CPUs being from multiple vendors.

Test framework details included:
• Server – The issue was that all vendors used a different communication protocol, and usually, only 2 – 3 FPGA boards were available for chip simulations for a team of 10 engineers. I developed a separate server for each vendor. Most servers were written in Python, but some required vendor-specific languages, such as Tcl.
• Test base – Having one suite of test cases and libraries for all vendors and chip types enabled us to perform the same scenario slightly differently if necessary.
• Runner – This was based on keywords assigned to each test case. The run configuration was collecting an appropriate list of tests to run for a given vendor, chip type (simulated or real), and application. It also included or excluded some logical groups of tests, such as those for real chips, while destructive tests were excluded by default. The runner was written as a plugin for nose tests, support, and test reports for a MySQL database.

I used Python, nose, MySQL, and Tcl on this project.

Test Framework for a macOS X Desktop Application

Working as a QA test automation engineer, I developed a test framework in Python to test macOS X desktop applications. I also developed scripts to test two Egnyte applications. One was made to synchronize files with the cloud, and the second, the more advanced one, was supposed to give users the impression that they were editing files directly on the cloud. Both applications were configurable via a web interface.

For the automation of the testing process, this framework provides all the tools to install and uninstall a tested app using AppleScript, configure it using Selenium, and manipulate and generate different types of files. The framework also simulates user experience working with the most popular desktop apps, such as Microsoft Word, Excel, PowerPoint, and Adobe Photoshop. This way, we can properly test how these applications deal with files in the cloud.

I used Python, Selenium, and AppleScript on this project.

Script for Software Configuration and Deployment

Working as an integration engineer on this project, I developed a Bash script to generate JSON configuration files and deploy them together with software into multiple data servers.

The script can be logically divided into two parts:
• Configuration – The service transforms multiple types of configuration files. The validation schema fulfills the requirements for six different STB models for four types of environments in six countries. Each of them supports 3 – 8 different variants for a specific group of customers, dealing with several top-level real-time configuration parameters.
• Deployment – This script needed to cope with the configuration files and software in specific locations, validating if the files hadn't been corrupted.

I used Bash, sed, AWK, jq, JSON, and Secure Copy Protocol (SCP) on this project.

Outdoor Vending Machines for Selling Candles in Graveyards

This project aimed to design and produce a series of vandal-proof vending machines that sold candles located in graveyards.

On this project, I was the company owner and primarily responsible for project and line management. I also took part in the functional design process and graphic design. We bought old Coca-Cola vending machines from the US, importing them to Poland via a German company (it was still cheaper to do that than buy directly in Poland). We then removed all the old electronics and replaced the mainboard, coin, and bill selectors with those manufactured by the Taiwanese company ITC. We integrated it with a designed module for battery power and the rest of the existing mechanical parts.

The last phase involved designing and producing the armor to make the machines as vandal and environment-proof as possible and creating the marketing and graphic design, which I did by myself, to make the machines look great.

Software for the Semantic Analysis of Publication Content

For my master's thesis, I developed software for the semantic analysis of the content in PDF publications written in English. The software was written in Python using the Natural Language Toolkit (NLTK) library and Qt library for the user interface.

TECHNOLOGIES
Python, NLTK, and Qt.

Light Intensivity Meter

As a part of my internship as an electronic designer, I designed and developed a device measuring the intensity of light and sending the results to the multimeter via RS232.

TECHNOLOGIES
C, Assembly, and Eagle.

Handling Assert Messages

The code that enables you to interpret received and expected responses to provide pertinent information when an assertion fails.

This project's complexity was related to the fact that communication with different devices was done through the same protocol, but the same value for status messages had other meanings. This function allows you to interpret the status message correctly depending on which communication class was used.

Education

2006 - 2011

Master's Degree in Microsystem Electronics and Phonics

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

Certifications

FEBRUARY 2015 - PRESENT

ISTQB – Advanced Level Test Analysis

ISTQB

Skills

Libraries/APIs

Jenkins Pipeline, Pywinauto, Selenium WebDriver, Sikuli, Uservices

Tools

Jenkins, GitHub, Git, Jira, TFS, PyCharm, Vim Text Editor, Ansible, Asana, CVS, Subversion (SVN), Make, Apache Maven, Kibana, Grafana, GitLab, Shell, Pytest

Languages

Python, Bash, Bash Script, Sed, Regex, Tcl, Java, AppleScript, C, Transaction Control Language (TCL), JavaScript, Python 2, C++, Python 3, PyPy

Frameworks

Selenium, Nose, Chromium Embedded Framework (CEF)

Paradigms

Scrum, Agile, Test Automation, Automated Testing, Testing, E2E Testing, Automation, Object-oriented Programming (OOP), Manual Testing, Kanban, Continuous Integration (CI), Microservices, Management

Platforms

Linux, Debian, OS X, Windows, Docker, Kubernetes, TestLink, MacOS

Storage

Elasticsearch

Other

Quality Assurance (QA), Test Automation Frameworks, QA Automation, QA Test Plan Management, Software QA, Test Cases, Manual QA, Website QA, QA Testing, UI Testing, UI Automation, Browser Automation, Automation Tools, Automated UI Testing, GUI Testing, API Testing, UX Testing, Test Planning, Black Box Testing, Vi, QA Leadership, Regular Expressions, Build Automation, Desktop Automation, Software Design, Embedded Systems, CI/CD Pipelines, Microcontrollers, Selenium IDE, Selenium Page Object, Selenium PageFactory, Secure Copy Protocol (SCP), Data, Machine Learning, Firmware

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