• Skroutz Engineering
  • Home
  • About
  • Search
  • We are hiring!

    Skroutz Engineering

    Skroutz's Engineering and Technology Blog

    • BrightonSEO 2025: The Good, the Bad & the... New

      What We Learned at BrightonSEO This Year.

      April 27, 2025
    • How Skroutz handles Real-Time Schema Evolution in Amazon Redshift with Debezium

      Building a scalable data platform without blocking product development using a hybrid on-premises and cloud approach.

      January 21, 2025
    • Breakpoints in Production HTTP Requests

      At Skroutz, debugging issues in production as soon as possible is crucial to minimizing downtime and ensuring a smooth experience for our users. Traditionally, investigating incidents or bugs in HTTP requests involved reproducing the issue in the development environment by adding breakpoints (e.g binding.pry).

      January 09, 2025
    • MVI in Skroutz android app

      Our codebase is over 10 years old. Like every other project that started at that period, it adopted Model View Presenter as its architecture. Over the years, both the app and the team grew. This created a need to shift to an architecture resembling ‘clean architecture’. At that point, MVP became the presentation pattern of the app. A decision that served us well all these years.

      December 17, 2024
    • One Screen to Rule Them All

      What’s the excitement about one screen being the ultimate solution? Presenting the new Listing Screen, an update to the legacy version that now supports sections, ready to transform how we manage listings in our app. The Home Screen of the Android Skroutz app already uses sections, setting the stage for a dynamic user experience. This article will explore the challenges we encountered during the implementation process, the solutions we developed, and how we successfully executed a smooth release.

      November 15, 2024
    • Growing the documentation of our android project using Dokka

      In the last few years the android team has grown significantly and with that so did our codebase. We are at a state that the lack of documentation has become an issue but not for what you might think. Documenting a class as to how it works is not as essential as making the same class easy to discover!

      February 29, 2024
    • The Importance of Having a Healthy Chapter

      At Skroutz, every product engineer belongs both to a product team and a chapter. A product team contains people from all crafts and is responsible in delivering new features to our users. A chapter on the other hand contains only engineers of a certain craft and is responsible for all technical aspects of a project.

      December 06, 2022
    • Handling inertial scroll in combination with scroll snapping

      A tricky bug during a key redesign in fashion pages led us down an engineering rabbit hole in an effort to achieve an excellent user experience.

      May 15, 2022
    • Core Web Vitals Real-time Monitoring at Skroutz.gr

      A symbiotic relationship for continuous, real-time monitoring and improving user experience on a large scale application with millions of users.

      February 27, 2022
    • Skroutz contributes to Hotwire's upstream

      How we contribute to the evolution of Hotwire

      November 01, 2021
    • Monolith Diaries: Upgrading Rails

      Streamlining the Rails upgrade process.

      October 22, 2021
    • Hotwire @ Skroutz: Lazy load data with minimum effort

      Take advantage of Hotwire features to achieve a lazy loading experience without boilerplate code

      July 11, 2021
    • SEO at Skroutz.gr: Our Top 5 Principles & Values

      A summary of the SEO values that helped Skroutz.gr΄s significant growth.

      June 17, 2021
    • Refactoring a React app to progressively load its data

      Providing a more user friendly UI while waiting for your data to be fetched

      April 07, 2021
    • How we classify products at Skroutz

      How to analyze and classify more than 80,000 products / day

      March 05, 2021
    • Uncovering a 24-year-old bug in the Linux Kernel

      How a failing rsync run led to the discovery of a long-standing bug in the Linux TCP implementation.

      February 10, 2021
    • Speed: The Journey to Delivering a Faster Experience at Skroutz.gr

      Α technical post about Rendering Performance of Skroutz.gr.

      October 22, 2020
    • Process Optimization

      How to keep your business processes lean and efficient

      June 07, 2020
    • Hiring engineers while working from home

      Or: How We Learned to Stop Worrying and Love the Engineering Interview Process

      May 31, 2020
    • Performance Management @ Skroutz

      How we transitioned from semi-annual feedback meetings to a continuous performance management framework.

      February 13, 2020
    • [Case Study] How we optimized our Crawl Budget

      How we optimized our Crawl Budget by removing 72% of Skroutz indexed URLs while growing to 30M sessions/month.

      October 30, 2019
    • Agile Summit Athens 2019

      We were at Agile Summit 2019 in Athens here are our notes.

      October 03, 2019
    • Entropy changes in Debian or 'why a VM boots in 5 minutes?'

      Debian Buster made our VMs boot up in over 5 minutes. That's how we fixed it.

      September 09, 2019
    • Searching at Skroutz: from Kafka to Elasticsearch

      How we built a robust and scalable pipeline for streaming MariaDB data changes to Elasticsearch

      August 26, 2019
    • Speeding Up Our Build Pipelines

      Introducing mistry - an open source, general-purpose build server.

      August 23, 2019
    • Experience Fighters #EXF19

      We were at Experience Fighters 2019 in Madrid here are our notes.

      August 01, 2019
    • Eliminate Content Repaints

      How we eliminated content repaints caused by animations

      May 05, 2019
    • Mo, the forking stranger at Skroutz

      How we optimized our shop scanning performance without redesigning.

      April 08, 2019
    • Introducing Kafka to a Rails application

      Laying the foundations for robust consumers & producers.

      April 16, 2018
    • Smashing Conference Barcelona 2017

      We were at Smashing conference 2017 in Barcelona, here are our notes.

      November 09, 2017
    • Frontend United Conference Athens 2017

      We were at Frontend United conference 2017 in Athens, here are our notes.

      June 05, 2017
    • Rewriting our web analytics tracking infrastructure in Go

      A tale of web beacons, Rails and Go

      May 15, 2017
    • How we migrated our Javascript stack to Webpack

      Our journey from Rails asset pipeline and RequireJS to Webpack

      April 25, 2017
    • Upgrading Puppet 3.x to Puppet 4.x

      Getting upgrade-ready for Puppet 4.x

      March 24, 2017
    • Smashing Conference Barcelona 2016

      We were at Smashing conference 2016 in Barcelona, here are our notes.

      November 25, 2016
    • EuRuKo 2016

      EuRuKo 2016 - Sofia

      October 25, 2016
    • Skroutz Analytics

      Big Data at Skroutz

      August 31, 2016
    • Our take on Fuzzy Auto-Completion

      Integrating fuzzy suggestions in a manner that makes sense

      June 28, 2016
    • Skroutz Redesign: how we designed and implemented our own Design System

      Interesting things behind the Skroutz 2016 major Redesign

      May 10, 2016
    • Optimizing Continuous Integration at Skroutz

      Continuous Integration at Skroutz

      March 18, 2016
    • 2015: An amazing Front-end year at Skroutz

      What we learned as a Skroutz Front-end team during 2015

      January 06, 2016
    • On Prototyping

      How to use prototyping to evaluate your assumptions.

      October 26, 2015
    • Skroutz infrastructure at a glance

      What does Skroutz run on?

      April 21, 2015
    • CSS at Skroutz

      A summary of how we organise, structure and reuse style sheets at Skroutz.

      March 08, 2015
    • The Skroutz Feed Validator

      A tool for verifying xml feeds from eshops

      February 01, 2015
    • Working with the ELK Stack at Skroutz

      How we use the ELK stack to visualise and analyse visitor behaviour in real-time

      January 01, 2015
    • Digitized 2013 - It Was... Double Rainbow Awesome!

      A summary of 2013 Digitized conference in Athens

      September 21, 2013
    • CSSDAY 2013 - Amsterdam

      CSSDAY conference in Amsterdam, a conference about CSS technologies and techniques.

      June 20, 2013
    • EuRuKo2013 - design

      Euroku Ruby conference 2013 that took place in Athens

      February 01, 2013
    • Baruco 2012

      Baruco 2013 Barchelona Ruby Conference

      September 17, 2012
    • Removing wildcard routes

      Removing wildcard routes on ruby on rails

      June 08, 2012
    • How we manage to manage

      How Skroutz manage teams & development

      May 28, 2012
    • Implicit design patterns

      design decissions on Skroutz redesign

      May 25, 2012
    • Kowalski, progress report!

      Kowalski Progress report

      October 11, 2011
    • Skroutz architecture in bullet points

      An overview on Skroutz basic architecture

      February 12, 2011
    • Crafting newsletters on Rails

      Newslettters on a Ruby on Rails app

      June 14, 2010
    • Skroutz + Warden

      Enable the usual social authentication methods

      June 11, 2010
    • Building a headless web site screenshot server

      Installing

      June 09, 2010
    • Implementing spell checking at Skroutz

      Spell checker libraries based on dictionaries (like aspell) have two major drawbacks:

      May 04, 2010
    • Queue Helpers for Resque

      We use our own fork of Resque, Resque-Mongo which uses Mongo instead of Redis and it works extremely well.

      April 09, 2010
    • MySQL slave monitoring wihth Munin

      We have a couple of MySQL slave servers running debian here at Skroutz and I was searching for a way to monitor the service’s status. I run munin agents on all servers so I wrote a small python script to graph the slave’s status.

      March 02, 2010
    • BlackholeStore: a /dev/null rails cache store

      Before BlackholeStore

      March 02, 2010
    • Static Files With Nginx + Passenger

      Normally, when you setup Nginx and Passenger to serve your rails application, all static files are served by Nginx without hitting Passenger. What really happens is that all static files that do exist are served by Nginx and the rest are passed on to passenger.

      February 02, 2010
    • Acts_as_tree_on_steroids plugin

      We’ve been using a home-made extension of acts_as_tree on our production site for quite some time. We finally found some time to release it as a plugin. You can find it on github. It’s not anything special, but it may give you some ideas for doing similar things.

      February 02, 2010
    • About
    • Skroutz Blog
    • Developer tools
    • Skroutz Github
    • Skroutz
    © 2025 Skroutz Engineering Team. Powered by Jekyll.
    We are hiring!