Strengthening the team of a foodtech giant
Sbermarket delivers groceries and household goods to your home, from supermarkets such as METRO, Auchan, and Vkusville. Customers can set up their orders through the website or mobile application, and then Sbermarket partners do the rest. The pickers go around the store with a list and select only the freshest products, then the couriers deliver the orders to the customers.
Evrone has been helping Sbermarket improve its digital service, and our developers continue to leverage their experience and expertise across multiple in-house teams.
The challenge: to quickly dive into an enterprise-level product
In 2020, due to the pandemic, many people began working from home or were forced to quarantine, resulting in widespread e-shopping changes and demands. Sbermarket took advantage of the opportunity to make life easier for its customers and grow exponentially in the e-grocery market, due to the increase in online grocery adoption.
To do this, it was necessary to quickly build up the development team, in order to cope with the increased workload and keep pace with developing new features. At the same time, all new specialists had to be experienced and possess the required tools and knowledge to complete training as quickly as possible and engage in the development.
In addition, it was necessary to separate parts of the project into separate services, and therefore work on the infrastructure was also required. Each individual microservice had to be tied with code, and the network interaction with other parts needed to be configured. The client also needed a team with knowledge and experience implementing testing strategies in a microservice architecture.
The Evrone team already had experience in e-grocery development, creating a large-scale foodtech product focused on home delivery, and our technology stack was a good fit for Sbermarket. Our specialists successfully passed demanding interviews, and we have become part of the Sbermarket team.
The solution: universal senior developers and QAs for any task
Over the course of the year, Evrone has added frontend developers, backend developers, and QA engineers to Sbermarket’s various project teams. We have helped with the development of both internal and external functions and also took up knowledge management in the testing team.
The development teams at Sbermarket are divided and exist independently of each other, completing large tasks entirely internally, and Evrone specialists are distributed among them, depending on current needs.
Manual testing and knowledge management
Sbermarket has set high requirements for the level of our specialists. This is due to the fact that there is a lot of urgent work on the project and only a senior specialist can quickly get involved in it. A mid-level specialist will not have the necessary experience to do this. In addition, senior QA engineers must know a lot of tricks and hacks and have test cards and scenarios, approaches to optimizing the problem, and knowledge of which cases need to be discussed with the team before starting development.
By using our outsourced senior QA engineers, Sbermarket received the multidisciplinary, high-level specialists that they needed. They can move from team to team and close urgent needs, without wasting time.
In addition to testing itself, we helped with the tasks of knowledge sharing. Since the entire company is growing dynamically, the hiring process is fast, and new employees need to be quickly prepared to work. So, one of our QA specialists began to act as a knowledge manager, overseeing and maintaining the knowledge management-based systems.
The knowledge manager collects information about the needs of the project, non-transparent processes, and missing instructions and knowledge, then processes it, stores it in a readable and accessible form, and helps other employees use it. They must also keep this information up to date, since it can rapidly become obsolete.
Sharing information helps employees right at the beginning, starting with onboarding. When a new specialist joins the team, they know where to get all the information they need to start: the composition of their team, its goals, OKRs, a list of tools used on the project, information about the technology stack, architecture, features of deployment, and the schedule of calls and meetings. For those who have been in the team for a long time, the knowledge management implementation and knowledge base help to keep abreast of what colleagues are doing in related areas, find contacts, guides, training courses and solve daily problems. In addition, the knowledge manager helps to create educational content: videos, texts, instructions. The company also has a competency matrix - a table with information about the level of QA skills, and it contains information not only about professional knowledge, but also soft skills. Access to it is open to everyone, so any team member can find a colleague who will advise in any incomprehensible situation. Such a matrix helps managers to take a comprehensive look at human capital and find out what specialists the company really lacks.
The new knowledge management system was built on the basis of Confluence and helps to standardize valuable knowledge.
Routine frontend tasks
Evrone specialists began their work on the frontend with small routine tasks: changing text and replacing pictures and animations. This work helped us to get acquainted with the codebase, which was useful in refactoring tasks.
For example, we needed to change the order in which popup modals and notifications were displayed. Before the rework, they were displayed chaotically and overlapped, which confused users. After reworking, they began to appear in turn, so that it became clear which notification applies to what.
Changing the authentication protocol
Using a phone number to log into an application is safer than using an e-mail address and password. With the latter, attackers can, for example, gain access to your mailbox through leaks of other services. Now this is impossible, because, to log in, you literally have to be holding the phone that receives the SMS.
We studied the rendered screens, analyzed the code, and implemented the necessary functionality on the frontend. After launching the new authentication, we helped to prevent problems with user migration.
If you just enable the login according to the new rules, you can lose some users, due to the fact that many do not close the application but simply minimize it, or they use an endless web session. Because of the new rules, they would have to register for an account again, and many of them would be put off by this complication.
Therefore, we migrated users in parts. We started with those who ordered using the same phone number. We simply linked the used number to their account, so these customers could log in in a new way.
For other active users, we created onboarding screens with instructions for linking a phone number to an account. Using AB testing, we determined at what stage to show the instructions in order to get as many accounts with linked phones as possible.
Using these methods, we managed to collect the majority of the audience, the most active users. Everyone who encountered problems was sent to technical support, so we went through this entire stage without losses.
Creating a subsystem for AB testing
Another challenging task was to create a subsystem for AB testing (which was used to test authentication by code from SMS). We participated in the creation of its first version, literally an MVP, which met the requirements of product analysts. There were, of course, open-source solutions available, but their functionality was lacking, so management decided that creating their own made sense.
This subsystem was debugged on AA tests (checking for the correct distribution of users) and launched. It continues to work correctly and helps the analysts collect data.
On the backend, our developers took part in order routing and payment processing tasks. The order router, guided by its internal business logic, calculates how to deliver the order in the most profitable and fastest way and determines whether it is worth it or not to call in a partner taxi. We are currently continuing to work on this system.
New processing was required, due to the transition to a new payment gateway. At the same time, it was important to make sure that users did not notice the difference when creating an order.
While both of these objectives were tackled under the hood, they are directly related to business results. For example, automation of logistics and delivery will improve user experiences.
In addition, our specialists are helping with different APIs and the transition of the admin panel frontend to a separate application.
Transfer of admin panel from Rails templates to React application
The back office employees use the admin panel to add products, stores, and retailers, as well as manage operating modes, delivery slots, etc. Technical support also uses it to manage orders manually, if there is a problem. In fact, all site settings are made through the admin panel.
Previously, the admin panel worked on Rails templates, and the frontend rendering took place on the backend, which put a load on the servers. Now, we are switching it to React, and it is gradually becoming a standalone project. The backend, in turn, is being changed to provide the React application with the necessary data, through the revision of old and creation of new API endpoints, which also requires the creation and supplementation of documentation.
Developing a universal API for retail partners
On the backend, we are working on a new API for integrating external partners, taking into account their needs. The main endpoints of this API are related to order processing, including creation, evaluation, status, and exchange of payment information.
In addition, sometimes we help to solve problems of inheritance, since early approaches may simply not work in new conditions. From this refactoring, we get performance gains.
We continue to work on the Sbermarket project and add new people to their existing teams. Even experts, who have been working for a long time, grow through their work on the project and bring more and more benefits.
For example, we assist Sbermarket with interviews, essentially providing technical interviews as a service, since, as the product grows and more developers join, closer attention to their skills is required. The QA manager, who combines the functions of a testing specialist with knowledge management, is now closely involved in the accumulation and dissemination of knowledge, but on the scale of the entire Sbermarket company.
On completed tasks, our developers and testers continue to advise other teams and new employees.
The growth of our specialists and their ability to successfully pass the client’s serious interviews show that Sbermarket has received the high-level specialists they require from the Evrone team. Specialists who have the necessary experience and insight to see possible mistakes in the design and development of the service.
We plan to expand the team from our side and participate in the development of microservices in Go, since we have experience in using this technology in both foodtech and fintech projects.
If you are looking to outsource QA testing, or you need reliable professionals with experience in e-grocery, who will quickly enter the workflow and strengthen your own development team, fill out the form below and we will contact you to discuss your project.