When I was at FreeCharge, I did significant data engineering. One of the recurring patterns that I saw was:
- A new product or feature gets launched.
- The PM wants to schedule a report for her feature.
- The report should be generated at a particular frequency.
- The PM and others from the C-team should get this report in their inbox.
We had hundreds of reports like this at FreeCharge. We explored tools like Redash, Metabase, etc. However, all these tools geared towards creating beautiful dashboards and visualizations; report generation, and delivery through email were given an inferior treatment. We hacked together a solution to solve this problem with bash/Python scripts, Git, and Jenkins. The business analyst team wrote the query. Still, they had to depend on the engineering team to schedule the report, format the data fetched by the SQL query(using HTML), and deliver the report over email. One of the goals of the solution was to make the business and product teams self-reliant in report generation. Since the solution was stitched together using different tools that were not meant to solve this problem, it worked but had its chinks; this seeded the thought for Kwery in my mind.
Kwery is a tool that solves the above niche problem. It was also an attempt at building a single person lifestyle business that could supplement my regular income. I followed lean startup principles while building Kwery—made an MVP, deployed it at an organization, and then iterated from there.
With Kwery, I had to decide whether to make it a SAAS product or an in-house deployment. I decided against the SAAS route as I was not sure how many organizations would be comfortable giving access to their data sources to an external fledgling SAAS tool. I wanted to make the onboarding process of Kwery simple. Hence, I shunned all external dependencies for Kwery and opted for an embedded database so that I could package Kwery as a single binary. The sole dependency needed to run Kwery is a Java 8 runtime.
I deployed Kwery in a couple of places that use it to date. Kwery has received a lot of love from them, but I never hit the numbers I had in mind when I started. The opportunity cost was bearing on me. I had to take a call between continuing to work on Kwery or cutting my losses and moving on; I chose the latter.
Like the old saying—every cloud has a silver lining; I have open sourced Kwery under the MIT license. It is straightforward to get started with Kwery. Give it a spin, open Github issues if you face any trouble. Pull requests are very much welcome.