Piotr Maj
Verified Expert in Engineering
Quality Assurance Engineer and Software Developer
Antwerp, Belgium
Toptal member since December 10, 2018
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
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
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
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.
QA Test Automation Engineer
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.
Senior System Integration Engineer
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.
Managing Director
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.
Senior Embedded Software Developer (Testing)
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.
QA Test Automation Engineer
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.
Software Configuration Manager
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.
Smartcard Test Object Lead
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.
Experience
Test Framework for a Web App and API
Test Suite for a Machine Learning Toolkit in Alteryx's Windows Application
Test Framework for Secure CPUs
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
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
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
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
TECHNOLOGIES
Python, NLTK, and Qt.
Light Intensivity Meter
TECHNOLOGIES
C, Assembly, and Eagle.
Handling Assert Messages
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
Master's Degree in Microsystem Electronics and Phonics
Wrocław University of Technology - Wrocław, Poland
Certifications
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
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring