FaceQuest
Published in

FaceQuest

Eating my Own Agile/DevOps Dog Food — S1E1

My profession as an Agility/DevOps consultant revolves around influencing other people to change. However, there has been a change in circumstances lately. In my organization, where I have to develop a profitable product, FaceQuest, I suddenly found that the tables had turned. This blog (series, hopefully) is a list of my significant learnings as I eat my own dog food.

In this first post, I narrate the story of how we, at FaceQuest, almost thought we were pursuing a lost cause and how we recovered.

Problem Statement

FaceQuest being a face recognition service, we needed to store the reference faces somewhere. We created a research spike (dog food! munch, munch) to decide where to store our reference faces.

Proposed Solution

We found the service Cloudinary suitable for our needs due to the following reasons:

  1. We were able to build a Proof-of-concept using that. It served our needs.
  2. Cloudinary did not just serve our core need of storing images but also had impressive features that we may need for our future roadmap.
  3. Many forums also suggested Cloudinary for storing images as the cost was also affordable.

Hence, the result of our research spike was ‘Use Cloudinary’. We sealed the decision and built the product.

Another Problem Statement

A few weeks later, someone asked us ‘How much would FaceQuest cost?’ and we were like, we are yet to work on the pricing part. The time came when too many people started asking this question (the answer to which is still a work in progress). So, we created another research spike on our Trello board (woof! woof!) to understand where our money went in terms of costs.

The Bad News

The list of projected expenses was devastating! We decided to call it quits, almost!

The reasons were:

  1. The expenses looked decent only until we had ‘hobbyist’ users, who would not bring us revenue.
  2. After we pass the phase of ‘hobbyist’ users and reach ‘serious’ users, we were going to incur a spike in costs, that will require us to charge our customers obscenely.
  3. This obscene charge on customers will be more than the value our product provides them.
  4. The price of a business user plan needs to be approximately 500% more than a hobbyist plan for us to even break even.
  5. All of this was ridiculous and did not make any business sense.

Luckily, we didn’t quit!

The Pivot Point

We started analyzing the major components of the expenses and found that the bandwidth costs to Cloudinary were the ones that made this impossible.

Strangely, Cloudinary was not costly, instead, it was the most affordable choice for many use-cases that we have encountered in our professional journey. It was just that our use case was too peculiar. We required too many image downloads that simply went against how the majority of Cloudinary users were using it (this is just our theory!).

Hence, we decided to start another research spike to understand alternatives to Cloudinary to reduce costs. This single research spike changed major things in our tech stack.

  1. Amazon S3 seemed to be a good viable alternative to Cloudinary just for storing images, but the costs were controlled only when the download processes run in AWS too. The data transfer costs were nil.
  2. Because of this fact, we moved our face recognition worker processes from Heroku to AWS.
  3. Since our code was based on good design principles (I believe), we could make the above changes (1) and (2) in a matter of hours and test it.

Due to all these changes, our expenses towards image storage were 100 times less.

Learnings

  1. Economics trumps everything.
  2. Systems thinking, that is, thinking of the system as a whole, is better than thinking about separate components. If not for thinking about image storage costs, we would not have moved to AWS. Though technologically, it does not matter whether the code runs on Heroku or AWS.
  3. Well designed code helps in pivoting faster.

If you would like to take a test drive of FaceQuest, the product that we are building, you can sign up for our Beta program.

If you found this article interesting, why not permit me to send you articles by email? I share stories about my experiments in Agile and DevOps areas.

Picture Credit: Photo by freestocks.org from Pexels

--

--

--

Facial recognition as a Service

Recommended from Medium

How to Deploy AI models ? Part 5- Deploying Web-application on Streamlit via Github

Kotlin+Dagger best practices

Agent Sudo -TryHackMe

Measuring and Optimizing Web Performance at Property Finder

Consuming services for web using ZeroMQ

Top Reasons For Outsourcing Software Development To Serbia In 2021

Covalent Telegram Bot. This time, java based

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Vivek Ganesan

Vivek Ganesan

Building notesally.com | Published Author

More from Medium

Jira Tutorial: WSJF Score Formula Calculation with Examples

How to Distinguish Between a Product Designer vs. Product Manager

A comprehensive list of benefits of using online project management

Woman sitting alone at an office computer desk.

Discovering the Key to Build Good Product Team — Alpha Team