Dixons Carphone
Company
Dixons Carphone was the previous name of Currys plc. Currys plc is a leading omnichannel retailer of technology products and services, operating online and through 719 stores across six countries.
Team
The Searchlabs team consisted of three additional senior developers, one QA, one product owner/scrum master, and one part-time team lead. The team operated as a true Scrum team, empowered to take full ownership of the search API. In my role as a senior developer (contractor), I utilized my expertise to suggest and implement improvements to the search API.
Challenge
Beyond BAU tasks, I worked on two main projects during my time at Dixons Carphone:
API Performance and Load Testing: I automated the load testing process and encapsulated it within a Docker container. I then established baseline performance metrics and integrated performance testing into the CI pipeline to fail the build if performance degraded. Additionally, I created a separate CI option to run a load test against the environment, ensuring that auto-scaling at peak load functioned as expected.
Search Relevancy: I developed a solution to ensure that changes to the search algorithm did not negatively impact relevancy results. The tool measured changes in relevancy using the Wilcoxon signed-rank test by comparing product position results between the baseline and the new search algorithm. It performed these comparisons for the top 1,000 searches and highlighted the searches with the most significant changes. The tool also provided the ability to drill into individual searches to see how the results had changed.
Smaller Projects: Other smaller projects included migrating to Docker Compose, making minor tweaks to the search results, adding small enhancements to the back office, and implementing OpenDistro Elasticsearch monitors.
Results
The API performance tests identified several issues before they went live, preventing negative impacts on the website and avoiding potential revenue loss.
The Search Relevancy tool was well-received and used by the team to ensure that changes to the search algorithm did not adversely affect relevancy results.