<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Oleksandr Dyakov</title>
    <description>The latest articles on Forem by Oleksandr Dyakov (@mixfood).</description>
    <link>https://forem.com/mixfood</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3578277%2F1152f2ae-a92f-4374-a136-c5d91558cc01.jpg</url>
      <title>Forem: Oleksandr Dyakov</title>
      <link>https://forem.com/mixfood</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mixfood"/>
    <language>en</language>
    <item>
      <title>How Mixfood Works with Customer Reviews</title>
      <dc:creator>Oleksandr Dyakov</dc:creator>
      <pubDate>Sat, 25 Oct 2025 07:22:36 +0000</pubDate>
      <link>https://forem.com/mixfood/how-mixfood-works-with-customer-reviews-2p1g</link>
      <guid>https://forem.com/mixfood/how-mixfood-works-with-customer-reviews-2p1g</guid>
      <description>&lt;p&gt;Customer reviews are far more than just comments on a website — they’re a vital reflection of user trust and one of the strongest tools for business growth. Many companies still underestimate their value, yet studies show that 9 out of 10 online purchases are made only after reading reviews. A well-written, detailed comment often convinces more effectively than any advertisement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Reviews Matter&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Social proof.&lt;br&gt;
Reviews show real activity — people place orders, receive them, and share experiences. They act as an independent voice on a platform, bridging the gap between a service, its partners, and potential customers. Reviews help answer a key question for every visitor: “Can I trust this place?”&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Genuine feedback.&lt;br&gt;
Reviews reveal both the strengths and weaknesses of a business. At Mixfood, every comment is carefully reviewed, helping the team continuously improve the service experience.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A healthy outlet for complaints.&lt;br&gt;
When a dissatisfied customer leaves a review, it gives the company a chance to respond, clarify the situation, and resolve the issue — instead of leaving frustration to grow silently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SEO benefits.&lt;br&gt;
Fresh, keyword-rich reviews keep website content dynamic and relevant, helping pages maintain higher visibility in search results.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Increased user engagement.&lt;br&gt;
Even visitors who only browse reviews spend more time on the site — an important metric search engines use to measure content quality and user interest.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Building the Right Impression&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The goal is for every visitor to leave with a sense of confidence and trust. Reviews shouldn’t just exist — they should provide real, informative insight.&lt;br&gt;
A lack of feedback on a popular restaurant can raise doubts, which is why Mixfood actively encourages users to share their experiences.&lt;/p&gt;

&lt;p&gt;When launching a new region or branch, Mixfood recommends:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;offering promo codes or discounts for detailed, photo-rich reviews;&lt;/li&gt;
&lt;li&gt;inviting friends or partners to place early test orders and leave authentic feedback.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once the flow of reviews begins, it creates its own momentum — people see engagement and naturally join in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Managing Reviews Effectively&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As feedback grows, it’s crucial to maintain only the reviews that add value. Uninformative or irrelevant posts can dilute the trust and overall quality of a platform.&lt;/p&gt;

&lt;p&gt;Mixfood removes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ultra-short comments (1–3 words) without photos;&lt;/li&gt;
&lt;li&gt;fake or repetitive feedback;&lt;/li&gt;
&lt;li&gt;off-topic posts unrelated to food or delivery.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Short comments with meaningful photos, however, are kept — images often speak louder than words.&lt;br&gt;
When the total number of reviews exceeds a hundred, Mixfood periodically filters out outdated ones, keeping the best and most informative examples.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Turning Negativity into Opportunity&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mistakes happen — what defines a company is how it reacts.&lt;br&gt;
At Mixfood, a clear, empathetic response procedure helps turn negative experiences into moments of regained trust:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Apologize sincerely. Regardless of who’s at fault, the customer’s disappointment must be acknowledged first.&lt;/li&gt;
&lt;li&gt;Explain transparently. Each issue is investigated to find the root cause.&lt;/li&gt;
&lt;li&gt;Show the fix. Customers are informed about what has been done to prevent a recurrence.&lt;/li&gt;
&lt;li&gt;Offer fair compensation. Mixfood often remakes orders at its own expense, includes complimentary items, or offers free delivery as a gesture of goodwill.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If the issue lies with a restaurant partner, Mixfood coordinates the response — ensuring the partner provides compensation while Mixfood covers delivery and adds a small thank-you gift.&lt;/p&gt;

&lt;p&gt;This approach builds loyalty that money alone can’t buy. A few hundred hryvnias spent on a sincere gesture can bring back a customer for years — along with their recommendations.&lt;br&gt;
Ignoring or downplaying issues, on the other hand, risks losing not just one client but their entire circle of influence.&lt;/p&gt;

&lt;p&gt;By resolving conflicts publicly and transparently, Mixfood shows what customers want to see most: &lt;em&gt;a service that listens, responds, and takes responsibility.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The IKEA Story: How Reputation Is Born&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reviews are not just evaluations of a service — they are stories that build trust.&lt;br&gt;
One of the most famous examples of customer care I know comes from IKEA, and I often recall it as a perfect case of how to act the right way.&lt;/p&gt;

&lt;p&gt;Under a YouTube review of furniture brands, a user shared his personal story.&lt;br&gt;
He had ordered a kitchen from IKEA. In some countries, the company offers a service for custom-sized furniture, based on the client’s measurements. The customer took the measurements himself — but made a mistake, and some cabinets didn’t fit.&lt;/p&gt;

&lt;p&gt;The error was entirely on the client’s side. He admitted it and even began arranging a re-order at his own expense. A standard situation, it would seem.&lt;br&gt;
But IKEA remade the cabinets for free. The company wasn’t obligated to — the contract didn’t include such terms. Yet they chose to take the cost upon themselves.&lt;/p&gt;

&lt;p&gt;The customer received a perfectly fitting kitchen and was so impressed by the attitude that he wrote about it online. His review gained thousands of likes, and in the comments, others confirmed similar experiences — stories of care, empathy, and respect from the company.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What did IKEA gain?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Minimal additional costs — a few boards and a few hours of labor.&lt;/p&gt;

&lt;p&gt;A customer who became a brand advocate — grateful, loyal, and eager to share his story.&lt;/p&gt;

&lt;p&gt;A public example of care seen by hundreds of thousands of people.&lt;/p&gt;

&lt;p&gt;That single review worked better than any advertisement — and it still works today. You’re reading this now and learning something good about IKEA.&lt;br&gt;
The cost of remaking those cabinets paid off through thousands of new orders and a strengthened brand reputation.&lt;/p&gt;

&lt;p&gt;Perhaps it wasn’t an isolated case — but stories like this create legends: legends of a service people trust.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Our Philosophy at Mixfood&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At Mixfood, we aim to earn that same level of trust. Every customer, every situation — even a difficult one — is an opportunity to show that we care.&lt;/p&gt;

&lt;p&gt;We want every Mixfood customer to be sure that:&lt;br&gt;
• if something goes wrong — it will be fixed;&lt;br&gt;
• if a mistake occurs — it will be corrected without unnecessary arguments;&lt;br&gt;
• if you leave a review — it will be read, noticed, and acted upon.&lt;/p&gt;

&lt;p&gt;Sometimes a small gesture is enough to turn an ordinary experience into a lasting, pleasant memory.&lt;br&gt;
Add a customer’s favorite sauce to their order, even if they forgot to mention it.&lt;br&gt;
Include a small dessert on a holiday.&lt;br&gt;
Send a kind surprise on their birthday or on March 8th.&lt;/p&gt;

&lt;p&gt;These small moments don’t require big expenses — but they create warm stories that live on in reviews.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reviews as Part of the Mixfood Brand&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reviews don’t replace advertising — but together, they form an unbeatable combination.&lt;br&gt;
Advertising attracts attention, while reviews confirm authenticity and build trust.&lt;/p&gt;

&lt;p&gt;At Mixfood, we see reviews as the foundation of long-term success.&lt;br&gt;
Advertising, quality service, and sincere customer feedback together form the reinforced concrete structure of a stable business.&lt;/p&gt;

&lt;p&gt;That’s why we:&lt;br&gt;
• maintain active communication with customers on our website and social media;&lt;br&gt;
• highlight the most interesting or funny comments;&lt;br&gt;
• share the best customer stories on Mixfood’s social pages to spread positivity and show that we truly value people.&lt;/p&gt;

&lt;p&gt;We want Mixfood to be not just a &lt;a href="https://mixfood.ua/ua" rel="noopener noreferrer"&gt;delivery platform&lt;/a&gt; — but a service that listens.&lt;br&gt;
A place where reviews matter, and customer care isn’t a marketing slogan, but a daily practice.&lt;/p&gt;

</description>
      <category>learning</category>
      <category>management</category>
      <category>mixfood</category>
    </item>
    <item>
      <title>From Local Startup to Nationwide Network: The Mixfood Story</title>
      <dc:creator>Oleksandr Dyakov</dc:creator>
      <pubDate>Fri, 24 Oct 2025 14:33:07 +0000</pubDate>
      <link>https://forem.com/mixfood/from-local-startup-to-nationwide-network-the-mixfood-story-fgh</link>
      <guid>https://forem.com/mixfood/from-local-startup-to-nationwide-network-the-mixfood-story-fgh</guid>
      <description>&lt;p&gt;Mixfood's journey began in 2010 as a small food delivery service in a single city. The market was just emerging at the time, and everything had to be built from the ground up — from the web platform to the logistics system. The challenge wasn't simply about transporting orders, but about building a technology-driven service that would be fast, reliable, and convenient for customers.&lt;/p&gt;

&lt;p&gt;By 2013, the company had developed its own technological infrastructure and streamlined business processes. In 2014, founder Oleksandr Dyakov created a franchise model, drawing on experience from Mixfood and other projects. The first franchise office opened in Kamianets-Podilskyi — marking the start of a new development phase. Over the following years, Mixfood expanded to nearly twenty Ukrainian cities, including Poltava, Mykolaiv, Kryvyi Rih, Chernivtsi, and Kherson.&lt;/p&gt;

&lt;p&gt;The company steadily grew its presence. By 2020, Mixfood had completed over three million deliveries — demonstrating its ability to combine technology, smart logistics, and consistent service quality. This approach enabled Mixfood to compete with international delivery platforms while maintaining deep integration with local communities.&lt;/p&gt;

&lt;p&gt;After the full-scale invasion began, many cities where Mixfood operated fell under occupation — including Mariupol, where the central office was located. Part of the team joined the Armed Forces of Ukraine, with many serving in logistics units, continuing to apply what they know and do best in a new capacity. Despite all the challenges, the company managed to recover, preserve its partnerships, and return to pre-war operational volumes.&lt;/p&gt;

&lt;p&gt;Today, Mixfood continues to grow through its franchise network, modernize its technology, and expand its geography across Ukraine.&lt;/p&gt;

&lt;p&gt;🇺🇦 Ukrainian entrepreneurs can learn about &lt;a href="https://mariupol.mixfood.ua/ua/franchising" rel="noopener noreferrer"&gt;Mixfood's franchise&lt;/a&gt; opportunities — how to launch a local delivery business with a proven system and nationwide support.&lt;/p&gt;

</description>
      <category>startup</category>
      <category>ua</category>
      <category>mixfood</category>
    </item>
    <item>
      <title>How We Distribute Orders Among Couriers at Mixfood</title>
      <dc:creator>Oleksandr Dyakov</dc:creator>
      <pubDate>Wed, 22 Oct 2025 12:20:16 +0000</pubDate>
      <link>https://forem.com/mixfood/how-we-distribute-orders-among-couriers-at-mixfood-3ha1</link>
      <guid>https://forem.com/mixfood/how-we-distribute-orders-among-couriers-at-mixfood-3ha1</guid>
      <description>&lt;p&gt;One of the key challenges in a food delivery service is ensuring that orders reach customers quickly while minimizing courier idle time (the time when they're online but without an active order). It seems simple: a customer places an order, the restaurant prepares it, and all that's left is to find the nearest available courier and send them to pick up the food. However, in reality, it's much more complex.&lt;/p&gt;

&lt;p&gt;In this article, I'll explain how we select the optimal courier for each order and how our approach has evolved over time. I'll cover two fundamentally different methods for solving this problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overall Assignment Architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When a user confirms an order, an order object is created on the backend, which goes through various states according to programmed logic. For an order to transition from "Waiting for courier" to "Courier assigned" status, we need to find an available courier, offer them the order, and receive confirmation of acceptance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Greedy Algorithm&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For a long time, &lt;a href="https://mixfood.ua/ua" rel="noopener noreferrer"&gt;Mixfood&lt;/a&gt; used the &lt;a href="https://en.wikipedia.org/wiki/Greedy_algorithm" rel="noopener noreferrer"&gt;greedy approach&lt;/a&gt;. With this method, during the courier search stage, the system queries the "Courier Distribution" microservice, which is responsible for all courier information. The microservice knows everything about each courier: from their transport type to current geolocation and status. It has local geotags with courier data and integration with route-building services to calculate distances and travel times from point A to point B.&lt;/p&gt;

&lt;p&gt;When a courier search request comes in, "Courier Distribution" first identifies the nearest couriers by direct radius, considering basic order requirements (specific thermal bag type, transport type). Then the system refines the actual time and route length to the restaurant and selects the best option based on this information.&lt;/p&gt;

&lt;p&gt;Over time, this logic evolved: we began calculating a "rating" for each courier for a specific order—a function that considers not only arrival time at the restaurant but also many other parameters: from demand levels in pickup and delivery areas to the courier's experience and reliability. Couriers are ranked by this metric. This method is called "bonus assignment."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Buffer (Batch) Approach&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;However, with the greedy method, whoever places an order first gets the nearest courier. This means some customers may be left without a courier, especially during peak hours.&lt;/p&gt;

&lt;p&gt;During high demand, when competition for available couriers begins, the greedy algorithm works inefficiently. To maximize demand satisfaction even during the busiest hours, we employ various approaches. One of them is buffer (batch) courier assignment. It's based on a classic combinatorial optimization problem — &lt;a href="https://en.wikipedia.org/wiki/Assignment_problem" rel="noopener noreferrer"&gt;the assignment problem&lt;/a&gt;. The essence: suppose we have N orders and M couriers, any courier can fulfill any order in time p(i,j). We need to assign each order to a courier in a way that minimizes the total delivery time for all orders (with each courier taking only one order at a time—though we need to automate the ability to take multiple orders. Currently, this is done through operator intervention and manual addition of second and third orders if they're along the route and time-aligned).&lt;/p&gt;

&lt;p&gt;When solving this problem, our "cost" of fulfilling an order by a specific courier is the rating function value based on arrival time at the restaurant and delivery to the customer. The problem can be described in terms of bipartite graphs: on one side—orders, on the other—couriers. Between them are ratings. Thus, our goal is to minimize total delivery time while maximizing the number of fulfilled orders (maximum matching). One of the most well-known ways to solve this problem is the &lt;a href="https://en.wikipedia.org/wiki/Hungarian_algorithm" rel="noopener noreferrer"&gt;Hungarian algorithm.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technical Implementation of the Buffer Approach&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Obviously, with buffer assignment, we can't instantly assign a courier as with the greedy method. First, we need to place the order in a queue, perform distribution optimization, and only then notify about the found courier. This didn't fit into the existing order processing logic, so it had to be improved.&lt;/p&gt;

&lt;p&gt;To test the new solution without affecting system operations, we created a separate microservice. It accepts orders, adds them to its queue, finds optimal couriers, and stores distribution results.&lt;/p&gt;

&lt;p&gt;First, we needed to prepare the microservice for the new load profile. If with the greedy approach, requests came individually and were evenly distributed across instances, in buffer assignment all requests arrive simultaneously. Therefore, we added batch request processing capability, which is handled in parallel within "Courier Distribution." We also had to resolve the issue of optimal request quantity per batch. On the client side, we break large batches into several smaller ones and send them to different "Courier Distribution" instances.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Integration with the Main System&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After "Courier Distribution" was prepared, ratings are calculated both in the old system (greedy assignment) and in the new service ("Courier Distribution - 2"), and the assignment problem algorithm was fine-tuned—the question arose of integrating this into the main order processing logic.&lt;/p&gt;

&lt;p&gt;We added metadata transmission about orders to "Courier Distribution - 2" when their status changes. Initially, we planned to simply replace the request to "Courier Distribution" with a request to our service, but that's a bad idea: we need to offer the order to the courier immediately once a match is found, and even a few seconds of delay is critical—the courier might drive in a different direction. Therefore, we implemented the ability to trigger the search process outside the standard scheduler.&lt;/p&gt;

&lt;p&gt;This allowed us to combine the main order processing logic with the buffer dispatcher logic without affecting the working system and without state conflicts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wait Time and Optimization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Does courier search time increase if the search doesn't happen immediately? Not exactly: using various techniques (including machine learning), we've identified cases where waiting makes sense. In other cases, wait time remains unchanged, and overall delivery time even decreases due to more optimal distribution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pre-Assignment at the Ordering Stage&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another way to speed up delivery is to start looking for a courier BEFORE the order is finalized. This is how DoorDash does it. When a user is just selecting dishes and entering an address, machine learning algorithms assess the probability that they'll actually complete the order and decide whether to consider it in buffer courier search. We can find a courier in advance, and when the user confirms the order—immediately make an offer to the appropriate courier.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Conclusions&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Distributing orders among couriers is a complex task that requires considering many factors: from geographical location to demand forecasting and the context of couriers' current routes. The right combination of greedy and buffer approaches allows us to optimize both delivery time for customers and courier work efficiency.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>architecture</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
