Monday, April 9, 2018

Hockey Stick Growth

Hockey Stick Growth happens when a startup has slow growth for a period, followed by an inflection that leads to explosive growth.

A popular example of a hockey stick company is Groupon.  The company's founder Andrew Mason originally started the company as a pivoted version of his previous company, a social web platform that only gained modest traction.

Groupon was founded in 2008, and during 2009, its subscribers tripled every quarter, and doubled every quarter in 2010.  After 16 months of business, the company was valued at $1 billion, and had over $170 million in funding.  During those 16 months, the company scaled its employees from a few dozen to over 350.

Companies with these growth spikes are called Unicorns, and include companies such as Groupon, Google, and Uber. While most startups don't have the explosive growth of Unicorns, successful companies are prepared for scaling their companies.

Scaling a company starts at a local level.  The percent of the startup's target market that uses the company's app or website is called Market Penetration.  By tracking the number of users, amount spend on acquiring new users, and the customers' lifetime value, you can predict how your growth will scale as you move into new territories. 

By tracking your success in your local market, you can also plan ahead for scaling.  Even online products need more employees to scale well.  When an online platform scales, the company needs more developers to make sure the platform can sustain thousands and even millions of users.  An influx of users means more eyes on your page, which also means a higher chance of an user finding a bug in your software.  Additional developers are needed to make sure the server stays running, bugs are swiftly fixed, the platform is secure, and the app is fully optimized with all analytics being tracked.

Your first target market penetration is also a solid indicator of your company's future.  If you capture half of your target audience in your local market, you should expect similar success in your next markets, and should prepare for quick scaling (assuming your app has a low customer churn).

On the other hand, your first market penetration can let you know when to pull the plug.  It is important to scale your company when you gain traction.  Failing to make needed hires or gain funding to expand can make you miss a big growth opportunity.
However, scaling your company too fast can also have heavy consequences.  The 'Amazon for food' company Webvan was infamous for scaling its company without market validation.  The company raised $800 million in funding, despite having very little market success. 

When your company grows, it is important to hire co-founders and employees whose skills also scale.  One lesson Facebook learned was to not pay temporary workers equity.  One of their office painters earned shares that are now worth $200 million, a deal made instead of paying the painter a few thousand in cash.

Monday, April 2, 2018

Heartbeat Recognition In Python

Biometric passwords are becoming more mainstream in society.  Iris scans, facial recognition, and fingerprints are slowly replacing passwords, as they are unique to each person and can't be forgotten.

But how does this tech work?

When you add your fingerprint to an iPhone for example, you have to press your thumb to the home button about 20 times.  These prints are recorded and called a Training Set, which trains the iPhone to recognize your thumb in different positions.  Each print in the Training set is stored as a list of Features, or predictors that show what makes your thumb different from everyone else (source).

Fingerprints have been used for identification for over 120 years, and have been verified that no two are alike.  However, are other biometrics, such as heartbeats, able to identify a person out of a group?  Surprisingly, the answer is yes.  Heartbeats are collected using Electrocardiogram (EKG) machines.  (If you have watched any hospital show, these are those beeping machines next to patients).

For a semester project in my Biology class, I decided to make an EKG recognition program myself.  I recruited ten of my classmates and read their heartbeats with an EKG recorder three times.  For each person, two recordings were put into the Training set, and the third was used for calculating the accuracy of the algorithm.  After all the samples were taken, I wrote a quick Python script to extract features from the EKG readings.  The script looked at the local maximum and minimums of each heartbeat, as well as the distances between them.  Then, I used a Bagging Classification algorithm to see if I could guess the identity of each subject out of a group, using only their heartbeat.

Surprisingly, the prediction algorithm could correctly identify 8 out of the 10 subjects on the first guess.  While not close to perfect, a random guess would only correctly identify 1 of the 10 subjects.  The program on average took 2 guesses on any subject to correctly guess the person's identity.

A main source of error in the experiment was the quality of the lab's EKG machines.  While hospital-grade EKG's have accurate recordings like the picture above, the school's EKG recordings looked more like sine waves.  In addition, more error could exist in the data collection because I am an amateur at recording heart beats.

After developing the heartbeat recognition algorithm, I confirmed that a person's heartbeat is unique enough to correctly identify them out of a group of people.