mobile app


My first entrepreneurship stint – mewannawplay – a mobile app to find free neighborhood tennis courts. We built it to alleviate the pain of finding a unoccupied public tennis court.



MeWannaPlay (MWP) for Tennis is a cool new way to connect with tennis courts near you. Don’t waste time driving around your neighborhood searching for empty tennis courts or playing fields. MWP gives you access to real time information for more than 5,000 tennis courts across the country, so you spend more time playing and less time planning.

MWP provides you with a complete listing of the amenities and activities near you so you can find tennis courts on the go. MWP also connects you with other members to help you interact with fellow athletes, post messages and find partners.

Features –
MWP offers an easy to use, advertisement free interface that makes finding tennis courts a breeze. The application features:
✓ A homepage highlighting:
Courts near your current location
Unoccupied courts
Occupied courts
Partially Occupied courts
✓ Detailed information about each court including amenities, activities and contact details for that court
✓ Clear demarcation between public and private courts
✓ The ability to mark courts as occupied while you are playing
✓ A cool messaging system to help you communicate with other members of MWP and choose partners to play with
✓ The ability to check court details based on states and cities
✓ Tools to help you search and filter courts based on states and cities

Source code

The app however now is defunct.


my data science journey so far

I find data science, big data and ai/ml extremely interesting and have had an opportunity to work on several interesting projects in those fields. This is a short summary of my journey so far. I am sure there is lot more to come 😊


Cat In The Box 😻📦

Since 2019, I have been working on this idea of leveraging Augmented Reality and Virtual Reality to make DIY moving and storage easy. The technology is almost there and I have put together a working prototype. Check it out 🤓 👇

Screenshot of


Cloud Crawling – How tomorrow’s cloud native application may operate (Part 2)

This article is continuation of Part 1. The cloud crawling solution provides a novel method of realizing a cloud-based architecture in which an enterprise can utilize clouds from different vendors across the world to locate its application, data and assets closer to the end user. In this article, I present a conceptual solution for it.

Cloud Crawling Solution

The solution comprises of four separate concerns:

  1. Cloud discovery
  2. Cloud selection
  3. Term negotiation
  4. Cloud orchestration
Cloud discovery

As the number of cloud vendors grows, it isn’t a stretch to assume the availability of a third party cloud discovery services in the future. These services will provide a directory lookup for different cloud vendors, very similar to the Domain Name Service. In this case, the service maintains an updated list of all the clouds for different regions and when queried by a region it returns a list of end points for all the clouds serving that region. The end points are addresses of cloud agents. A cloud agent represents the entry point for a cloud. It helps negotiate terms and enable deployment on the cloud.

The cloud discovery process finds all the available clouds for a given region by querying a cloud discovery service.

The following sequence diagram demonstrates the cloud discovery mechanism,

Cloud selection

The Cloud selection process selects a cloud from the list of clouds found by the cloud discovery process for a given region. The cloud that is selected will be the one on to which the application will then deploy itself.

The cloud selection process may compare the different cloud options using certain metrics such as pricing, available capacity, QoS statistics, past usage experience, SLAs, PCI compliance, number of PoPs etc.

The following sequence diagram demonstrates the cloud selection mechanism,

Term negotiation

The Term negotiation process kicks in after the cloud selection process has selected a cloud vendor. As part of the term negotiation process, the application and the cloud agent exchange their terms of use and accept or reject the contract. The contract may be binding on the cloud vendor to ensure the desired QoS for the application.

Cloud orchestration

Cloud orchestration acts as a supervisor and manages all the other cloud crawling processes – discovery, selection and term negotiation. Orchestration can be demand based or schedule based.

The cloud orchestration and all the processes which it manages make up the cloud crawling module of the application.

Example Application –

Demand based orchestration

In this approach, if the application discovers that most of the requests are coming from a particular region then the cloud orchestration module will initiate a crawl to a cloud in that region to move closer to the user base and better serve the demand.

e.g. In the figure below, the application is first brought up or seeded on a cloud in Region x. It then starts receiving request from several clients in Region y (1). As a response to the demand from Region y, the cloud orchestration module migrates the complete application to a cloud in Region y – cloud A (2). The clients in Region y are now served through cloud A in the same region thus lowering network latency (3). After some time, the traffic monitoring component registers several requests from clients in Region z (4). Again, the same steps are repeated and the application is migrated to cloud B, a cloud in Region z (5). The requests from clients in region z are now served by the deployment in cloud B (6).

Time based orchestration

In this approach the cloud orchestration initiates the crawling process as per a predefined schedule.

e.g. In the figure below, the application is first brought up in Region x and a schedule is defined as follows,

  • Time T0 – Region x
  • Time T1 – Region y
  • Time T2 – Region z

The orchestration module dutifully follows the schedule and deploys the application on Cloud A which is in Region y on time T1 and then cloud B which is in region z on time T2.


Multi-cloud deployment is already a reality and cloud crawling takes it one step further. I hope you enjoyed reading this article and would love to get your feedback.


Cloud Crawling – How tomorrow’s cloud native application may operate


With the proliferation of cloud technologies, computing resources, storage resources and even streaming resources have been almost reduced to a commodity which can be reserved, utilized and then relinquished in real-time without the need of exclusive ownership.

Currently a handful of cloud vendors such as Amazon, Microsoft and Google dominate the cloud computing landscape with their cloud offerings. However, regional clouds backed by mid-size companies are also gradually becoming significant. Regional clouds have a limited PoP and may be limited to a given region. However, they have the advantage of being flexible enough to conform to different domain specific restrictions that customers may demand [1]. Regional clouds, above everything, help make the cloud market-space more competitive.

In the future there will be far more choices of clouds for any organization to choose from. These choices will consist of a broad mix of regional and global clouds. Furthermore, there are already standards in the making which allow applications to communicate with any cloud vendor using a vendor-neutral or cloud agnostic protocol [2].


This myriad of cloud choices across the globe combined with the idea of dynamic reservation of resources [3 & 4] could let an application “follow its users” across regions and countries without any manual Dev-ops intervention. An application will be able to itself negotiate with different cloud vendors, reserve resources and migrate-in and migrate-out as needed. This is what I term as – Cloud crawling, aprocess of dynamic resource migration across different clouds on-the-fly.

Lets look at an example. Imagine a news service provider which provides daily world news and videos. The service is completely hosted on the cloud. Let say the service is initially seeded on a cloud geographically located on the west coast. As viewers from different continents and countries consume the news service, the service on the fly and without any manual intervention negotiates with different cloud vendors located close to its viewers. It deploys itself on those clouds by standing up processing instances and by ingesting assets on the clouds CDNs. It also un-deploys itself from a cloud based on the traffic or maybe based on a fixed schedule. In this manner, the service can potentially migrate across the globe and appear to be ubiquitous to all its users while serving content with minimal network latency.

The following diagram further illustrates this example of how the service which started on the US west coast over a period of time spawned across clouds and migrated across the world. At each point it discovered different regional, national and international clouds, selected the clouds based on certain criteria, negotiated service agreements and accomplished a new greenfield deployment. After the user load from any particular region decreased, it brought down its deployment and relinquished those cloud resources.

In essence, the application “crawls” across different clouds and regions. This builds upon the current technique of deploying the same application simultaneously on different clouds, known as cloud bursting. However, while cloud bursting is limited to providing redundancy, cloud crawling provides a truly dynamic deployment such that the application itself discovers and manages its own migration to different clouds.


Cloud crawling represents a truly cloud-agnostic and dynamic solution for cloud native applications of tomorrow. It helps avoid vendor lock-in and exploits the competition between cloud providers on an on-going basis.

If you found this article interesting, I invite you to Part-2 where I describe a high-level design of how Cloud Crawling can perhaps be implemented.


1.    The “Regional” Cloud: A Case Study


3.      Patent – US20110145393 – Method for dynamic reservation of cloud and on premises computing resources for software execution (

4.      Patent – US20100076856A1 -Real-time auction of cloud computing resources (


On-demand BLE Beacon: Bringing the online advertising model in-store

Online advertising uses a very mature pricing model consisting of CPC (Cost Per Click) and CPM (Cost Per thousand iMpressions). This is mainly because the digital medium makes it easy to record ad impressions and most importantly record user interest which is expressed explicitly by clicking an ad. This concept of registering user interest can also be realized in-store by using my idea of On-demand beacons.

What is an On Demand Beacon?

A Bluetooth Low Energy (BLE) beacon incessantly transmits BLE signals. An On-Demand beacon is a special type of BLE beacon that transmits a beacon only when it is pressed. It has a soft cover on the top which when pressed emits the beacon. Unlike a regular beacon which continuously emits a beacon, the On-Demand beacon only transmits, as the name suggest, on-demand. Also, unlike a regular beacon, the transmitting range of an On-demand beacon is smaller targeting only the user who is in close proximity.

Figure: On-demand beacon outside and inside
Figure: On-demand beacon size

So consider for e.g. a brick and mortar apparel store like Macys. The customer sees a shoe he likes. Next to the shoe is the On-demand beacon. The user presses the On-Demand beacon and on his smartphone the back-office system delivers more information about the shoes, aisle on which he can find matching socks etc. Most importantly, the system registers user interest in the shoes very similar to clicking an ad online. Also, pressing the On-Demand beacon is far more easier than scanning a QR code and requires very little effort or tech-saviness on the part of the user.

Figure: In-Store User Experience

Following is a sequence diagram of the interaction,

Solving the problem of attribution

In marketing, attribution is the identification of a set of user actions (“events” or “touchpoints”) that contribute in some manner to a desired outcome, and then the assignment of a value to each of these events (source:wikipedia). For a brick and mortar seller the attribution problem distills down to the question – “for each in-store purchase, which advertisements and user-interactions were influential?”

While an On-Demand beacon may not solve the problem of attribution in itself, it does provide an important data point. An On-demand beacon when delivered, helps identify the user and may prove his retained interest for a product whose ad he saw earlier online. This is more information than what a regular beacon, which continuously broadcasts blindly, provides.

Battery-less/passive On-Demand beacon

Given the quieter nature of the on-demand beacon, they may be realized using a battery less Piezoelectric circuit powered by the energy delivered by the button press.

Hybrid Beacon

Alternatively, a regular beacon may be extended to double up as a regular beacon and an On-demand beacon with separate Beacon ID for each.


In conclusion, the On-Demand beacon builds upon the regular BLE beacon and in addition to the regular beacon, brings the online user tracking model in-store and helps solve the problem of attribution.



control at you fingertips

Created a concept of a flexible sports wearable that brings smartphone control to your fingertips letting you focus on your activity without any interruptions (2016)


Using machine learning to achieve consonance in social media content

As sentient beings our consciousness is supported by all our five senses working together creating a holistic impression of our world such that the whole is greater than the sum of each. Hence it is not surprising that when we see an image its emotional impact on our mind is exaggerated if combined with music or the impact of the written word is heightened if it is overlaid on an image.

The question is whether or not we can quantify this seemingly subjective change in perception caused by mixing different mediums. There has already been a lot of research in the field of perceptual psychology, advertising and information technology to quantify this interaction between the visual and the auditory sensory modalities. It has been demonstrated that these interaction can be quantified using some of the features of the medium such as RGB values, HSI values, traverse lines for images and volume, pitch and timbre for sound (1 & 2) and by conducting simple experiments a model can be built which predicts the effect of music on the emotional impression of an image. The experiments cited in the research were conducted by first showing only images to the subjects and then showing the same images with the addition of different types of background music and measuring the change in the impression the image had before and after. However, given the limited number of subjects the model does have its limitations.

Today, a lot of the audio and visual information that we consume is fed via social media. Our daily lives are inseparably tied to different sources of data such as Facebook, Twitter, Pintrest, Spotify, Soundcloud, Pandora, Instagram, Flickr etc. that we consume for both – information and entertainment. By leveraging some of the existing research a machine learning (ML) model can be built such that given these different sources of content it can create combinations which achieve consonance – a presentation in which the audio, visual and the text elements complement each other and enhance the overall impact. Collective intelligence and a feedback loop will improve the model overtime – a limitation of the earlier research. Moreover, such a blended stream of curated content will create a unique entertainment experience adjusting to the user mood, time of the day, weather and which may be explicitly seeded to a theme such as ‘nostalgia’, ‘relaxation’, ‘party’.

Perhaps, an ML based system can be created on the research that exist out there in this field. The system would provide a service which delivers content in a way which minimizes clutter and produces an ambient symphony of photos, music and all types of social media content.

Here is my attempt on creating such a model –

No comments to show.