At Vinted, more than 20% of all search sessions now start with a click on an autocomplete suggestion. A few years ago, that number was below 8%. Autocomplete not only saves typing effort - it helps people discover listings they...
Read postEngineering at Vinted
Stories, ideas and lessons from the people building Vinted.
Upstream schema changes were breaking our finance pipelines daily. With monthly reporting deadlines looming, we needed to balance data quality with pipeline reliability. Here’s how we solved it without compromising either.
Read postMetro - modern and kotlin injection framework created by Zac Sweers. And we, Android developers at Vinted, officially and fully migrated to it! It was quite a bumpy ride for our huge codebase. Our story begins…
Read postGrowing platform - Growing maintenance Keeping the Lights On (KTLO) is an essential, yet often taxing, part of a platform engineer’s role. It represents the routine operational work required to keep the business running and the platform stable. For our...
Read postIn the first part, we described how growth pushed us beyond the limits of the monolith and forced us to rethink our architecture from the ground up. We explored how Domain Driven Design helped us uncover clear boundaries, and how...
Read postA few years ago, our platform reached a point where the way we’d always built software simply wasn’t enough anymore. The monolith that powered our early success had served us well, but as the business expanded across the continent, it...
Read postTL;DR: How Vinted standardizes large-scale decentralized data pipelines.
Read postTL;DR: integrating embedding-based retrieval into the e-commerce search application is a significant undertaking.
Read postTL:DR: When required data can be encoded with match-features, Vespa can apply a new optimisation, which can be a lifesaver when data is frequently redistributed.
Read postInconsistent Redis performance was observed across a fleet of otherwise identical servers. After investigation, we discovered that differences in Linux system clocksource settings - specifically, servers running the slower HPET clocksource instead of the default TSC - led to significant...
Read postTL;DR: Vinted operates a billion-scale search system - time to reflect and celebrate.
Read postEver wondered what goes into making the search experience seamless at Vinted? In this post, our Search Platform team take you through their latest improvement. Discover how the team’s hard work and expertise allowed us to transition from Elasticsearch to...
Read postIn today’s digital landscape, recommender systems have become ubiquitous, curating user experiences across a wide array of online platforms, including Vinted - Europe’s largest online second-hand fashion marketplace. In this blog post, we outline our journey of adopting the Vespa...
Read postA tiny disclaimer: When I say mock, I will be referring to a Mock Test Double. The mocking framework used to create this Test Double can be known as dynamic mock libraries, as defined by Mark Seemann. All code I...
Read postBuilding an effective and efficient data ingestion pipeline is a challenging task. Let’s cover the migration from scheduled Sidekiq background jobs to real-time indexing built using Apache Flink.
Read postAs containerisation continues to revolutionize the way software applications are developed and deployed, ensuring the security of container environments has become an utmost priority. Security in a containerised environment requires a different approach than traditional security mechanisms. It involves continuously...
Read postHere at Vinted, we adhere to the continuous deployment principle, meaning that each merge to the main branch of the code repository initiates an automatic deployment process. As a result, the merged code goes live in a short period of...
Read postThis is the fourth in a series of chapters sharing our Vitess Voyage story. After a rough ‘Vinted Autumn’, this time we came to the conclusion that vertical sharding was no longer an option.
Read postThis is the third in a series of chapters sharing our Vitess Voyage story. With the plan ready and wounds healed, we made the move.
Read postThis is the second in a series of chapters sharing our Vitess Voyage story. After a busy ‘Vinted Autumn’, the real work took hold.
Read post“Winter is coming” - Ned Stark, Game of Thrones Au contraire, autumn is the season to warn us of upcoming challenges - the most extreme growth and workload period of the whole year. In fact, we coined the term -...
Read postVinted is taking a significant step to strengthen our presence in Lithuania - we’re officially expanding to Kaunas this year. We have a number of software engineering and engineering management roles that were previously only located in Vilnius which are...
Read postThe Software Asset Inventory keeps track of all the software that is operating in an organisational environment. These assets might range from business applications operating on an organisational level, to the personal applications installed on the end-user devices. These software...
Read postFaceted search is a powerful feature that allows users to quickly refine their search results when browsing through the vast selection of items on Vinted. With almost 600 million unique items, the ability to narrow down search results is crucial...
Read postOn a daily basis, the automation tasks that engineers deal with are usually pretty straightforward; often something as simple as “send an email reminder after 2 days of inactivity”. These automations are very valuable. However, from time to time we’re...
Read postThe biggest challenge starting out in today’s job market is getting your foot in the door when you have limited experience. To help more people gain valuable ‘first job’ experience, we’re inviting future tech talents to apply for the Vinted...
Read postVinted is Europe’s biggest pre-loved fashion marketplace, with over 75 million registered members in 18 countries. It runs on Ruby on Rails. Ruby was the perfect choice for building applications in a rapidly changing business environment. But Ruby has its...
Read postAt Vinted the teams are structured in different ways. We have a unified organisational hierarchy across the company, but once we get to a team level, everything changes. Teams are free to organise themselves as they please. This is a...
Read postMy name is Mangirdas, I’m an Engineering Manager here at Vinted, and I’ve just participated in a miracle project. Our team (Stardust) coped with a big technical challenge to bring a new project to life: the Vinted Go lockers network....
Read postVinted was founded during the peak of Ruby popularity (2008). Choosing Ruby was as common and fashionable as Rust, NodeJS, or GoLang would be today. Many years have passed and we still stick with Ruby among other big companies like...
Read postMy name is Malachi and I work as a backend engineer as part of the shipping platform team in Berlin. In this post I will explain my experience from the first 6 months of working at Vinted explaining how onboarding...
Read postAt Vinted, our long-term strategy is to build an international marketplace where users can trade between countries. Initially, we had separate legal entities, core service instances and databases to serve our users in the countries we operate in. We called...
Read postAn old fact from 2014 December 12th was significant for Vinted: the company switched from Sphinx search engine to Elasticsearch 1.4.1. At the time of writing this post, we use Elasticsearch 7.15. Without a doubt, a lot has happened in...
Read postElasticsearch is really fast out of the box, but it doesn’t know your data model or access patterns. It’s no secret that Elasticsearch powers our catalogue, but with the ever-increasing amount of listings and queries, we’ve had a number of...
Read postManaging DNS infrastructure at scale comes with its challenges. Sometimes, when infrastructure expands, things that worked fine for years can start to become an inconvenience, or even blockers. It’s also possible that human error can cause service downtimes. In this...
Read postVinted is growing – fast. To keep up with this increase in use, its Elasticsearch infrastructure constantly needs to be tuned. However, the most important requirement for any Elasticsearch performance tuning is to benchmark its production-like data. To collect this...
Read postMilda Mitkutė and Justas Janauskas have founded Vinted in 2008. Since then, all the software engineers were co-located in Vilnius: from our founder, CEO, and the first software engineer Justas to the more than 240 people working in engineering today....
Read postOne of the key features of a good web service is user input validation. External input cannot be trusted and application must prevent malicious data from being processed. It’s not only a matter of security but as well as for...
Read postManaging Elasticsearch indices at scale isn’t easy. Index settings were part of our core application monolith logic. Making the slightest change to them meant that the whole application had to be redeployed, lots of unrelated tests had to run. Also,...
Read postIt began with Elasticsearch cluster upgrades. Every major Elasticsearch version brings new features, free performance, compatibility issues, and uncertainty. In addition, we had an itch to dissect requests, conjoin request with a response for analysis, record queries for stress testing,...
Read postData ingestion into Elasticsearch at scale is hard. In this post, I’m going to share a success story of leveraging the Kafka Connect Elasticsearch Sink Connector to support the ever-increasing usage of the Vinted platform and to help our search...
Read postLogs flow until they don’t. One year ago our centralised log management (LM) system became quite unstable. This often caused LM service outages and human intervention was required, sometimes several times a week. In this post I’m going to give...
Read postAround one year ago I was considering applying for an open position as a Backend Engineer at Vinted. At the time I was still in my first ever IT job, and had very little experience with job interviews. So I...
Read postDuring the last year, Vinted SRE team reimplemented the whole data center network starting with new equipment, finishing with the topology and architecture change. The project had its ups and downs: things that seemed complex at the start became trivial...
Read postAfter being a PHP developer for 10+ years, I’ve switched programming languages twice in the past two years. During all of my years of web development, I assumed I knew many programming languages. I used JavaScript relatively often. I knew...
Read postEvery day Vinted gets a few billion events from our customers via mobile phones or web clients. Every time a user clicks somewhere, views an item, views another user’s profile, buys something, leaves feedback, etc., a JSON representation of that...
Read postThis blog post is about how we approach Engineering at Vinted. It’s a high-level overview, which describes how we think and what principles we apply. By design, it doesn’t go into details, so we would love to hear from readers...
Read postMost Android developers use SharedPreferences. It’s a great way of storing something simple across app screens or even sessions. As this simple tool may be perfect for many app developers, it may not be that handy and powerful to use...
Read postManaging physical hardware is a diligent process of bookkeeping. Tracking everything from an email message to added/removed hardware components was tedious, for each request to the provider, one had to not to forget to fill what was changed and leave...
Read postYeah, every Android developer knows what it means. And it doesn’t stop there. Slow builds drain the battery very fast and fingers suffer from burning keyboard keys. Even colleagues around are distracted by your noisy CPU fan. We are dreaming...
Read postThere are many recipes describing how much resources to allocate for Elasticsearch, but there are none about using non-uniform memory access[1]. This post is about leveraging NUMA[2] for efficient resource usage.
Read postA year ago, Inga made a drastic career change and started learning to code. The ex-diplomat is now Vinted’s front-end developer. We met with her to talk about the challenges that she encountered in this transformational journey.
Read postThe Lead of Vinted’s Site Reliability Engineering team is sharing his thoughts on work and life.
Read postFinding the right settings of indices is a relentless process of monitoring and experimenting. I want to share key methods of detecting scalability problems of Elasticsearch using metrics and automation. We use Elasticsearch for ranking product listings and full-text search...
Read postI meet a lot of new people and talk Vinted to them. Over a few weeks I realized there are many things known to insiders, which can easily make an outsider raise their eyebrows. I thought I’ll share some of...
Read postAt Google I/O ‘17 the Android team announced first-class support for Kotlin. Since then, the language has received a lot more interest from Android developers. This is great news for Android developers and the whole Kotlin community! Many developers are...
Read postOne with a backbone will do more than a thousand with a mere wishbone. Usually, having a backbone is a good thing. At Vinted we started using Backbone.js, a framework to help build web user interfaces, more than 5 years...
Read postMeet our front-end lead Gedmantas. He started his journey at Vinted two years ago and today we caught up with him to find out his thoughts on achieving fulfillment in life and at work.
Read postTwo years ago I had an interesting challenge: explain to a junior developer why he should prefer interactor pattern instead of Rails Active Record Callbacks. Arguing against callbacks is easy - thanks to the community there is a lot of...
Read postThree months ago I started leading Vinted’s new SRE (Site Reliability Engineering) team. What’s new about it you ask? Well, the previous lead left and the team was merged with two developers who work on our data warehouse - which...
Read postMeet our Android developer Martynas Jurkus who’s been making the Vinted app great for three years. How did a guy who belongs to the Lithuanian Riflemen’s Union, loves sci-fi and is a real gaming geek come to work for a...
Read postData warehouses are typically assembled from a variety of data sources with different formats and purposes. As such, ETL (Extract, Transform and Load) is a key process to bring all the data together into a standard, homogeneous environment. The ETL...
Read postNew platforms have and will keep bubbling up - be it smartphones, tablets, smartwatches or embedded devices. Both startups and established organisations encounter a need to enter and support them. We went through different stages of transformation to support multiple...
Read postAt Vinted, we’re big fans of continuous deployment. Our code is deployed hundreds of times per day into production. While offering a lot of advantages, continuous deployment also introduces its own set of challenges. Release of major changes, like big...
Read postThe PolyConf conference took place in the end of June. It unites polyglot programmers focusing on new as well as functional programming languages. This is my overview of its most interesting ideas.
Read postSublime Text is amazing editor. It shines at its speed, file search and multiple cursors. If some functionality is missing, you can easily extend it via plugins. I have written TestRSpec plugin for running RSpec specs. Give it a try...
Read postThe React Europe conference took place in the beginning of June. It unites people who shape or are interested in the future of web as well as mobile applications. Let me share the most interesting ideas from the conference.
Read postOn the 26th of May, some of us took a day off from our everyday work and went to learn new things at Devops Pro Vilnius. Here are some things we found interesting.
Read postLOGIN took place in Vilnius at the start of this month, on May 5-6th. It’s the biggest tech community gathering in Baltic States, attracting 5000 visitors annually. During its Startup Fair, our own Mindaugas Mozūras gave a talk about Engineering...
Read postLast Friday marked the end of my journey as an iOS developer intern at Vinted. It all started with my future mentor Mindaugas teaching an introductory iOS course at Vilnius University. Developing iOS apps has been a dream of mine,...
Read postAt Vinted, we have Guilds. No, not the World of Warcraft type - if this was based on computer games, I’d push, oh, so hard for us to have factions (go figure). The Spotify type. At Vinted, a Guild unifies...
Read postWhat happens when your code reaches the end-user just once in a while? Imagine. It’s a late Friday evening. A developer (still on his 3 month trial period) just finished manually deploying changes to production. He’s alone in the office,...
Read postWe care very much about all performance aspects, even networking. If you do too, our System Engineer Donatas Abraitis wrote a post that explains how to save bandwidth by turning off TCP timestamps. Find it on High Scalability.
Read postBig Data Strategy 2015 conference took place in Vilnius on October 5th, 2015. Vinted engineers gave two talks about our Hadoop -based data warehouse, metric computation, and lessons learnt while implementing it.
Read postIt was the last day of my internship as a front-end developer. Or, more like two days after the last day of my internship. The office in Žirmūnai street was in a festivity mode. At Vinted, celebrating colleagues’ birthdays is...
Read postThe post was written by Elena Lapinskaitė after her internship at Vinted. When you’re 18, there are so many ‘firsts’ to experience. Your first driving ticket, your first holiday abroad on your own (and getting lost in Warsaw in the...
Read postAt Vinted, we use a data structures server Redis for many things including Resque, news feed, application, etc. We are not able to restart or upgrade Redis instances without having zero downtime. High availability is critical for us. Therefore, we...
Read postThe engineers at Vinted began the year working on the improvement of the caching layer. We managed to significantly improve the performance of our Rails application and substantially reduce the number of database queries. But this additional load to our...
Read postAt Vinted, new code is deployed to production machines all the time with zero downtime for members. Deployment changesets are small. So we can move fast and fearlessly. To keep the speed of development from decreasing we have an extensive...
Read postWe wrote a guest-post about Vinted Architecture on High Scalability. If you’re interested in our technology stack and workflow, it’s worth checking out.
Read postGit is one of the most wonderful tools developers can use to make their lives better. As Linus himself put it best: “If you actually like using CVS, you shouldn’t be here. You should be in some mental institution.” However,...
Read postThese are the voyages of code tailors that help create Vinted. Our mission: to make second-hand the first choice. It’s a big undertaking. We learned a lot already and expect to boldly discover even more. Here we’ll be writing about...
Read post