I built a visualiser for the Google Cloud Video intelligence API that allows anybody to explore all of the features of the API.


If you’re working with video, then the Video Intelligence API has a lot of powerful features for analysing and detecting what’s in your videos, for small pet projects or massive scale applications.

Here is a list of the features of the API along with some example use cases for those features (see the docs for more info):

Over lockdown I built a voice app that would interview me about my projects and help write articles for me. What would usually take me weeks, now takes me an hour or two, and as a testament to that I wrote one article a day for a week and lived to tell the tale:

Day 1

Day 2

Day 3

Day 4

Day 5 (this article 🤯)


Writing is something I’ve always struggled with, and in my role as a Developer Advocate it can be an important part of the job to make and share content about what I’ve built…

A while ago I tried to make my bike smarter with machine learning to help keep me safe whilst commuting through busy London streets.


If you live in a big city and cycle you probably have developed superhuman reflexes and awareness, especially in cities like London where a lot of the narrow roads were originally designed for horse and cart.

After enough close calls and some actual calls I figured it was time to try and solve this problem with a modern approach (without mirrors).


Using a small computer (Raspberry Pi) attached to the bike. It would run an object…

During the summer I was asked to help with some video recording for a rugby tournament, but rather than spending hours rewatching footage to find highlights, I quickly threw together some tech to make things a lot easier.


Sport videography is a hobby of mine (specifically rugby). It is however very tedious work rewatching full matches in order to find the highlights. That's why when I was asked to help a friend film an entire rugby tournament this summer I was hesitant. …

At Google I/O this year I used ML to build an automated video processing pipeline that detects what’s in a video and automatically hides the parts you would find scary.

see the video of this in action at Google I/O


Whilst watching some movies with some friends, we discovered that one of our friends has a deathly fear snakes and so we had a tell them exactly when the snakes were going to appear , and sometimes we got this wrong 😬 (watching Harry Potter was a poor choice in hindsight).


I built an automated video processing pipeline using Video…

Don’t leave your models to rot into obscurity

So you’ve deployed your machine learning model to the cloud and all of your apps and services are able to fetch predictions from it, nice! You can leave that model alone to do its thing forever… maybe not. Most machine learning models are modeling something about this world, and this world is constantly changing. Either change with it, or be left behind!

What is model rot?

Model rot, data rot, AI rot, whatever you want to call it, it’s not good! Let’s say we’ve built a model that predicts if a zombie is friendly or not. We deploy it to the cloud and now…

Recently a friend got me into basketball. Turns out, it’s a lot harder than it looks. No matter, I can over engineer a solution using machine learning. If your into ML and shooting hoops then there’s also this article that combined TensorFlow and basketball in a simulation.

At the risk of alienating a lot of readers… I grew up with GUI’s, so I never needed to learn the ways of the terminal! This is socially acceptable in todays society of friendly user interfaces, except maybe if you’re in software engineering… whoops!

Manager — “Oh this is easy, just use this command line app”, Me — ”Yes…the command line… I’ll use that…”

Getting back my software engineering street cred’

I’ve gotten pretty far just through copy and pasting full command-line operations from Stack-Overflow but have never become comfortable enough to use a command line app “properly”. …

Manually labelling data is nobodies favourite machine learning chore. You needn’t worry though about asking others to help out provided you can give them a pleasant tool for the task. Let me present to you: generated Google Forms using Google App Script!

Google App Scripts allow you to build automation between Google Apps

The regular way people might label data is just by typing in the labels into a spreadsheet. I would normally do this as well, however in a recent task I needed to label paragraphs of text. Have you ever tried to read paragraphs of text in a spreadsheet?.. it’s hell! …

Here’s a dataset that is designed to help showcase when a Recurrent Convolutional Neural Network (RCNN) will outperform its’ non-recurrent counterpart, the Convolutional Neural Network (CNN).

A little primer

Recurrent models are models that are specially designed to use a sequence of data in making their predictions (e.g a stock market predictor that uses a sequence of data points from the past 3 days).

Convolutional models are models that are specially designed to work well with image data.

So a Recurrent Convolutional model is a model that is specially designed to make predictions using a sequence of images (more commonly also know as…

Zack Akil

(www.zackakil.com) Machine Learning Maker @ Google

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