So we built a cabinet that keeps track of our test devices
So we build a physical closet

Welcome to "Build your own tools", a series on the software we build for ourselves. Every so often we hit an internal problem that the market solves badly, costly, or not quite the way we work. Building our own used to be too expensive to justify. AI changed that. When used right.
There are somewhere between two and three hundred test devices in our Ghent studio. Until recently, nobody could tell you exactly where they all were.
That is not a small problem. If you build mobile products, your device fleet is part of your toolset, the same way your CI pipeline is. And ours had quietly grown into something that needed managing.
Why we still buy real phones
You can test a lot in an emulator. We do. But a physical device still behaves differently from a simulator, and a tap fired off with a command is not the same thing as your thumb on glass.
That is also why we keep a fleet instead of a shortlist. Different OS versions, different screen sizes, different manufacturers doing different things with the same Android release. Every so often a bug shows up on one phone brand and nowhere else, and the only way to see it is to hold that phone.
So the devices keep coming in, and dozens of engineers keep passing them around.
What came before: mostly good intentions
The first version of device management was a wall of USB ports and an open cupboard. Take what you need. Then came lockable cabinets, and a page on Confluence listing what we owned. Then a web app, coining the name In The Closet, where you checked a device in and out yourself.
All of it worked, right up to the point where it depended on people remembering. Grabbing a phone off a shelf takes two seconds. Walking to a website and logging it takes longer than that. So it got skipped, mostly by accident.
Then the offices emptied out in 2020, the devices went home, and a few of them never really came back. Some have been sitting at someone's desk for four or five years now, maybe still in use, maybe in a drawer somewhere.
Meanwhile the admin of it all landed on our quality practice. That is exactly the kind of time we do not want a quality practice to spend. We want them building expertise, not maintaining an inventory. Handing the job to IT would only move the problem to a team that is equally busy.
We looked at buying one
There are commercial systems for this. The good ones run into tens of thousands of euro. That is a lot of money to spend on holding equipment you have already paid for, especially when the devices themselves are the investment you actually want to make.
So we channeled our modern-day MacGyver and started a little DIY-project.
Hello, physical world
The first thing we checked was whether a Raspberry Pi can tell which device is plugged into its USB port. It can.
Scaling was the next hurdle. A Pi has four ports and we needed far more than four, and every port also has to charge, so we needed a powered adapter that still works as a USB hub. Those exist.
At that point there was a Raspberry Pi sitting in the cabinet anyway, so we added an RFID reader and a couple of electromagnetic locks, and authenticated the whole thing with the badge everyone already carries.
Each answer bought the next question, and every step came with a budget check. This is the same way we approach software: build the smallest thing that proves the next assumption, and stop if the numbers stop working. The only difference is that this MVP involved drilling, 3D printing and a fair amount of tinkering.
Our system engineer Ferre had now built a physical product.


How it works now
You walk up to the cabinet and hold your badge to the reader. Both doors unlock for ten seconds. You open a door, unplug the device you want, and it is checked out in your name. When you bring it back, you plug it into a free socket and it checks itself back in.
That’s it. There is no form to fill in and nobody to ask, because the cabinet works out what left and what returned by watching its own USB ports.
If you want to know what is free before you walk over, there is a screen above the cabinet and a web app. Device names, photos and asset tags come straight from our inventory system, so we only maintain that data in one place.
The two cabinets have around sixty slots. Deliberately not the entire fleet: the devices that rotate constantly go in the cabinet, the ones that live permanently with a quality engineer do not. That won't close the gap completely, but it shrinks it a lot.
What it cost
Under a hundred euro of parts per cabinet. The badge reader was the most expensive single item, followed by the powered USB hubs. The Raspberry Pis were already on a shelf. The cabinets themselves were the ones we already had, with the manual locks taken out and electromagnets put in their place.
OK, just a little bit of AI
This was meant to be an AI-free story. But Ferre is not a software engineer, and the web app behind the cabinet got built in parallel with Claude Code while he was busy with locks and badge readers. So yes, AI coding did some of the lifting. But the hard part was still the hardware.
What's next
We are still filling the cabinets and finishing the last round of testing. After that, a smaller version of the same idea for our other offices, where devices rotate less but still go missing.
And the fleet itself is changing. We used to inherit devices, like old handsets from colleagues upgrading. (That is how we ended up with a pile of iPhone 6s, back in the day.) Now we buy on purpose, which means fewer devices and better ones.
We are not going to start selling cabinets. But if you ever want to build a physical product: as the 44th US president once put it, yes you can.
Stay ahead
of the game.
Sign up for our monthly newsletter and stay updated on trends, events and inspiring cases.







