Snapshot testing? (A polaroid photo of a beach scene). Photo by Nazym Jumadilova on Unsplash.

Snapshot Tests, Functional Tests and GraphQL

In Part One, I shared the origins of waitrose.com, why we ended up needing to migrate to a new platform, and the first of my 5 lessons I learned along the way. In this second and final part, I’ll share the other lessons and reveal how the story ends (for now)!

I mentioned Jest and snapshot testing briefly in Part One

Lesson Learned 6: Snapshot Testing has been worth adopting too

Snapshot testing is when you have the output rendered from your components stored in automatic snapshots, so each time your unit tests run, it can verify that the output…


Part One — Hidden Complexity, Accessibility, Design Systems & JavaScript Libraries

Now this is a story all about how
Our Waitrose web platform’s getting flipped upside-down
And I’d like to take a few minutes
Just sit right here
I’ll tell you how we‘ve gone from Monolith to Modern in the last few years!

In this post (a version of a talk I gave recently at Cambridge JS), I’ll share some of my top tips and lessons learned from my past two years as a front-end developer for waitrose.com. …


This is the blog post version of a lightning talk I gave at JS Oxford last week (slides, video). If you would prefer to read the self-hosted version, it’s cross-posted here.

I recently spent a bit over 2 years as a developer advocate for Samsung Internet. If you’re not familiar with the term “developer advocacy”, it’s a type of role also known as “developer evangelism” or “developer relations”. It’s about being a bridge between an organisation’s developer platform (in Samsung Internet’s case, the web) and any developers who might use it. …


It’s a mistake to judge the fediverse as though it’s a Valley startup

The Masto-Don invites you to join the fediverse. But don’t feel you have to…

Mastodon is now over two years old and (to borrow a turn of phrase from Terry Pratchett), it’s still not dead yet. Somehow it’s managed to defy those early critics who said it “won’t survive” and was “dead in the water”. Even some of those posting on Mastodon in its early days doubted its longevity:

More recently, an article about Mastodon’s wider ecosystem — termed “the fediverse” — made it to the front page of Hacker News: “What is ActivityPub, and how will it change the internet?”, by Jeremy Dormitzer. It makes a good case for the importance of the…


a.k.a. How I got started using Tensorflow.js

https://llama.vision (video shown in the background by Karen Ihrig)

A few months ago, I first tried out Tensorflow.js, the machine learning library for JavaScript. I took a pre-trained model I found called MobileNet and copied some of the example code. One of the lines said “replace this with your image”, but I thought I’d try it out on a video instead. I grabbed a Creative Commons video of some llamas and… I was astonished!

It gave a probability of over 0.99999 that the video contained a llama. I figured that, to get that level of certainty, perhaps I had just happened to pick one of the exact videos…


Why WebXR and Web Bluetooth make a great combo

WebVR + Web Bluetooth demo running in a desktop web browser

It’s an exciting time for interacting with physical devices via the web — and also for the Immersive Web. The former just received a boost last week with Web Bluetooth support arriving in the stable Chrome browser on Windows. For the latter, last month saw the announcement of the formation of the W3C Immersive Web Working Group, to continue the work bringing high-performance Virtual Reality and Augmented Reality to the open Web.

There are also exciting opportunities for combining physical devices and the Immersive Web together. Not only are they both important examples of the larger trend we’re seeing around…


Good news! Since v8 of Samsung Internet, now available in Beta, it is possible to automate the browser using ChromeDriver, the Selenium WebDriver protocol implementation for Chromium browsers.

We’ve had requests for this from companies who wish to incorporate Samsung Internet into their automated testing suites, so we’re pleased to share how you can help to ensure your web properties work well in one of the most popular mobile browsers worldwide!

ChromeDriver versions match up with particular versions of the Chromium engine. Samsung Internet v8.x is based on Chromium M63. This means that you will need to use ChromeDriver v2.36


Featuring the improvements from the 7.4 Beta, including special news and shopping additions in the US

A shopping cart —photo by our colleague Diego González (link)

Hot on the heels of our v8.2 beta announcement, we’re pleased to share that the stable edition of Samsung Internet has now been updated from v7.2 to v7.4.

This includes the updates we launched in beta a few weeks ago including authentication with Intelligent Scan, customised Reader Mode and Download History improvements.

It also features a couple of special additions in the US…

Quick Suggest (US)

A new announcement! Quick Suggest is a personal shopping assistant, available in the Samsung Internet browser in the US. …


The next major version of Samsung’s browser for Android is now being released for beta testing

“Eight (Explored)” by Nikos Koutoulas (CC BY 2.0)

Our new Beta version of Samsung Internet is now being rolled out on the Play Store and will be available to everyone (Android 5+) within the next few days. The current stable version of this major update, v8.0, has just started shipping now with the shiny new Galaxy Note 9. The Beta is an opportunity to check the same major version — and the minor version that will soon be released for all supported phones.

Here’s what’s new this time:

Faster file downloads

We have introduced a new optimised download system which can offer a significant speed improvement. Larger files now download in…


How new web platform features and compile-time frameworks are establishing the next era of web development

Credit: Stefan Bucher

Frameworks like Angular, React and Ember are par-for-the-course for complex web development these days. Over this decade (Angular was first released in 2010) they have grown to become defacto standards for many of us, helping countless organisations to structure their code, manage state and build complex UIs, based on reusable components.

However, as you might know, JavaScript is our most expensive web asset — the most likely to negatively impact our pages’ interactivity. And we’re shipping more of it to our users than ever. The average web page is now over 3MB, bigger than the size of the original Doom…

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