Missing a Development Tool? Make Your Own!
Do you ever wish you had a certain tool, but you don’t have the budget for it, or it doesn’t even exist? I’m here to tell you: you can build it!
And as I discovered, the build can give you more than that tool you want—it can also be a great way to strengthen your skills, add value for your teammates, and even have a bit of fun.
My team works in two development environments. I noticed that often when we tested new code and it wasn’t working, we’d have a fire drill, running around to find the source of the problem… only to discover that the database had been down the whole time.
Ongoing visibility into the database status would save us a lot of time and energy, but we lacked the access to implement a proper monitoring solution. One of the best things about working at Metal Toad is having dedicated time for R&D—so I decided to use my R&D days to build a status board for our team.
My aim was to create a text-based dashboard for monitoring our development databases. Because the Internet of Things (IoT) is a key part of Metal Toad’s strategy, I decided to run the status board on a Raspberry Pi. IoT often demands very tight hardware constraints, so this was a great opportunity to sharpen my skills in building for cheap, low-power hardware. And besides, it was more interesting this way—doing this on a laptop wouldn’t have been much of a challenge!
Since we installed the status board, the fire-drill mentality has been replaced with a much calmer environment—we have constant visibility into the status of the database and can notify the right team to bring them back. Our project manager can pull info on all outages through an express web server for analysis.
And as a bonus, the transit tracker has meant fewer missed busses!
I’d love to build on the project to add more features and functions for other teams, such as:
an alert function to ping team members when something goes down
Slack integration for alerts
other status boards to monitor things like status of builds and pull requests
I’d also be excited to see what other people can do with this code. What I love about open source is how we can all share our work and build on it, which is why I put the code on Github for other developers to play with. Realizing that it’s within my power to make the tools I need to help my team has been fun and freeing—and I’d love to see what other people can build with this!