INFO

You can go try out Cleverstack for yourself here.


Story

When I worked at Motel, we had an internal product called Cleverstack. It was something that had started as someone's passion project and had expanded to become a fairly interesting and complex product. A few months into my work on Cleverstack, Firebase got acquired and transferred to be part of Google's product line.

During our migration to the new version of Firebase, we ran into an issue where I could suddenly no longer see any of the data within our database. This was a concern, and it was a concern that took weeks to get any sort of answer on. When we finally did get an answer back, it was because I was signed into multiple Google accounts and they "didn't support that." As a student at the time, this was unacceptable, I had to stay signed in to my school email and also be able to do my work.

So, we decided we had to transfer. For those who are unfamiliar, Firebase is a backend-as-a-service product. This means that everything from database storage to authentication is handled for you. This is awesome when it works, but is very limited when it doesn't. So I, as a junior software developer, was tasked with building an API. Luckily, what I described is all we really needed, database storage and authentication.

Over the course of a few weeks, I had rewritten the API to handle OAuth authentication through Google and Facebook, and also token based authentication for persistence once you were logged in. It also made use of a real-time database (Redis) and socket communication to populate "stacks" at runtime. Much of this is still in production and to this day provides the backbone for Cleverstack.


This was definitely a trial-by-fire kind of process. I was thrown into this with little to no idea how systems like this were architected and built. I did, however, have time on my side, and after lots of research and work, I built a foundation for Cleverstack that I believe is solid in its construction. Through this, I learned a ton about everything from security to file handling to database storage with real time components, and it was a spectacular learning experience.

outcome