2020 - present
Photobot are a supplier of social photo booths for bars, clubs, and events around the UK. The booths are triggered either by a contactless card tap or button press and alongside a print out they supply an animated image which is designed to be shared on social media.
I have been working as their development lead since 2020, responsible for the backend systems using Firebase, the frontend Electron apps, and remote maintenance of the Raspberry Pis running across the fleet of over 200 booths.
After working with them in 2020 on Pose.Party I took over from another local freelance developer in maintaining their exiting photo booth software which was a Python app running on Mac Minis and a Django web server.
It was already clear at this point that as their business was growing they needed to rebuild the existing software to allow for more scalability and reliability across their fleet of booths.
When the decision to do a complete rebuild was made, I needed to choose the technologies that the system would be built on. The photo booths didn't need a lot of compute power, but needed to be reliable, easy to acquire, and provide a long-term stable platform for the future. The decision was made to swap the Mac Minis for Raspberry Pi Compute Module 5's running Raspberry Pi OS.
To allow for easy development, and the ability to move back to more powerful Mac Minis in the future for certain use-cases, the booth software was built using Electron. This allowed us to share code with the Firebase backend as they both use TypeScript, while also allowing us to integrate with all of the hardware required to make the photo booths work.
The backend of the system was built using Google Cloud Firebase. This is a platform which allows for easy offline support and realtime updates across the photo booth client software and the admin interface which Photobot support staff use to monitor the booths.
A large part of the photo booth software is connecting to and integrating with the hardware connected to it. This includes:
Monitoring the status of the fleet over 200 booths is extremely important. I created a system where the booth is able to report the status of every hardware component it requires in realtime. This means that if a print fault occurs, or a camera disconnects, then the staff at the bar or event, or the Photobot term are aware as soon as possible to resolve the issue.
On top of this, I also created a system to spot which booths are having periodic problems. This is done by monitoring the uptime of the booth over a rolling 14 days period to spot the booths which are not at thr 100% uptime which is expected.
Photo booths which are installed in venues usual operate on a revenue share model. Photobot collects the money from users and then every quarter distributes a share of the revenue to the venue.
Previously, this calculation was done manually once a quarter by Photobot staff by exporting data from the card payment processor and manipulating the data in a spreadsheet. This was complicated by the fact that every venue had a different revenue share model.
I replaced this with a system where payments from the card processor are sent to the Firebase backend and the revenue share report is generated in realtime. This allows for a lot less time to be spent on repetitive admin work and ensures that the revenue share is calculated accurately and promptly. It also allows an opportunity for spotting venues which are busier or quieter than usual so that can be investigated.
Whether you are taking your first steps as a company or looking to improve your existing project, I can help. I specialise in helping companies with their entire development strategy and implementation.
If you’re ready to improve your tech, get in touch.