Image for post
Image for post
Unsplash

So as a hobby project of mine I’m 25k words into writing a novel. It is based on a future dystopian society on Venus. Who would have guessed it? Someone in tech writing about science fiction. I’m not an avid reader. In fact I find writing, and the little of it which I do, to be a more gripping pursuit. Even though I barely write I am apparently still prone to writers block. After writing what I estimate to be a quarter of the first draft, I already have a general idea of where the book is going. For that very reason, some of the spark has been snubbed out of the creative process. I already have the template in my head, now I just need to colour it in. It’s a bit like an architect sketching a perfect architectural diagram, finding that it is complete for implementation and now going through the motions of constructing it. Or a developer, having sketched out a series of perfect APIs, entities and abstractions. All that is left now is to write the implementation. …


Image for post
Image for post

In the Picnic backend landscape, our monitoring stack looks like this. New Relic is our APM provider for tracing and performance monitoring of our Java and Python backend services. We have also experimented with DataDog as an alternative provider. Prometheus is our internal metrics collection system for application metrics which targets backend applications and core infrastructure like our messaging and database clusters and Kubernetes clusters, all behind a Grafana frontend.


Image for post
Image for post

What does a typical 24 hours look like at Picnic? Customer demand is predicted, tens of thousands of trading units are ordered from suppliers, and delivered Just In Time to our warehouses. Then hundreds of thousands of products are processed, shelved and picked into customer totes by Shoppers and shipped in dozens of trucks to dozens of distribution hubs. Runners then off-load them into a fleet of hundreds of electric powered vehicles and deliver them on optimally preplanned routes through towns and cities to deliver them right to your front doorstep. The journey that the humble banana takes in that time is quite entertaining to think about. …


Image for post
Image for post

Some time ago Picnic published a blog post about our cryptocurrency powered code review leaderboard. The general goal is simple: achieve code review harmony via gamification of code reviewing and add cryptocurrency payment as a fun and novel reward system.

In the article we stated that we would open source the project in the future. That day has finally arrived! Thanks to Arturs Drozdovs, Nathan Kooij and team.

https://github.com/PicnicSupermarket/pr-leaderboard

You can now get you and your dev team quickly setup and earning and trading Picnic Coin with your code reviewing contributions. …


Image for post
Image for post

During my time learning and using RxJava I’ve read numerous blog posts, watched countless hours of online talks and presentations, attended conferences and coffee chats and on a number of occasions I’ve attempted to boil down the most condensed approach for teaching its core concepts.

I have ultimately resided to the slightly demotivating fact that learning it simply requires grit and determination. There is no “learn RxJava in y minutes” guide, and if there were it would assume familiarity with some of the paradigm-shifting concepts that it is based upon.

Rather than attempt to teach it once again, this post aims to prepare and reassure you during your bumpy journey ahead. …


Image for post
Image for post

Introduction

There is little debate on the matter, the Blockchain buzzword has stolen a chunk of the tech limelight from AI and machine learning in the past 6 months. A key driver of its success has been the recent boom in crypto currencies, where tech companies are able to source vast amounts of public investment via ICOs (Initial Coin Offerings).

The validity of cryptocurrencies as a store of value in the 21st century is very much up for economic discussion. However, the underlying blockchain technology that the majority of these coins employ seems to provide more tangible value to the tech community. …


Here at Picnic we are concerned with creating the smoothest and most satisfying online grocery shopping experience for our customers. From a backend perspective this means creating systems that are Resilient, Responsive and Reliable. New features should be easy to implement and satisfy these three R’s from the get-go. Whilst migrating to microservices is a stepping stone to building such a platform, reactive programming is becoming the tool that developers are adopting in the pursuit of responsive, resilient, elastic and message driven services as underlined in the Reactive Manifesto.

Image for post
Image for post
Image courtesy of projectreactor.io

There are a number of reactive programming frameworks out in the wild that attempt to address this problem in an elegant manner. At Picnic, we have opted for the Reactive Extensions pattern and opt for RxJava (2.x) and its Spring’s successor; Reactor, given their prevalence in other third party libraries and frameworks, and the extensiveness and fluency of their respective APIs. These are both, in part, implementations of the Reactive Streams API that describes the following simple set of…

About

Philip Leonard

Tech Lead at Picnic. Reactive Programming Enthusiast.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store