Empowering autonomous experimentation in a scaling enterprise

    Fabio Ricchiuti, on 23-06-2021
    Category: Development

    Introduction Like living organisms, companies need to learn and adapt to an ever-changing ecosystem. As a result of that, we are witnessing a paradigm shift in which domain experts are originating important innovations. They are product managers, engineers, analysts, data scientists rather than C-level executives, who still have the important job of facilitating this huge process. Within bol.com we call this paradigm “Product Organization” and this is shaping our way of working for the next few years. A “Product Organization” consists of a cross-functional structure of product teams. Every team…

    Read more

    Turning rusty tech into Rust ~ When you need to FTP but don’t want to

    Hannes de Jager, on 17-06-2021
    Category: Development

    I believe that FTP is due for a makeover because it’s so ancient that few companies want to host it, yet so many customers still want to use it. That’s why fellow techies and I embarked on two open-source projects to develop a modernised FTP server for the cloud called unFTP. In this writeup I tell you about this server and library, how you can use, customise and extend it and finally ask you to help us make it even better by contributing to its Rust codebases. unFTP you say…?…

    Read more

    How to: validate your app’s metrics on a local Grafana instance

    Rogier Lommers, on 16-06-2021
    Category: Cloud, Infrastructure, Development

    Monitoring your infrastructure is key for keeping production workloads healthy and to debug issues when things are going bad. And like Peter Drucker once said: “if you can measure, you can manage”. At bol.com, we make use of the well-known Prometheus / Grafana stack. Recently I needed to add new metrics to my application. So I opened my visual studio code instance and added a few new measurements. After this, I had the need to validate them, but then I realised I had to push my code changes up to…

    Read more

    Measuring execution time in Kotlin coroutines

    Danu Pranantha, on 11-05-2021
    Category: Development

    1. Background kotlinx.coroutines is one of the asynchronous (and concurrency) libraries in Kotlin for writing asynchronous, non-blocking code. Kotlin coroutines are cooperative subroutines that can suspend and resume their execution at any suspension point (awaiting a result). Coroutines themselves have been around since the 1960s. Coroutines are lightweight cooperative multitasking, often referred to as ‘lightweight threads.’ They yield control upon suspension. Other coroutines can then use it to start/continue their execution. Thus, they don’t depend on a scheduler and operating system. On the other hand, threads are based on the…

    Read more

    PIP: helping products improve their innovation power

    Hessel de Gelder, on 26-04-2021
    Category: Blog

    The Product Innovation Power model (PIP) is created for the product teams and provides insights, best practices and tools to improve their innovation power. It unlocks the potential of our people & technology and accelerates the shift to the empowered product teams model. It will support us to become Europe’s #1 in product-led innovation. At bol.com we want to accelerate the shift from feature teams to an empowered product teams model. To do so, we need a shared understanding of innovation, the power to innovate and ways to improve our…

    Read more

    Building an Engineering Culture

    Peter Paul van de Beek, Peter Brouwers, on 8-04-2021
    Category: Blog, Development

    In the bol.com Tech Community, we get quite some questions on how we build a great engineering culture. Mid-March 2021 the hosts of our podcast joined the Hackages podcast which was live recorded with almost 100 attendees. They shared their experiences and answered many questions from the audience. Hackages is a community based platform to help developers and businesses grow and empower each other through content, training and consultancy services In bol.com we believe that autonomy of the teams brings the creativity, knowledge and craftmanship needed to build the leading…

    Read more

    Know what you deploy – a script using git log for listing all features that go live

    Nick Tinnemeier, Dennis de Bode, on 19-03-2021
    Category: Blog, Development

    Introduction For me, even after having pushed the deploy button many times, deploying to production keeps being dreadful. Accidentally pushing an unwanted feature that sneaked in somehow is one of the many things I am afraid of. In this blog post I show you how we reduced our deployment anxiety with a script using git log for listing all the features that go live after pushing that deploy-to-pro button. In this blog post I first introduce you to the way we work and provide you with the necessary information to…

    Read more

    HPA: how it can save you headaches and money

    Alexandra Egher, on 12-03-2021
    Category: Cloud, Development

    In this blog, we show you how to automatically scale your application resources according to either the CPU consumption or to the incoming load of your application.  Background As humans, we are capable of adapting to variable inputs and situations. Some of us are slower, whereas others easily adapt to change. In dynamic environments, flexibility has become one of the most valued skills. As engineers, we also thrive for adaptability. We embrace new technologies, new responsibilities, and new ways of working together. We want to build future proof solutions that react quickly…

    Read more

    Product Development for Data Science – From Idea to Production in 7 Phases

    Simon Stiebellehner, on 26-02-2021
    Category: Data Science & AI, Development

    Towards the end of 2020, Melissa Perotti and I held a talk on Product Development for Data Science Products at GoDataFest – the (this time virtual) festival of Data Technology. We elaborate on how we follow a 7-phase process to take Data Science projects from idea to prototype and from prototype to production.   About the talk In every industry, a remarkably large share of Data Science (DS) projects fail. There are various reasons why DS projects may come to a halt:  Data quality or size is insufficient,  the model doesn’t…

    Read more

    Moving to the cloud? Don’t let your application become a downer!

    Richard Deurwaarder, on 12-02-2021
    Category: Blog, Cloud, Infrastructure, Development

    Introduction At bol.com we have two main ways of running our applications. We can deploy them in a Datacenter (DC) managed by us or we can run them on Google Cloud Platform (GCP). Many applications are being migrated from DC to the GCP to take advantage of the different products available in GCP. Switching to the cloud isn’t just a matter of lift ‘n shifting your application though, there are several changes that you should take into account. One of those changes is, how the behavior of the underlying platform…

    Read more