# OLX

OLX is a global leader in facilitating trade. It builds leading marketplace ecosystems enabled by tech, powered by trust, and loved by its customers. - Medium

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Measuring how coding-agent context delivery affects results per token

DevFeed: [Measuring how coding-agent context delivery affects results per token](<https://devfeed.tech/articles/does-it-matter-how-you-feed-an-agent-its-context-20384.md>)

Original publisher: [Read original article](<https://tech.olx.com/does-it-matter-how-you-feed-an-agent-its-context-ee1519586520?source=rss----761b019b483f---4>)

Author: Raymond Gitonga

Published: 2026-08-21T13:36:56Z

Content type: opinion

Language: en

Sources: [OLX](<https://devfeed.tech/sources/olx.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [ai-experiments](<https://devfeed.tech/tags/ai-experiments.md>), [backend](<https://devfeed.tech/tags/backend.md>), [coding](<https://devfeed.tech/tags/coding.md>), [comparative-studies](<https://devfeed.tech/tags/comparative-studies.md>), [context](<https://devfeed.tech/tags/context.md>), [cost](<https://devfeed.tech/tags/cost.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article describes an experiment comparing four ways of delivering context to a coding agent. The same task, model, scoring method, and reference files were used across three runs of each setup, with the goal of measuring results relative to token cost. The task was adding a notification worker to a mature backend system spanning three codebases and approximately 18-20 files.

### Source excerpt

I gave a coding agent the same job four different ways and measured what each cost. The packaging barely mattered, but something else did. At OLX, we've been pushing to get AI tools into everyday engineering work. This has enabled us to have faster delivery and better test coverage, with less time spent on the mechanical parts. Our biggest constraint, however, is tokens. Tokens being a finite resource, we keep running up against our allocated quota. So the real question is how to get the best results per token spent. There's no shortage of advice on how to feed context into agents: put everything into one prompt, split it into folders, or give one orchestrator the whole picture and let it delegate. But opinions vary on which way is better and which produces the best results relative to cost. So I decided to measure it. One job, four setups, three runs each: same model, same task, same scoring. The only thing that changed was how the agents got their context. The Setup The job was to add a notification worker to one of our fairly mature backend services. In plain terms, the worker watches for things happening in the system, decides who should get a notification, and logs the outcome. The worker lives in one service, but the change touched around 18-20 files across three codebases that talk to each other, tests included. All three have years of history and firm architectural conventions. In short: a realistic change in a mature system, not a toy task. Every setup got the same reference files, written once, and mostly derived from each codebase's own AGENTS.md file. They cover a repo map, one deep dive per codebase, the coding and testing conventions, and the contracts between the services. The CLAUDE.md files you'll see in the setups below are different: those are each setup's entry point, and part of what varied. The reference files were identical in every setup. Only the delivery changed. 1. Default: One manager owns everything. It keeps context in memory and spins

## Correlation Lied to Us: Rethinking Product Impact with Causal Inference

DevFeed: [Correlation Lied to Us: Rethinking Product Impact with Causal Inference](<https://devfeed.tech/articles/correlation-lied-to-us-rethinking-product-impact-with-causal-inference-20383.md>)

Original publisher: [Read original article](<https://tech.olx.com/correlation-lied-to-us-rethinking-product-impact-with-causal-inference-5ba47181f7c5?source=rss----761b019b483f---4>)

Author: Enderson Santos

Published: 2026-08-04T15:31:01Z

Content type: article

Language: en

Sources: [OLX](<https://devfeed.tech/sources/olx.md>)

Topics: [data](<https://devfeed.tech/topics/data.md>)

Tags: [causal-inference](<https://devfeed.tech/tags/causal-inference.md>), [data](<https://devfeed.tech/tags/data.md>), [data-science](<https://devfeed.tech/tags/data-science.md>), [experimentation](<https://devfeed.tech/tags/experimentation.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [metrics](<https://devfeed.tech/tags/metrics.md>), [performance](<https://devfeed.tech/tags/performance.md>), [product-analytics](<https://devfeed.tech/tags/product-analytics.md>)

### AI overview

The article examines why higher-tier OLX exposure packages appeared to perform worse than cheaper packages in some cases. It explains that sellers self-select packages, making direct package-level comparisons potentially misleading, and introduces causal inference as an approach to separate correlation from causation.

### Source excerpt

Introduction At OLX, professional sellers pay for higher-tier packages because they promise more exposure. More visibility, and, in theory, better results. But when we looked at the data, something unexpected happened. In some cases, ads published with premium packages appeared to perform worse than ads using cheaper packages. That raised an uncomfortable question: If higher-tier packages provide more exposure, shouldn't they consistently perform better? At first glance, there were several possible explanations. Perhaps the extra visibility weren't creating as much value as we expected. Perhaps ranking dynamics were offsetting the additional exposure. Or perhaps the package itself wasn't the real driver of performance. It was then that we started asking a different question: Were we measuring this correctly? More specifically, were the ads across different packages actually comparable in the first place? Answering that question turned out to be far more important than comparing package-level metrics. It forced us to rethink how we measure product impact in a marketplace environment and ultimately led us to a causal inference approach designed to separate correlation from causation. In this article, I'll walk through how we approached that problem, what we learned, and how comparing similar ads changed our understanding of the true value created by exposure products. Problem Definition To understand the challenge, it's important to first understand how package exposure works at OLX. Professional sellers self select into a package when publishing their ads. The difference between packages is largely defined by how many boosts an ad receives during its lifetime. For example, in the picture below we can see that Package 1 includes 1 boost on the period of 30 days, package 2 includes 2 boosts, package 3 includes 3 boosts, and package 4 includes 4 boosts all in the same period of 30 days. The business expectation is straightforward: more boosts should create more visibili

## Handling concurrency on the Web with Web Locks API

DevFeed: [Handling concurrency on the Web with Web Locks API](<https://devfeed.tech/articles/handling-concurrency-on-the-web-with-web-locks-api-20386.md>)

Original publisher: [Read original article](<https://tech.olx.com/handling-concurrency-on-the-web-with-web-locks-api-163b7e07eddd?source=rss----761b019b483f---4>)

Author: Cesar Contreras

Published: 2026-07-14T15:36:00Z

Content type: tutorial

Language: en

Sources: [OLX](<https://devfeed.tech/sources/olx.md>)

Topics: [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Web](<https://devfeed.tech/topics/web.md>), [API](<https://devfeed.tech/topics/api.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [browser](<https://devfeed.tech/topics/browser.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [browser](<https://devfeed.tech/tags/browser.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [locks](<https://devfeed.tech/tags/locks.md>), [react](<https://devfeed.tech/tags/react.md>), [resumable-file-upload](<https://devfeed.tech/tags/resumable-file-upload.md>), [synchronization](<https://devfeed.tech/tags/synchronization.md>), [web](<https://devfeed.tech/tags/web.md>), [web-applications](<https://devfeed.tech/tags/web-applications.md>), [web-development](<https://devfeed.tech/tags/web-development.md>)

### AI overview

This article explains concurrency on the web through the Web Locks API. It describes an OLX upload scenario involving files up to 20GB, where uploads should resume after a browser or tab is reopened without requiring the user to remain in the web app. It identifies multiple tabs resuming the same upload simultaneously as a cause of duplicate uploads, wasted bandwidth, extra processing costs, and unpredictable progress.

### Source excerpt

Image by the_iop from Pixabay Concurrency in programming is the ability to manage and execute multiple tasks or processes at the same time (or appear to), allowing programs to remain responsive and efficient. Think of it like a chef in a busy kitchen: they're not cooking every dish from start to finish sequentially, but instead chopping vegetables while one pan simmers and another bakes; juggling progress on several tasks concurrently. I'm a frontend engineer at OLX working mostly with React and NextJs, but I also came from a background in which I worked primarily in concurrent programs with Java. Creating multi-threaded applications can be a pain, dealing with locks, semaphores... and my favorite... deadlocks (very scary in large codebases). Once I transitioned fully to Web development, I never imagined I would have to deal with scenarios like this, and then here I am writing my first article about it. Web development has turned into a very powerful ecosystem, from the previous era where the web was only about flashy animations using HTML marquee (a bit of sarcasm here 😆), dominated by JQuery, to a really powerful environment where you can use Workers, 2D and 3D animations with WebGL and Canvas, offline capabilities with Service Workers, and the list continues. This is evidence that the Web can now face really complex challenges, and it's just a matter of time before you have to face similar ones. The problem Recently, at OLX, we faced the challenge of working with large file size uploads. Providing the best user experience is tricky when it comes to handling uploads, and most of the real use cases out there require the user to stay in the web app until the upload completes, but we didn't want that. Since we are working with large file sizes (up to 20GB), we want the user to be free and do other stuff while this is uploading, so if the user closes and opens the browser or tab, the upload should continue with no manual intervention. For this, we had to provide a mechani

## How Structure Supports Cross-Functional Collaboration at OLX

DevFeed: [How Structure Supports Cross-Functional Collaboration at OLX](<https://devfeed.tech/articles/empowering-innovation-through-structure-20385.md>)

Original publisher: [Read original article](<https://tech.olx.com/empowering-innovation-through-structure-93c15614f6d3?source=rss----761b019b483f---4>)

Author: Sara Mendes

Published: 2026-03-18T16:01:03Z

Content type: article

Language: en

Sources: [OLX](<https://devfeed.tech/sources/olx.md>)

Topics: [Framework](<https://devfeed.tech/topics/framework.md>), [Frameworks](<https://devfeed.tech/topics/frameworks.md>)

Tags: [collaboration](<https://devfeed.tech/tags/collaboration.md>), [communication](<https://devfeed.tech/tags/communication.md>), [innovation](<https://devfeed.tech/tags/innovation.md>), [learning](<https://devfeed.tech/tags/learning.md>), [organization](<https://devfeed.tech/tags/organization.md>), [structure](<https://devfeed.tech/tags/structure.md>), [teams](<https://devfeed.tech/tags/teams.md>)

### AI overview

The article explains how OLX uses intentional structure to support cross-functional collaboration across engineering, product, design, analytics, and other roles. It argues that clear roles, visibility, effective communication, checkpoints, and accountability help teams coordinate work and develop ideas.

### Source excerpt

Our Work Organization Framework Journey Photo by Daniel Watson @pexelsWhat Makes Cross-functional Collaboration Actually Work? In today's cross-functional environments, the most impactful initiatives rarely live within the boundaries of a single team or person. Whether we're building new product features, improving infrastructure, or tackling technical debt, success depends on seamless collaboration across multiple teams and roles, including engineering, product, design, analytics, and beyond. Think about when you're making a big dinner for friends. You might be the main cook, but you need someone to run to the store for ingredients that you forgot, maybe your roommate to chop vegetables, someone to keep track of the timing so nothing burns, and someone to set the table. When everyone knows their role and does their work at the right time, you end up with a perfect meal. The magic happens when everyone's working in sync. But I get that when someone mentions 'frameworks' or 'structure,' our eyes might glaze over, thinking about red tape and endless meetings. But here's the thing: good structure isn't about slowing you down, it's actually what lets a group of people create something amazing together that none of us could pull off on our own. At OLX, we see structure as: A clear path from "Hey, I have this crazy idea" to "Holy cow, we actually built it." Everyone knowing their role, so you're not wondering if that task is yours or why three people are doing the same thing. Being able to see what's happening without chasing down updates or playing detective. Communication that actually works, meaning no more "I thought you told Sarah, but Sarah thought you told Mike." Real checkpoints where we can high-five our wins and course-correct when needed. Any intentional structure is better than no structure at all. From a human psychology and team dynamics perspective, here's why structure matters: Clarity reduces anxiety: when people know what we expect of them, they work wit

## OLX Masterclass Frontend 2026

DevFeed: [OLX Masterclass Frontend 2026](<https://devfeed.tech/articles/olx-masterclass-frontend-2026-20389.md>)

Original publisher: [Read original article](<https://tech.olx.com/olx-masterclass-frontend-2026-068299a2df50?source=rss----761b019b483f---4>)

Author: Isaac Queiroz

Published: 2026-02-25T16:16:00Z

Content type: news

Language: en

Sources: [OLX](<https://devfeed.tech/sources/olx.md>)

Topics: [Front end](<https://devfeed.tech/topics/frontend.md>), [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [Development](<https://devfeed.tech/topics/development.md>), [CSS](<https://devfeed.tech/topics/css.md>), [React](<https://devfeed.tech/topics/react.md>), [Figma](<https://devfeed.tech/topics/figma.md>), [repo](<https://devfeed.tech/topics/repo.md>), [configuration](<https://devfeed.tech/topics/configuration.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [component](<https://devfeed.tech/tags/component.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [css](<https://devfeed.tech/tags/css.md>), [development](<https://devfeed.tech/tags/development.md>), [event](<https://devfeed.tech/tags/event.md>), [figma](<https://devfeed.tech/tags/figma.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [frontend-development](<https://devfeed.tech/tags/frontend-development.md>), [masterclass](<https://devfeed.tech/tags/masterclass.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [mcps](<https://devfeed.tech/tags/mcps.md>), [model-context-protocol](<https://devfeed.tech/tags/model-context-protocol.md>), [olx](<https://devfeed.tech/tags/olx.md>), [react](<https://devfeed.tech/tags/react.md>), [repo](<https://devfeed.tech/tags/repo.md>)

### AI overview

OLX announces its 2026 Frontend Masterclass, featuring three sessions on MCP integrations and Figma-to-React workflows, new CSS capabilities, and managing localized websites for multiple brands from a single repository.

### Source excerpt

The always-evolving challenges of OLX create a rich environment for innovation, experimentation, and knowledge sharing. In our 2026 Frontend Masterclass, we have three sessions that will shed light on our current development flow. Join us on March 3rd, 2026, from 6:00 pm to 9:00 pm at our OLX Offices in Poznań! Do you want to join us and know what's trending in the latest frontend technology? Check the event information and join here! Can't join it in person? Sign in to this form to receive the online recording of the session! Our Agenda With a broad schedule, our speakers will deliver a mix of technical presentations and demonstrations on multiple subjects. MCP Servers in Action: From Figma Design to React Component in Minutes by Karol Grabowski Part of what changed in our day-to-day flow is how AI is always available to help us. AI assistants and agents are powerful out-of-the-box tools; we can augment our reach by configuring Model Context Protocols (MCPs) to take our setup a step further. Join Karol to explore how the Model Context Protocol turns AI assistants into powerful development partners with direct access to your tools. This talk covers the MCP ecosystem, real OLX integrations, and includes a live coding session demonstrating the Figma-to-code workflow. CSS is no longer "this simple" -- it got _layers_, quite literally by Tomasz "Comandeer" Jakut At the same time that we advance with AI and multiple experiments to learn from our users and make our flows as pleasant as possible, we are still styling our components with the usual suspects, right? Not always! Join Tomasz Jakut and deep dive into CSS's new capabilities that can redefine how we approach styling websites: from @Layer and nesting to container queries, scoped styles, and user preferences. New native features can refresh well-known techniques and make others obsolete. One-product, three brands -- Our strategy for serving different countries from a single repo by Lilian Galezewska We all know how OL

## Offline Evaluation of Open-Source Embedding Models for Model Selection

DevFeed: [Offline Evaluation of Open-Source Embedding Models for Model Selection](<https://devfeed.tech/articles/importance-of-offline-evaluation-to-guide-model-choice-20388.md>)

Original publisher: [Read original article](<https://tech.olx.com/importance-of-offline-evaluation-to-guide-model-choice-1c2be1c4599a?source=rss----761b019b483f---4>)

Author: Tiago Cabo

Published: 2025-10-07T15:11:01Z

Content type: article

Language: en

Sources: [OLX](<https://devfeed.tech/sources/olx.md>)

Topics: [Embeddings](<https://devfeed.tech/topics/embeddings.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [hugging face](<https://devfeed.tech/topics/hugging-face.md>), [AI Models](<https://devfeed.tech/topics/ai-models.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [classification](<https://devfeed.tech/tags/classification.md>), [embedding](<https://devfeed.tech/tags/embedding.md>), [embeddings](<https://devfeed.tech/tags/embeddings.md>), [evaluation](<https://devfeed.tech/tags/evaluation.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [recommendations](<https://devfeed.tech/tags/recommendations.md>), [search](<https://devfeed.tech/tags/search.md>)

### AI overview

This article explains how OLX evaluated open-source embedding models against its existing internal model. It describes embeddings, the MTEB benchmark, and practical constraints such as memory, latency, modality, and multilingual support when selecting a model for deployment.

### Source excerpt

The Importance of Offline Evaluation to Guide Model ChoiceIntroduction Recent advancements in open-source AI models make it challenging to justify the development of custom models, given the high quality of existing options. This also applies to embedding models, which are available in impressive quality. At OLX, we utilize a model called Item2vec to generate similar item recommendations. For more details, please refer to our blog post. Item2Vec: Neural Item Embeddings to enhance recommendations In this work, we developed an embedding model that not only improved recommendations but was also used by other teams across OLX, such as the search team. For an in-depth look at this application, see our post on Hybrid Search, where we tried to balance the benefits of semantic and lexical search. Hybrid Search -- Where Keywords Meet Vectors, Enabling Classifieds Discovery This article discusses our evaluation of open-source embedding models compared to our existing internal model. Open Source Embeddings An embedding model converts inputs, such as text or images, into vectors. These vectors are then used to compute similarities, often cosine distance, where closer vectors are deemed semantically related. Cosine similarity Many architectures types for embedding models support this, including word2vec, GloVe, RNN, LSTM, and transformers. This leads to hundreds of publicly available models, making selection a challenge. Common benchmarks play a crucial role in this process. After exploring various options, we chose the MTEB: Massive Text Embedding Benchmark. We selected this benchmark due to its widespread community adoption and extensive features, such as: 56 datasets across 8 tasks Support for up to 112 different languages Easy extensibility via the repo MTEB HuggingfaceBenchmark MTEB Hugging Face provides a comprehensive leaderboard showcasing top-performing models across tasks (retrieval, classification, etc), reflecting advancements in machine learning and AI. The higher, t

## Hybrid Search -- Where Keywords Meet Vectors, Enabling Classifieds Discovery

DevFeed: [Hybrid Search -- Where Keywords Meet Vectors, Enabling Classifieds Discovery](<https://devfeed.tech/articles/hybrid-search-where-keywords-meet-vectors-enabling-classifieds-discovery-20387.md>)

Original publisher: [Read original article](<https://tech.olx.com/hybrid-search-where-keywords-meet-vectors-enabling-classifieds-discovery-b7c383fe4fc4?source=rss----761b019b483f---4>)

Author: Inês Soveral

Published: 2025-09-09T15:01:44Z

Content type: article

Language: en

Sources: [OLX](<https://devfeed.tech/sources/olx.md>)

Topics: [AI search](<https://devfeed.tech/topics/ai-search.md>), [Query (disambiguation)](<https://devfeed.tech/topics/query.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [classifieds](<https://devfeed.tech/tags/classifieds.md>), [discovery](<https://devfeed.tech/tags/discovery.md>), [hybrid-search](<https://devfeed.tech/tags/hybrid-search.md>), [retrieval](<https://devfeed.tech/tags/retrieval.md>), [search](<https://devfeed.tech/tags/search.md>), [search-engines](<https://devfeed.tech/tags/search-engines.md>), [vector-search](<https://devfeed.tech/tags/vector-search.md>)

### AI overview

OLX describes its transition from keyword matching to hybrid search, combining keyword and vector retrieval for classifieds discovery. The article explains the motivations, implementation challenges, solutions, and observed benefits, including improved handling of vague, misspelled, or differently phrased queries.

### Source excerpt

Hybrid Search -- Where Keywords Meet Vectors, Enabling Classifieds Discovery In the midst of a fast-paced technological revolution, where user expectations grow increasingly sophisticated, the quality of search in the classifieds space has never been more critical. In fact, users expect the search box to understand what they are looking for and produce relevant search results; if this is not the case, they will easily move on to any competitor who provides this experience. At OLX, our search system traditionally relied on keyword matching between user queries and ad titles and descriptions -- a straightforward but rigid approach. While functional, it often led to low recall or even zero results pages (ZRPs). To mitigate this, we gradually developed an extension chain logic -- which will be explained in detail in later sections -- to address specific edge cases and expand recall. Over time, however, this logic became increasingly complex and difficult to improve upon, calling for a disruptive solution to further evolve our search system. In this article, we share why and how we transitioned to Hybrid Search as a retrieval strategy for our double-sided marketplace. We walk through the key changes required to support semantic search, highlight the challenges we faced, and detail the solutions put in place to overcome them. Finally, we reflect on the tangible improvements and practical benefits observed after this shift. What is Hybrid Search and what value does it bring? Despite its lack of flexibility, keyword matching remains highly effective in e-commerce. It returns results that exactly match the user's query terms, offering clear traceability and helping users understand why specific ads appear. This is particularly useful when users know precisely what they're looking for, and when combined with structured filters, a feature of the OLX marketplace. However, keyword matching falls short when queries are vague, misspelled, or phrased differently from how sellers descri

## Speed with Rigor: testing smarter with group sequential design

DevFeed: [Speed with Rigor: testing smarter with group sequential design](<https://devfeed.tech/articles/speed-with-rigor-testing-smarter-with-group-sequential-design-20391.md>)

Original publisher: [Read original article](<https://tech.olx.com/speed-with-rigor-testing-smarter-with-group-sequential-design-af962363ce90?source=rss----761b019b483f---4>)

Author: Gabriela Lewenfus

Published: 2025-08-05T17:25:29Z

Content type: article

Language: en

Sources: [OLX](<https://devfeed.tech/sources/olx.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [A/B Testing](<https://devfeed.tech/topics/a-b-testing.md>), [experiments](<https://devfeed.tech/topics/experiments.md>), [data](<https://devfeed.tech/topics/data.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [a-b-testing](<https://devfeed.tech/tags/a-b-testing.md>), [ab-testing](<https://devfeed.tech/tags/ab-testing.md>), [data](<https://devfeed.tech/tags/data.md>), [efficiency](<https://devfeed.tech/tags/efficiency.md>), [experiment](<https://devfeed.tech/tags/experiment.md>), [experimentation](<https://devfeed.tech/tags/experimentation.md>), [false-positive](<https://devfeed.tech/tags/false-positive.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [pitfalls](<https://devfeed.tech/tags/pitfalls.md>), [sequential-testing](<https://devfeed.tech/tags/sequential-testing.md>), [statistics](<https://devfeed.tech/tags/statistics.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article explains how group sequential testing can replace fixed-horizon A/B tests with monitoring at predefined intervals while controlling error rates. It discusses how this approach addresses peeking, may allow ineffective tests to stop early, and involves practical trade-offs and implementation challenges.

### Source excerpt

generated by chatgptIntroduction In the world of A/B testing and experimentation, it's tempting to check results frequently and stop tests earlier if they seem significant (a practice known as peeking). However, this practice dramatically inflates the false positive rate, leading to misleading conclusions. Imagine you're running an A/B test, and after just 10 days, the results look like a clear win. You might be tempted to end the experiment early and move forward with the release of the new feature. After all, why wait another two weeks as originally planned? But here's the catch: the more often you check the results, the higher the chance you'll spot a "win" that isn't real. Frequent peeking increases the risk of false positives -- in other words, drawing the wrong conclusion just by chance. To prevent peeking while ensuring statistical power, a common practice is to set a minimum sample size that must be reached before ending the experiment. However, this fixed horizon approach can extend the experiment's duration and delay decision-making. Group sequential testing (GST) provides a statistical framework to monitor results at predefined intervals while maintaining control over error rates. At OLX, we migrated from fixed horizon experiments to GST to achieve faster insights, lower costs, and greater efficiency, enabling our teams to make smarter, data-driven decisions with speed and confidence. In this post, I'll explain how GST works, how it can accelerate experiments while still preventing the pitfalls of peeking, and how we can use it even to stop ineffective tests early. Finally, I'll discuss real-world trade-offs and implementation challenges. Peeking is a trap Before we dive into GST, let's first understand what "peeking" is and why it's so concerning. Peeking occurs when the experimenter repeatedly checks an experiment's results and finishes it once a statistically significant effect appears. This inflates the false positive rate, leading to unreliable conclu

## Scaling recommendations service at OLX

DevFeed: [Scaling recommendations service at OLX](<https://devfeed.tech/articles/scaling-recommendations-service-at-olx-20390.md>)

Original publisher: [Read original article](<https://tech.olx.com/scaling-recommendations-service-at-olx-db4548813e3a?source=rss----761b019b483f---4>)

Author: Jordi Esteve Sorribas

Published: 2025-07-08T15:03:23Z

Content type: article

Language: en

Sources: [OLX](<https://devfeed.tech/sources/olx.md>)

Topics: [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Python](<https://devfeed.tech/topics/python.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>), [async](<https://devfeed.tech/topics/async.md>)

Tags: [async](<https://devfeed.tech/tags/async.md>), [backend](<https://devfeed.tech/tags/backend.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [latency](<https://devfeed.tech/tags/latency.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [python](<https://devfeed.tech/tags/python.md>), [recommendation-systems](<https://devfeed.tech/tags/recommendation-systems.md>), [recommendations](<https://devfeed.tech/tags/recommendations.md>), [scalability](<https://devfeed.tech/tags/scalability.md>)

### AI overview

This article describes how OLX scaled a Python FastAPI recommendations service to handle tens of thousands of requests per second with p99 latency below 10 ms. It discusses the service's ownership, data sources, and the use of asynchronous non-blocking I/O.

### Source excerpt

Optimizing FastAPI at Scale: Lessons from OLX's Recommendation PlatformPhoto by Rosy KoIn distributed systems, there is a motto that says 'you are as slow as your slowest tasks'. In Python, thanks to the notorious Global Interpreter Lock (GIL), this issue is amplified: 'your slowest task will make every other task slower'. In this article, I'll walk you through the optimizations we made to scale a FastAPI service that now handles tens of thousands of requests per second, achieving a p99 latency under 10ms.Introduction OLX is a global online marketplace that enables users to buy and sell goods and services, primarily through classified ads. We have a clear vision: to create leading marketplace ecosystems enabled by tech, powered by trust, and loved by customers. Every month, we engage 45 million app users and support over 73 million active listings. To help users seamlessly navigate this vast inventory, we've integrated recommendation systems across multiple touchpoints in all our platforms. These recommendations are powered by the recommendations platform, which is responsible for delivering personalized suggestions across various contexts. Most, if not all, of these are served through a dedicated recommendations service. Over the past few months, we've built and scaled this system within the data team, successfully shifting the ownership from a shared backend service to a service fully owned by the team to gain greater autonomy and flexibility. The team decided to build it with Python, as it is the go-to language for the data and machine learning team and is the most widely used language within both the team and the broader domain. While Python allows for rapid development and prototyping, working at scale has surfaced several challenges and trade-offs. It hasn't been an easy journey, but it's one that's taught us a lot and significantly matured our infrastructure and processes. To Async or Not Async The service consumes data from various sources: ScyllaDB, DynamoD

## Unlocking Flexibility in Configuration: The Power of Hydra

DevFeed: [Unlocking Flexibility in Configuration: The Power of Hydra](<https://devfeed.tech/articles/unlocking-flexibility-in-configuration-the-power-of-hydra-20392.md>)

Original publisher: [Read original article](<https://tech.olx.com/unlocking-flexibility-in-configuration-the-power-of-hydra-3f9e69263bb4?source=rss----761b019b483f---4>)

Author: Catarina Goncalves

Published: 2025-06-02T17:02:34Z

Content type: tutorial

Language: en

Sources: [OLX](<https://devfeed.tech/sources/olx.md>)

Topics: [configuration-management](<https://devfeed.tech/topics/configuration-management.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Sorting](<https://devfeed.tech/topics/sorting.md>), [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [command-line](<https://devfeed.tech/tags/command-line.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [configuration-management](<https://devfeed.tech/tags/configuration-management.md>), [hydra](<https://devfeed.tech/tags/hydra.md>), [integration](<https://devfeed.tech/tags/integration.md>), [project-organization](<https://devfeed.tech/tags/project-organization.md>), [python](<https://devfeed.tech/tags/python.md>), [ranking](<https://devfeed.tech/tags/ranking.md>), [search](<https://devfeed.tech/tags/search.md>), [sorting](<https://devfeed.tech/tags/sorting.md>)

### AI overview

OLX describes centralizing Learning to Rank projects and adopting Hydra to manage configuration across teams and repositories. The article introduces Hydra's hierarchical organization, runtime command-line overrides, optimization-tool integration, and Python usage.

### Source excerpt

As software systems continue to grow in complexity, the demand for effective configuration management tools becomes not just important but essential. Our work on Learning to Rank (LTR) projects exemplifies this challenge. At OLX we use LTR to improve the search results based on their relevance. This involves training models to rank ads based on various features, ensuring that the most relevant ones appear at the top of the list. The resulting sorting can be found under the 'Recommended Ads' option, the default option currently live on our OLX websites in several countries. Given the potential to enhance user experience and increase engagement -- while balancing the visibility of paid (boosted) ads-- this approach is also being tested in other business units, such as Motors and Real Estate. More projects meant increased complexity, with multiple repositories holding various configuration files. These projects were spread across different teams and repositories, leading to duplicated efforts and repeated issues for similar tasks. This growing redundancy pushed the team to centralize all LTR projects within a single repository. We quickly recognized the need to enhance the experience for Data Scientists and Machine Learning Engineers who would work directly with this new centralized framework. Enter Hydra. Hydra -- The configuration tool Developed and maintained by Facebook AI Research, Hydra stands out when it comes to configuration management. It empowers developers with a sophisticated yet easy-to-use solution that simplifies even the most complex configuration setups. With features such as hierarchical organization, runtime command-line overrides, and seamless integration with optimization tools like Optuna, Hydra offers flexibility and efficiency. These qualities made Hydra the ideal choice for our project, and we have successfully integrated it to enhance our configuration management workflow. And don't worry too much about a learning curve -- Hydra has extensive doc