Joining FreshOffice

Sep 2013 — Jan. 2014

My career in IT, I started as a Trainee QA engineer at FreshOffice. My growing interest and understanding of the product led me to become more involved in the processes of the project.

I wanted to understand everything about our project. How does it work? Why is this issue happening? How can this issue be fixed? Can I somehow help in solving it? I asked so many questions that one day, our CEO mentioned there was an opening for a Junior QA engineer, and I could join if I want to. And so, I decided to give it a try.

Mastering QA

Jan. 2014 — Dec. 2014

In January 2014, I joined FreshOffice QA team as a Junior QA Engineer. As a newcomer, I had a lot to learn about quality assurance, the development process, and IT overall. Luckily, our team of amazing engineers and product managers guided me through this transition period, enabling me to experience my first successes and failures.

At the beginning, I focused on learning the quality assurance practices, processes, and tools. Apart from that, I tried to contribute as much as possible to the project's quality, even as a newcomer. I found myself in a position between the development and support teams, helping both with information exchange, providing guidance to the support team.

Turning into an Engineer

Jan. 2015 — Feb. 2016

In 2015, after mastering the core quality assurance practices, I began working with the testing documentation. Combining my product knowledge and some existing practices, I successfully built test coverage for the crucial features. At the same time, I delved more deeply into software development as a process, working closely with the dev team.

During that year, I continued to develop my skill set. I actively engaged in the development process, contributed to feature planning. At this point, I was able to cover new functionalities with properly shaped testing documentation, test the new features, and fully participate as a team member.

Project Review

At the beginning of 2016, the company faced a financial crisis. As part of the solution, it was decided to focus on supporting existing functionality rather than development. With my greatest appreciation of all I've got at FreshOffce, I decided to move on to the next project - AdvisorEngine.

What I’ve learned at FreshOffice:
- Mastering the quality assurance processes and tools is a long-term goal.
- Constant learning helps to overcome the fear of failure.
- Working with an experienced and kind team is priceless.
- Even great and successful projects sometimes face a crisis.

Joining AdvisorEngine

Mar. 2016 — May 2017

I joined the AdvisorEngine development team in March 2016 and started with contributing to the testing documentation, as the existing coverage was insufficient for comprehensive testing. To enhance our testing process, I completely revised the approach to testing documentation on the project. This involved rewriting every test case for improved readability and implementing TestRail as the standard tool within the company.

All these efforts helped expand the test scope from 200 to almost 700 test cases within a few months. Simultaneously, due to the enhanced readability, well-planned decomposing, and restructured test plans, the median regression time decreased by 10-25%. This better coverage significantly reduced the number of defects encountered after releasing into production.

Focusing on Product Documentation

May 2017 — Apr. 2018

Starting in May 2017, I shifted my focus to working with product documentation.
By that time, we already had comprehensive testing documentation and well-tuned processes. This allowed me to concentrate on upcoming features.

A critical aspect of this period was AdvisorEngine's rapid growth in startup mode, making it challenging to keep up with changes. The information from product owners often only covered high-level use cases, leaving gaps that could lead to feature-related issues.

To address this, I began developing in product requirements before the development stage started. I concentrated on gathering as much information as possible, preparing product specifications for discussion, and contributing with my UI/UX expertise.

With well-prepared product documentation, we successfully reduced the number of feature-related issues. Both the quality assurance and development teams benefitted, as we no longer wasted time fixing problems that could have been prevented. Later, we implemented this useful practice on the company level for the our quality assurance engineers form the other projects.

Switching to Backend Testing

Apr. 2018 — May 2019

As AdvisorEngine continued to grow, we encountered numerous issues related to the backend and data. These challenges were largely due to the involvement of many third-party integrations serving as data sources. To protect PII, we used isolated and independently obfuscated data sources. This, combined with complex APIs, made development and testing extremely challenging.

In April 2018, I shifted my focus to testing the backend. Along with the backend team, we examined the issues related to integrations with third-party services. As a result, we merged my product expertise with their technical skills to mock all possible use cases and set up mock servers for optimal behavior emulation.

To provide more tools for our team-members, I prepared many collections of requests for Postman. These collections assisted my QA colleagues in testing the backend of the project and its integrations with third-party data sources.

One particular data source was problematic in terms of performance. Having completed a course in performance testing essentials, I was asked to make a performance test for the provider. In collaboration with the DevOps team, we set up the infrastructure, ran tests, and shared the results with the data source provider. After tuning adjustments were made on the provider's side, we achieved satisfactory results.

Project Review

In May 2019, I finished working at AdvisorEngine to join GroupDoLists, as the latter required extra quality assurance expertise. Less than a year later, AdvisorEngine was acquired by Franklin Templeton, a global investment management organization.

Throughout these years, I was driven by a passion for knowledge and managed to evolve from an engineer who knows the essentials, to a team member capable of handling any aspect of the project. I mastered a wide range of skills, worked hard, and ultimately left the project in a state that any engineer would be proud of.

What I’ve learned at AdvisorEngine:
- Working on product documentation with attention is a crucial part of the development process.
- Conducting in-depth backend testing using a comprehensive toolset helps to uncover many issues.
- Sharing knowledge across the team also promotes the growth of the person sharing.
- Engaging in the entire development process as an integral team member boosts performance.
- Implementing best practices in the quality assurance process is always rewarding.
- Taking responsibility and making the right decisions is the key to success.

Joining GroupDoLists

May 2019 — Sept. 2019

I joined the GroupDoLists project to strengthen the quality assurance team. The project was struggling due to a lack of testing and product documentation, frequent changes in the product concept at late stages, and an unclear development roadmap.

Initially, I focused on enhancing the existing testing documentation, expanding coverage, and improving test plans. I revised ~200 existing test cases, transforming them into 700+ well-decomposed ones that covered all existing functionality. I also prepared properly composed test plans for each supported platform.

These well-decomposed test cases and properly organized test plans helped us reduce the median regression time by approximately 20%, while significantly extending the test coverage with a variety of newly developed test scenarios. This all helped us to identify existing errors, eliminate ones, and prepare for the future changes.

Focusing on Product Documentation

Sept. 2019 — Mar. 2020

After addressing the existing problems with testing documentation, we decided to also improve the product documentation. By changing our approach, involving quality assurance engineers in the process of writing and discussing specifications, and establishing a more tight and reliable collaboration between the team and product owners, we managed to enhance the quality of the features in development.

This led to a reduced workload for the engineering team, as almost all potential use cases were identified before development began. Consequently, there were only a small number of defects to identify and fix after development was completed. As a result, we performed better and consistently met deadlines.

Performance Refactoring

Mar. 2020 — Nov. 2020

From March 2020, as the pandemic spread, we experienced rapid user growth, as the project was designed to assist in such crises. However, it wasn’t initially designed to operate under such high load for many months. Luckily, we had resolved the crucial issues a bit earlier.

As the quality assurance processes were well-established, I, along with several backend and DevOps engineers, shifted focus to performance testing. Within several months, we conducted performance tests for the backend, web, and mobile clients. We identified our bottlenecks and optimized the clients, changing their data consumption from 'greedy' to 'needy'.

These changes, along with backend fine-tuning, helped us drastically reduce the server load. The loading time after logging in was reduced to approximately 8 seconds from 25 seconds previously.

Improving Synchronization

Nov. 2020 — Dec. 2021

At the end of 2020, we encountered an issue with our real-time synchronization method using WebSockets. Although this technology generally performed well, it wasn’t sufficient for our needs. The main problem was that a lost connection meant users would not receive updates. While this might be acceptable in some cases, our commitment was for 100% reliability, ensuring every single update was delivered to the user.

We implemented and tested several solutions related to the WebSocket protocol and set up server-client-server heartbeat messages to quickly restore the connection if it was interrupted. We achieved some success with this approach, but we decided to go further.

In addition to WebSockets, we implemented a 'silent push' solution for scenarios where the WebSocket connection was completely lost. Each WebSocket message was accompanied by an invisible push notification. If the client received this push without having processed a corresponding WebSocket message, it would fetch the data via API.

After implementing all these measures, we succeeded in maintaining a 100% reliable connection, eliminating all synchronization issues, and providing the best possible user experience. And we also completely redesigned our web and mobile applications to give our users a modern experience.

Project Review

In late December 2021, it was announced that GroupDoLists would become a part of Infinite Blue's intelligent enterprise resilience solutions. In less than three years, we managed to significantly improve the project's processes, refactor backend and all clients, establish reliable synchronization, and raise the quality level as high as possible. We completed our work on this project and started planning for the next one, L-Charge.

What I’ve learned at GroupDoLists:
- Focusing on current issues helps to move forward, it's hard to go ahead with a huge backlog.
- Mentoring QA engineers in learning proper processes and tools is a valuable contribution.
- Choosing inexperienced QA engineers to set up processes can be harmful in terms of quality.
- Reworking a project with a changed concept can be tougher than starting a new one.
- A working solution is good, but there is always room for improvement.

Joining L-Charge

Jan. 2022 — Apr. 2022

In January 2022, we began preparations for launching the development process. I was responsible for writing the product documentation, and communicating with stakeholders to compile the initial requirements. Through tight collaboration, we created the project roadmap, detailed specifications for core features, and started development with everything we needed for a smooth start.

This approach helped us to launch development seamlessly and follow the planned schedule.

Developing 1st Stage

Apr. 2022 — Dec. 2022

During the first development stage, we encountered a lot of interesting tasks. Some of them were completely new experiences for our team, such as implementing navigation using Google/Apple Maps and integrating Stripe as a payment provider. Drawing on our previous experience, we implemented advanced real-time synchronization using 'silent pushes,' which provided seamless synchronization whith no extra load on the server side. My role involved continuing to develop product and testing documentation; evaluating the quality of the project; testing backend, multiple web applications and iOS client.

Since we had comprehensive product and testing documentation, the number of issues was quite low, enabling us to implement many advanced features at this stage. We were on the same page with the L-Charge product team, and we were all driven by the desire to create a cool-looking, modern and functional product.

Developing 2nd Stage

Jan. 2023 — Feb. 2024

At the begining of 2023, we began developing a new software for a stand-alone charging station, the most advanced hardware solution designed and produced by L-Charge. During this stage, we implemented a web client and a brand-new backend, enabling any EV owner to charge their vehicle without needing to download a native app. The clients had access to a fully operable, responsive web application, through which they could complete all stages of making an order, tracking the charging status, seeing estimated time to completion, paying the bill, and many other features. We collaborated with the L-Charge hardware development team, which was instrumental in this complex process.

We successfully completed the second development stage by February 2024, and by that time, all necessary applications and services were developed, supporting L-Charge in expanding their business.

Project Review

Through close collaboration with the L-Charge product and development teams, we managed to build modern, reliable, and advanced applications and services. Our team of amazing engineers, designers, and product managers did everything as expected, planned, designed, discussed, and approved. Working on this project was the best experience I've ever had.

What I’ve learned at L-Charge:
- Designing proper documentation helps to avoid many issues from the very beginning.
- Collaborating with product owners contributes to the project's quality in the long run.
- Excitement about a properly designed product drives and motivates the whole team.
- Developing a properly initiated project is much more easier and cheaper in terms of costs.
- Having experienced and involved colleagues is the best thing that could happen to you.

Joining Social Discovery Group

Feb. 2024 — Present

At the end of February 2024, I joined Social Discovery Group which is the world's largest group of social discovery companies.
This story is just beginning, so I can't share many details right now. Hopefully, someday, I will be able to, once the NDA allows.