Hiring Growth Engineers Is Not Impossible

I read a post recently about how it is impossible to hire growth engineers. I’ve been lucky enough to have the opportunity to work on the growth engineering teams at two successful companies over the past few years. In that time I’ve learned that just like with any engineering role, hiring growth engineers is hard, but it is not impossible. Here’s how:

1. Cultivate Growth Engineers

Whenever any engineer joins a new organization, there is a learning curve and they need to learn & adjust to numerous things. They need to learn the company’s culture, their technology stack, their coding practices, etc. Growth engineering is a relatively new discipline, so the best strategy is to look for engineers that have the qualities that makeup a good growth engineer and help cultivate them into being a successful growth engineer. Teach them the importance of quickly shipping features and learning fast, teach them what MVP means, teach them to analyze the results of A/B experiments.

2. Look for Full Stack Engineers

Growth teams by nature touch the entire technology stack of a product: backend infrastructure, web frontend, Android, and iPhone. However, growth teams are also often extremely resource constrained and have a keen sense of urgency. Experienced engineers that can develop on multiple parts of the stack and quickly learn the parts they don’t know when necessary are critical to a growth team’s success. They give the growth team a huge amount of flexibility to move engineers around when projects/priorities change and also help keep the growth team from getting blocked.

 3. Product Sense 

Engineers believe it or not can have a keen product sense. This is evidenced by the numerous Product Managers that I’ve met over the years that had a CS background. Finding engineers who have a passion for being involved in product is important because they will be the engineers that are engaged by the mission and challenges of growth. They will also be the engineers passionate enough to really think about the user’s experience and mindset as they build product features to create a polished experience on their first try.

 4. Find Creative Problem Solvers

Often times in growth you have to find creative solutions around certain technical limitations. In my mind this is really where the term “growth hacker” comes into play. Whether it is finding a way to track invites on iOS (which has no attribution tracking for their app store) or figuring out how to generate recommendations for people to send invites to from a user’s contact list, creativity plays a large role in the success or failure of growth features. There is no substitute for creative problem solving, you either have it or you don’t.

Hiring growth engineers can be hard, but it is not impossible. Many of the best growth engineers I know came from standard engineering backgrounds, but they had the right mix of skills and were able to grow into the role.  If think you have these skills and are interested in learning how grow a company to millions of users, Pinterest is hiring growth engineers.

The Growth Hacker’s Guide to Push Notifications

Push notifications (aka PNSes) can be a powerful re-engagement tool for mobile apps to communicate to their users. In this post, I’ll cover everything a growth hacker needs to know about push notifications on iOS and Android.


One of the biggest differences between the two platforms is the permissions model for push notifications. On iOS, push notifications are opt-in. Users see the all too familiar dialog “AppName would you like to send you push notifications.” On Android however, push notifications are opt-out, users have to explicitly go into their settings and turn them off. This difference in permission model ends up having big implications for the effectiveness of PNSes on the different platforms. On Android generally 95%+ of users receive PNSes, while on iOS it us usually less than 50%.


Badging is the term used for the little red circle displayed on app icons in iOS. Badging has traditionally been one of the most powerful ways to use push notifications to re-engage users. One reason for its effectiveness is that many users can’t stand having unread notifications and will open the app to clear the badge number, giving the app a chance to re-engage the user. However, the primary reason badging was so effective is that prior to iOS7, apps that asked for the push notification permission would get a push token even if the user denied the push notification permission. The app could then use this push token to display a badge number and try to re-engage the 50%+ of iOS users that do not receive push notifications. Unfortunately, starting in iOS7 this is no longer the case. The good news however, is you can still continue to badge every user that first downloaded the app on iOS6. Another thing worth noting is that badging is no longer exclusive to iOS. Several Android manufacturers have started to add proprietary APIs to support badging on Android.

badge icon

Local Notifications

Local notifications are a way of getting around the permissions issue on iOS. Local notifications look and act like PNSes, but as the name implies, are scheduled by the app to appear at a certain time and date, rather than being pushed to the app at any time by the server. The major advantage of local notifications is that they are not tied to the push notification permission on iOS. This means even if the user does not give the app permission to show push notifications, the app can still show local notifications.
Edit (June 2, 2014): Starting in iOS8 local notifications are no longer a work-around for notification permissions

Geofenced Notifications

Geofenced notifications are when an app monitors the user’s location and shows the user a notification when they are near a place where the app would be useful. A classic example is shopping apps like Shopkick, or RetailMeNot show notifications when users are at the mall.  It can be tricky to get geofencing right; I’ve written before about some of the common pitfalls of geofencing. However, geofencing is still a very powerful tool, especially for location-based apps. Notifying the user when they are at a place where the app has content not only reminds the user to use the app in a situation where the app can add value, but also allows the app to deliver hyper relevant notifications.

Picture PNSes

Standard push notifications can be difficult to work with since all you have to grab the user’s attention is about 100 characters of text. One thing unique to Android is the ability to include an image that is displayed alongside the push notification. Android Picture Notifications make PNSes richer and more importantly, more engaging.

Emoji characters

While iOS doesn’t support picture notifications, it does have some support to spice up the text in push notifications. On iOS it is possible to include emoji characters in the message to try and make the message stand out and grab the user’s attention.

emoji in push notification

If you think there is something about push notifications that I missed, feel free to contact me at [email protected]

Why You Should Be Using ROI To Run Your Growth Team

The very first growth team I was on was run very democratically. Every month we would brainstorm new projects, everyone would vote on the ones they found most promising, and then we would execute on everyone’s top picks. After a few months, the team had delivered several projects that had beaten control, but we still weren’t seeing any visible impact on our bottom line metrics. To find out why, we took another pass through our experiment data and we realized that several of the experiments we had run never had a chance at impacting bottom line numbers. The reason was several of the features we developed were so far down the funnel, they would never reach enough users to move our numbers.

An example of such a project was our Facebook app. The company was a mobile only company, so when people came across us on the web we had to get them to make the jump to mobile and download our app. In order to better convert traffic from Facebook Timeline posts, we built an interactive Facebook app that would give users an idea of what the mobile app was about rather than sending them to a static landing page that instructed them to download the app. The Facebook app performed well, it increased our conversion rate from click to signup from 3% to 6.5%. The problem was, we only received 300 clicks/day from Facebook Timeline posts. This project earned us a whopping 11 incremental users/day. Even if we were able to 20x our Facebook traffic, the project would not have had a meaningful impact.

We realized the problem was with how we were selecting projects. Often the projects people found more exciting, such as building new features, would win over more boring projects such as optimizing the copy on invite messages.  We resolved to fix the issue by evaluating all growth projects in terms of the ROI on our bottom line metric of retained MAUs (a user that is still a MAU more than 30 days after signup).

To illustrate how we used ROI, lets go through an example. Say you think you can increase SEO traffic by 20%. Currently you get 10MM hits from SEO a month, so a 20% increase will net an additional 2MM hits/month. Normally 5% of your SEO traffic signs up for your site, so you can expect to net an additional 100K signups. Typically 50% of signups from SEO convert to a retained MAU, so you can calculate that this project will likely net you an additional 50K retained-MAUs/month. Now lets say this project will require an investment of 20 man-hours to complete. Calculating the return/investment gives us 2,500 retained-MAUs/man-hour.

Picking projects through the lens of ROI helped the team become much more effective with our time and resources by not wasting efforts on projects that sounded good in theory, but in reality would have no impact. I now strongly advise any growth team I talk to, to use ROI if they aren’t already, and to first understand the impact their various project ideas will have, instead of executing on them blindly.

Hacking Mobile Invites Using Census Data

Getting existing users to invite their friends is a basic, but effective growth strategy. Many of the social networks such as Facebook/LinkedIn drive tremendous growth by pushing new users to invite their friends by importing their email address book. Mobile apps have tried to take the same approach, but the problem is, most don’t do a very good job of maximizing the number of invites. In this post I’ll show a little hack on how you can use demographic data compiled by the US Government to maximize the number of invites.

Suggest Friends to Invite

One of the key mistakes many mobile invite flows make, is they just show an alphabetical list of all your contacts. The problem with this UI is it can take several seconds per friend to search for their contact and add them to the list of people being invited. The alphabetical UI makes inviting more than a couple friends a chore.

The secret to improving this is simply figuring out everyone the user would want to invite and then just putting those people at the top of the list. By showing a list of suggested friends you get two benefits over an alphabetical list (assuming of course that you can deliver quality suggestions)

  1. Adding friends from the suggested section is extremely fast
  2. You can remind the user to invite people that they may have otherwise forgotten

Friend Recommendations


Pulling suggestions from thin air.

There are two components that go into suggestions. One is figuring out whom the user would be willing to invite and the other is to figure out who would be interested in your app. The second part can be especially challenging if all you have to go on is just the contact’s name and phone number. So how do you figure out if someone is interested in your app just based on their name? Well, it helps if you have a broad target demographic (ex: females between the ages of 20 to 45). This is because you can often infer not only someone’s gender, but also their approximate age from just from their name. As fans of Freakonomics already know, popularity of certain names tend to rise and fall over the years.

So, how do you actually go about figuring out someone’s age from their name? Well the Social Security Administration publicizes on their website the top 1000 baby names for each year from the past century. By crunching this data you can figure out for each name, the probability that someone with that name falls in your target demographic and use that information to help generate suggestions.

Popularity of female names by year


Solving the Web-to-Mobile Conversion Problem: Show, Don’t Tell

One of the most difficult user acquisition problems in mobile is finding ways to take advantage of traditional user acquisition channels. Web services have long used Facebook, email, SEO, AdWords, etc., to drive growth, but the problem for mobile apps is that most people still spend a lot of time browsing the web on their laptop or desktop. Getting a potential user to make the jump web to mobile is a significant hurdle; they have to pull out their phone, find the app in the app store, wait 60 seconds to download it, and then finally remember to open the app. The secret to maximizing conversion from web acquisition channels is to never send someone directly to an app’s app store page. App store pages is that they have a terrible conversion rate because communicating the value of an app is very difficult to do within the constraints of Apple or Google’s app store. The key to web-to-mobile conversion is to show, don’t tell. Communicate the value of the app before ever sending someone to the app store.

 Stitcher’s App Store Page

One app that does this web-to-mobile conversion well is Stitcher Radio. Stitcher provides an on-demand radio service and the company is primarily focused on mobile. Their primary growth channel so far has been Facebook invites and Facebook Timeline posts. To solve the web-to-mobile conversion problem they built out a Facebook canvas app that contains most of the basic functionality of the Stitcher mobile app. When a web user hits the canvas app, they can start listening to podcasts and start to get a feel of what Stitcher provides. As the user continues to engage with the canvas app, Stitcher actively tries to convert them to the mobile app with several strategically placed download prompts. What is effective about this approach is that giving the user an interactive experience that really shows them what the app is all about is much more convincing than the static description in the app store. By providing a lightweight interactive website that sucks them in and communicates the value of the app to the user, Stitcher is able to greatly improve their web-to-mobile conversion.

 Stitcher’s Facebook Canvas App

There is still one improvement however that Stitcher could make to improve their download conversion. Stitcher shows several download prompts, but when someone clicks on one, the person is still just sent to the app store website. What Stitcher really wants is to send the person to the app store on their mobile device. Flipboard has found a nice solution to this problem by giving the user the option to enter an email or phone number and then emailing/SMSing the app store link on their phone. Once a user wants your app, the easier the download process, the better the conversion.

Flipboard Download Prompt

Autopsy of a Failed Growth Hack

This is a cautionary tale on what can happen when growth hackers focus too much on user acquisition. At the start of this year professional networking company BranchOut had 1 million monthly active users (MAU). In just 5 short months they had skyrocketed to over 14 million MAU. It looked like they had hit their inflection point; investors started jockeying for their piece of what looked to be the breakout hit of 2012 [1].  Then just a couple months later, things turned sour when monthly active numbers cratered to just 2 million MAU.

BranchOut’s Monthly Active Users in 2012

What happened? During the first 5 months BranchOut acquired new users in droves. They did this by first incentivizing users to invite as many friends as possible and then showing invite prompts that preselected all the user’s friends. The only two options were to invite everyone or invite no one at all. This mechanism was so effective that within a few months the BranchOut invites had reached hundreds of millions of Facebook users.  However, as BranchOut began to saturate Facebook with invites, the effectiveness of invites dropped precipitously. Invites were no longer reaching people who had never heard about BranchOut, but instead were reaching people who had already received several invites already and did not find them interesting.

Even after exhausting the invite channel, BranchOut would have been in good shape if the users they acquired during that 5-month period stuck around and used the app on a regular basis. Unfortunately for BranchOut, many of the user’s they gained during that period checked out the app once, didn’t see anything that interested them, and they never came back. BranchOut had been very successful at driving new users, but they had a difficult time holding on to them. All the effort on new user acquisition was wasted since they had been pouring water into a leaky bucket.

This story is not unique. SocialCam is now sitting at 4MM MAU, down from a high of 83MM MAU earlier this year. Viddy is at less than a million MAUs, down from 20MM MAUs earlier this year. What all these companies have in common is they spammed Facebook through various mechanisms to acquire hordes of users, but were not able to get them hooked once they were in the service. This myopic focus on simply driving as many new users as possible to the app leads to a flash in a pan style growth rather than sustainable long term growth. User acquisition is only one aspect of driving growth.


What can be learned from this?

  1. Before you start worrying about growth hacking, validate you’re providing a product people want (i.e. find product/market fit)
  2. If you have a problem with retention, focus on figuring out how to either better communicate your app’s value proposition to new users or find ways to add more value
  3. For each user acquisition channel, constantly analyze the retention and engagement metrics for users acquired through that channel. Make sure you’re driving sustainable long term growth and not just flash in a pan growth tactics.
  4. Many big wins in growth hacking come from driving day 1 retention rather than driving new user acquisition.

BranchOut’s Invite Flow

P.S. andrewchen has a more technical writeup of what happens when you drive growth, but have low retention here. Also, Nir Eyal has an interesting article on his theory of how to use DAU & MAU to determine if you are providing users enough value here.

Case Study: Dropbox Invites

One of the most powerful user acquisition channels for a service is its existing user base. People tend to listen to recommendations from friends which is why word of mouth is so powerful. Sometimes though, users need a little nudge to start telling their friends about how great a service is. That is where incentivized invites come in.

Dropbox’s invite prompt

There are a lot of services out there that use incentivized invites, but Dropbox has one of the best implementations I’ve seen. Whenever you login to Dropbox’s web interface, there is a constant reminder to invite more friends. Sitting in the top toolbar you can’t help but notice the little giftbox icon with the enticing label “Get free space!” rather than the more boring”Invite friends”. After clicking the giftbox Dropbox informs you that can get 500MB of space for each friend you invite. 500MB is a pretty sizeable amount, especially when you consider it is 10% of what you start off with in the free version of Dropbox. There are two important traits that an incentive should have and Dropbox nailed both of them. First, an incentive needs to be very appealing to the user. Badges, unlocking features, etc., only appeal to a subset of users. A good incentive is something that all users will find appealing. The second trait is that the user should start seeing the benefit after the first few invites. The average user will send invites out to only 2 to 3 people, so if it takes 5 or 10 invites to start seeing a benefit, then many users will think it is not worth the effort.

Dropbox’s invite page

But why stop there? Wouldn’t it be great to make inviting addictive? Dropbox does this by sending a nice little email innocuously titled “Dropbox referral status”.  What is great about this email is it serves a couple purposes. One, it acts as a re-engagement hook by telling the user how much space they have and reminding them to use Dropbox. Second, and more importantly, it prompts the user to go invite more people. What makes this invite prompt so effective is that it is almost addictive. You just experienced this high moment from earning free space, but you still want more.

Invite completion email

Dropbox’s biggest growth hack though, is giving users an invite incentive that appears to be very juicy, but in reality costs Dropbox practically nothing! This is because almost no one actually ends up using that additional free space. Your storage limit is just a number in a database and doesn’t start costing Dropbox anything until you actually start using it up. Most users aren’t anywhere near 90-100% usage. I’d wager that very few Dropbox users are actually digging into the extra space they got from invites (except maybe those of you who ran a Google adwords campaign).


What they did best:

  • Enticing “Get free space” invite prompt in top toolbar catches user’s attention
  • Re-engagement emails prompting users to invite more friends once one joins
  • Ingenious incentive that has broad appeal, but costs very little

What could be improved:

  • Address book importing in invite page did not seem to work for me
  • There are four different options for sharing your referral link on the invite page with no emphasis of one over another. The UI should emphasize the best performing option so more users choose it.