eBay is a multinational e-commerce corporation and the world’s largest online marketplace. Marktplaats is the lead online classified advertising platform in the Netherlands for selling items such as clothing, cars, household items, and other commodities. In late 2004, eBay acquired Marktplaats with the aim of using investment and online trading expertise to expand its e-commerce position in the Netherlands and enhancing its classified-style trading capabilities.
During this project, we were part of the IT department in Amsterdam which is at the heart of eBay’s product in the Benelux region. During our collaboration with eBay/Marktplaats, we worked closely with multiple teams for several months at a time. For the “Search Page Rebuild” project, we joined forces with the “Finding team”.
The organizational structure reflects the microservices architecture model also adopted by other tech giants such as Netflix and Amazon. As such, IT is broken into several cross-functional teams where each team takes ownership of a product vertical and is adept at handling the UI, API, business logic, and data access layers. For instance, the “Acquisition and Retention team” deals with user login and notifications. The “Finding team” focuses on the search functionality which facilitates looking up sellers and products. The “Messaging team” deals with tools connecting buyers and sellers such as direct chat and auctions.
The “Search Page Rebuild” is part of a larger internal project. In order to optimize its operations in the Benelux region, eBay made the strategic decision to unify both of its classified businesses (Marktplaats and 2dehands) under one multi-tenant platform while preserving the existing customer-facing branding and experience tailored to each country.
This migration project is dubbed “Vostok” and was launched in 2018. Vostok is primarily a technical project consisting of multiple initiatives, each aiming to rebuild an existing product vertical for each tenant (Marktplaats and 2dehands) on top of a single platform under the hood.
The existing search application was built using a deprecated technology. It was tedious to make any changes, and virtually impossible to implement new features. This meant in the short term, that making the functionality multi-tenant would take a significantly long time. In the longer term, running A/B testing experiments or extending the functionality would also take a longer time, if not possible at all. In addition, recruiting developers to work on this product vertical would prove very challenging due to the low appeal factor of this type of technology in today’s market.
The existing SEO algorithm on the platform was limited because it did not contain logic accounting for the various types of product categories and seller properties.
- Docker, Kubernetes
To allow SEO experts to contribute by carrying out changes without needing to change the application’s source code, we implemented an algorithm triggered at the middleware level which takes the user request as input and applies the most appropriate SEO rule before returning results to the user. The algorithm utilizes intelligent in-memory caching: excellent performance. The algorithm stood the test of time. Virtually no code changes were made to the algorithm one year after the release, although multiple product categories were added, and additional SEO rules were instituted.
From a Front-end perspective, we developed several UI components that adhered to the already-in-place design guidelines and participated in refactoring legacy components in the design system. In addition, we have assisted in enforcing better conventions and generating higher quality code through several improvements in state handling and leveraging advanced design patterns. Furthermore, we provided mentorship to more junior frontend developers in the team through continual feedback and pair programming sessions.
All features were tested and approved by the eBay QA team. The SEO team approved the implementation of the project team which yielded a 92.5/100 score, exceeding the minimum satisfactory score of 85/100.