A spinning ring of DotStar LEDs creates a programmable globe.

I’ve been working on this project for the last few months, and finally got to the point where I can finally declare it done. Mercator is a spherical persistence-of-vision display based on a ring of DotStar programmable LEDs and the Adafruit HUZZAH32 ESP32 dev board. As the LEDs spin around, the pattern changes to display pretty much anything:

The whole project is open source and the source code and design files can be found here. In this post I’ll walk through the design and explain it in some detail.

Do a Google search for “persistence of vision globe” and you’ll…


How I built a robotic Etch-a-Sketch that can be controlled from anywhere.

For the last year, I’ve been working on a side project at home which I call Escher. It’s a robotic Etch-a-Sketch that can be controlled over the Internet from anywhere in the world. It’s made possible by the Adafruit Feather HUZZAH32 development board, and Google Firebase to provide the control between the Etch-a-Sketch and a web client. Here it is in all its glory:

It also sports an easy web interface that lets you upload images to draw, or even draw with your finger directly on the virtual…


Joining a startup after years in Big Tech has been a breath of fresh air.

A little more than three months ago, I left a long-time position at Google (as head of the Chrome Mobile teams in Seattle and Kirkland) to join Xnor.ai, an early-stage startup developing AI for embedded devices. In an earlier post, I wrote about my reasons for jumping ship for a startup: the TL;DR was that I was ready for a big career change, and I was very excited about the technology and the team at Xnor.

A day in the life at Xnor. Pretty much the whole company fits in one room.

I have made an amazing discovery: working at a startup is not at all like working at a Big Tech company. …


Building a camera-based person counter using Xnor’s AI2GO platform

My new employer, Xnor.ai, develops deep learning AI models that run efficiently on low-power CPUs and microcontrollers, including the Cortex ARM processor on the Raspberry Pi. No GPU or TPU needed!

A Raspberry Pi 3B+ with a camera and Unicorn Hat HD display makes for a standalone person detector using Xnor’s embedded AI2GO library.

In this post, I’m going to walk though how to use Xnor’s AI2GO platform to build a Raspberry Pi-based person counter: an app that periodically counts people in images from the Pi camera, and displays counts and statistics on a beautiful LED matrix display. …


A few strategies from a long-time Google engineer and manager.

I watched a lot of Super Friends on Saturday mornings as a kid. Whether this has influenced my management philosophy is up to you to decide.

Over my eight-plus years at Google, leading a fairly large and successful team, I’ve developed a set of principles that are core to my own approach to management. Since I’m about to leave Google for a startup, I thought now would be a good time to capture and share these ideas more broadly. The following notes are a slightly modified version of a doc that I shared within Google a while back.

(For context, I was the founding member and engineering director for the Chrome Mobile teams in Seattle and…


A long-time Googler jumps out of the frying pan and into the fire.

After more than eight and a half years as an engineer and manager at Google, I’ve decided to tackle a new challenge by joining XNOR.ai, an early-stage startup developing AI for embedded devices. I’m equal parts excited and scared — it feels a bit like I’m playing the Bird Box Challenge with my career.

Although taking a new job usually does not involve protecting your children from unseen sky demons while rowing a boat blindfolded. I hope.

Ironically, it was also after about eight years at Harvard that I left my faculty position there to join Google. So the timing seems right to make another big career change.

A quick…


In which we support multiple firmware versions.

If you’re like me, you are incredibly lazy. This means not wanting to run around plugging cables into your Internet-connected Arduino devices when they should be able to pull new firmware over the air. For the cloud-controlled LED light display on my house, I have six Arduino boards on my front porch, and I’ll be damned if I’m going to go outside in the rain and plug my laptop into each of them whenever I want to push a firmware update.

This could be you … pushing new firmware to your Arduino devices.

This is Part 2 of a series of articles on how to…


We don’t need no stinking cables!

I mean, one cable is usually enough, but you get the idea.

In my last post, I talked about how you can use Google Firebase to control an Internet-connect Arduino project without running any servers at all — all of the data is hosted by Firebase. In this article, I’ll talk about how you can use Firebase to enable over-the-air updating of your Arduino firmware, allowing your devices to magically download new firmware and reflash themselves without plugging them into a laptop. This is a great party trick and is sure to impress all your friends. (Well, if your friends are anything like mine.)

Here’s the…


I have seen the light, and it is Firebase.

Here at Team Sidney Enterprises, we wanted to develop a programmable light display for our house for the holidays — consisting of Arduino-controlled RGB LED strips that can be programmed to display arbitrary patterns (rainbows, sparkles, seizure-inducing strobes, you name it). Check out the final result:

Oooh! Sparkly!

I wanted to make it possible to control the light display not just from my phone, but ideally any web-capable device anywhere in the world. And I wanted to avoid writing a custom native app to control it — a web browser should be all…

Matt Welsh

Distinguished Engineer at OctoML.ai, building compilers for fast AI. Ex-Apple, ex-Xnor.ai, ex-Google engineering director. Systems hacker and drinker of beer.

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