Image for post
Image for post

Eating my Own Agile/DevOps Dog Food — S1E1

Vivek Ganesan
Apr 12 · 3 min read

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

FaceQuest

Facial recognition as a Service

Sign up for FaceQuest Weekly

By FaceQuest

FaceQuest Weekly writes about the latest innovations in face recognition technologies and using face recognition as a service. Take a look

By signing up, you will create a Medium account if you don’t already have one. Review our Privacy Policy for more information about our privacy practices.

Check your inbox
Medium sent you an email at to complete your subscription.

Vivek Ganesan

Written by

Author of book — ‘Blameless Continuous Integration’

FaceQuest

FaceQuest

Facial recognition as a Service

Vivek Ganesan

Written by

Author of book — ‘Blameless Continuous Integration’

FaceQuest

FaceQuest

Facial recognition as a Service

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

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