AWS Startups Blog

Analytics is simpler than you think with Metabase

Guest post by Sameer Al-Sakran, CEO, Metabase

If you spend any time reading on the internet, you’ve probably noticed that the subjects of analytics and business intelligence tend to take on very complex overtones. Big data analytics. Stream processing. Real-time analytics. Machine learning. Machine learning to learn your machine learning parameters. Meanwhile, everyone else’s engineering blogs are giving you all the details about how they burned through a couple hundred grand or more in engineering time to set up some view counters on their home page. But sometimes you just want to pull some data out of a database. Maybe you want to let others in your company do so as well. Maybe you even want them to be able to make a chart and pass it around. For all the talk of “company transformation,” expensive conference booths, and six- or seven-figure sticker shock, at its heart analytics can be fairly simple and incremental.


Enter Metabase.


What exactly is Metabase?

Metabase is the simplest way to get data in front of anyone on your team. Using a simple graphical interface, anyone in your company can create dashboards, set up nightly emails, or ask simple questions on their own.


Metabase Image 1

For questions that are not quite as simple, analysts and engineers can run SQL questions as well.


Metabase Image 2


After a question has been added to Metabase, anyone with access can easily re-run it, tweak it, and share it.

Metabase is open source, installs in minutes, and works with a wide variety of databases including MySQL, PostgreSQL, and Amazon Redshift. You can run it in your own AWS account. No one else needs to see your data, and you can lock things down to your heart’s content.


What kinds of questions?

If you’ve been involved with analytics, you’ve probably jumped 10 steps ahead and are thinking about all the complicated things that need to get measured. We’re not talking about multichannel attribution, inventory forecasting, demand curve generation, or fine-grained Life Time Value or Cost of Acquiring a Customer (at least not yet).

Instead, we want to draw attention to what can be called the Dark Matter of analytics. These are the questions that typically make up 90% of the query volume at most companies that no one ever brings up in a blog post:

  • Which blog posts got the most views?
  • How many reservations do we have for next Tuesday?
  • Which accounts are up for renewal next month?
  • Did John Doe have any credit card chargebacks when he opened this support case?
  • How many 5-star reviews does the average merchant have on our site?

While some subset of these tend to be built into your product, most aren’t. For all the glamour that top-down KPIs and data science get, it is the answers to these micro-questions throughout the day that make everyone in your company better informed, more aware of context, and more efficient in their day-to-day jobs.


Why now, can’t you see I’m busy?

Even before you think you need a Business Intelligence application or a data science stack, there are lots of little places where widespread access to data helps.

As you build your application, it is useful to have a place to allow restricted access to the databases in your application.

You can double check staging environment data, perform quick checks on production databases to verify that things look right, and create quick and dirty dashboards to see how things are working or not working.

As you find bugs or data that looks off, you can create canary cards. These let you inspect and verify data that seems questionable. For example, “Is the new invite code system properly marking invite codes as used?”

As you release new versions, you might create dashboards that measure activity in those features. Rather than guessing, or hoping that some of your core metrics move, you can easily instrument new changes. For example, “How many invite codes got redeemed within 24 hours of being sent?”

During launch, Metabase lets you flexibly define and redefine metrics, reports, and dashboards. By providing a simple interface on top of your data, it allows anyone to modify reports and keep tabs on the data they need without having to route it through engineers or analysts.


Metabase Image 3


At some point, you’ll start solidifying the things you measure (and if you’re a certain kind of person, you might even call them KPIs). The dashboards that each team needs will have taken shape, and it becomes time to prune the reports that aren’t useful any more. You’ll have built up a BI and reporting system incrementally, and in response to actual day-to-day questions. If you were gifted with a specific kind of constructive laziness, you might have even laid down the groundwork (such as SQL views and ETL) to let your end users create their own, and leave you to more interesting work.

Out of the box, Metabase lets your coworkers run simple queries on their own. As your needs grow, you can annotate and customize the data model that we generate, and create metrics, segments, and SQL views to capture exactly the things that you want to measure.


How can you try Metabase?

We recommend trying it out on AWS Elastic Beanstalk. To get started, go to and choose Launch Metabase on AWS.

Getting Started with AWS Cost Management

Post by Erin Carlson and Andy Elmhorst, AWS

After you have created your first AWS account and applied security best practices, you may next want to start tracking your AWS costs so that you can stay within your budget. With AWS, you only pay for what you use, which results in a variable cost model, much like a utility bill. The more you use, the more you pay, and the less you use, the less you pay. Conversely, if you decide to turn an AWS Cloud resource off, you stop paying for it. Though this cost model can mean significant infrastructure cost savings for your organization, it also might require you to think differently about architecting, managing, and operating in your AWS environment. In this blog post, we introduce you to AWS cost management tools that can help you get started with managing your AWS-related costs.


Best practices for cost management and visibility

To get started with AWS cost management, first identify a billing manager in your organization who is responsible for tracking monthly costs. Using the AWS Billing and Cost Management console, your billing manager can:

  • Quickly access comprehensive information about your AWS costs and usage.
  • Analyze your usage patterns and cost drivers by using AWS Cost Explorer.
  • Set cost and usage budgets by using AWS Budgets.
  • Allocate your costs to specific projects, teams, and cost centers by using cost allocation tags.

In addition to using the console to review and pay your bill, you can use the console as your hub for accessing these cost management tools.


Create IAM users for your cost management stakeholders

By default, the Billing and Cost Management console is available only to your root account. Because security best practices recommend that you use your root account as little as possible, it is best to create one or more AWS Identity and Access Management (IAM) users that have permissions to view the Billing and Cost Management console. To learn more, see the instructions in How can an IAM user access AWS billing information? and Don’t Forget to Enable Access to the Billing Console!

AWS provides a managed policy called Billing  that you can apply to an IAM user to give the user full access to the Billing and Management console and AWS Budgets. You can also be more selective with the permissions you apply to your finance users by giving them more restrictive permissions.


Use Cost Explorer to identify your cost drivers and usage patterns

Cost Explorer helps you visualize, understand, and manage your AWS costs and usage over time. Cost Explorer provides an intuitive interface that enables you to create custom reports (including charts and tabular data) that analyze cost drivers and usage data, both at a high level and for specific requests. You can change views of your cost and usage data by using a number of filtering dimensions (such as AWS service and linked accounts), and save your progress when you reach a particularly useful view of your data. To learn more about Cost Explorer, see How do I use AWS Cost Explorer?, The New Cost Explorer for AWS, and all Cost Explorer blog posts from the AWS Blog.


Use AWS Budgets to create custom cost and usage budgets

AWS Budgets lets you set budgets on your AWS costs and usage, and receive alerts you when you exceed or are forecasted to exceed one or more of those budgets. You can set budgets by month, quarter, or year, and you can have alerts triggered by actual or projected usage values. You can have each budget alert sent to as many as 10 email subscribers or published to an Amazon Simple Notification Service topic. See New – AWS Budgets and Forecasts.


Enable the AWS Cost and Usage report

Though the tools listed so far in this post will give you a good understanding of your AWS costs and usage, you might have a power user who wants to analyze your costs and usage in greater detail. The Cost and Usage report is a comprehensive dataset of your AWS cost and usage information and is available in downloadable CSV format. You can also upload the Cost and Usage report to Amazon Redshift or Amazon QuickSight. To enable the Cost and Usage report, navigate to the Reports page in the Billing and Management console, or see Understanding Your Usage with Billing Reports and the Cost & Usage Data Dictionary.


Enable and use cost allocation tags

As your use of AWS grows, you will want to be able to view your AWS costs broken down by department, project, team, or cost center. To help you organize and account for all of your AWS resources, we recommend that you apply cost allocation tags. After you enable tags for cost allocation, they appear as available filtering dimensions in Cost Explorer, AWS Budgets, and your Cost and Usage report. These tags let you analyze and view your costs at the levels that make sense for your business. For more information, see AWS Cost Allocation for Customer Bills and Monthly Cost Allocation Report.


Additional resources

Use the following list of additional resources to learn more about AWS cost management:

If you have comments or questions about this post, you can reach Andy at @aelmhorst

– Erin and Andy

Create Post-Purchase Notifications using AWS Lambda & Amazon API Gateway with ClaudiaJS

Guest post by Richard Moot, Developer Evangelist, Shippo

An easy way for an ecommerce store to improve customer retention is to provide a better post-purchase experience. If you improve the experience for customers after they purchase your product, it increases the likelihood that they will purchase from you again.

One solution is to connect Shippo’s shipment tracking webhooks with Twilio’s SMS API. In this way, we can track notifications that are sent to a customer whenever there is an update to an order’s status while it’s in transit. We also want to know how many people are opting in to receive notifications, and how often we might need to send those notifications. Here is where AWS Lambda and Amazon API Gateway can really shine. Using those AWS services helps us to avoid the tedious work of creating a system to dynamically allocate sufficient resources to manage user load. We can scale as needed, and we can also use serverless pay-per-use Lambda functions so that we don’t have to pay for infrastructure. To make everything even easier, we use a deployment automation tool called ClaudiaJS (more on that later) to do most of the heavy lifting for us.

In this post, I walk you through a sample project that uses a Twilio API and a Shippo API to create a service that automatically sends SMS shipment tracking updates. Twilio provides the ability to send the SMS messages, while Shippo pushes the tracking updates to our API Gateway webhook URL.

The following diagram shows how this works (the green path is the data flow).

To get started with this tutorial, you need the following:

  • Twilio account – You need your account SID and auth token from the account (you can find both in your dashboard after signing up).
  • Shippo account – You just need to plug in your API endpoint URL to the webhooks area to have it work.
  • Node.js 4.3.2 – The functions run on NodeJS in AWS.
  • ClaudiaJS – You use this tool to automate the deployment process.

ClaudiaJS is a deployment management tool that simplifies the process of creating and managing AWS Lambda functions and Amazon API Gateway endpoints. It automates all the error-prone deployment and configuration tasks and sets everything up out of the box, the way JavaScript developers expect.

You can get ClaudiaJS by installing it globally on your machine using the following command:

npm install -g Claudia

Claudia needs access to your AWS account. For information about setting up access credentials for ClaudiaJS so that you can create Lambda functions and API endpoints, see Installing and Configuring ClaudiaJS.

If you want to use a separate user account instead of the main user account, assign the following roles to the user:

  • AWSLambdaFullAccess – Required for all Claudia deployments.
  • IAMFullAccess – Required if you want Claudia to automatically create execution roles for your Lambda function (recommended for beginners). If you can’t use this role because of corporate policies, or if you don’t want to grant Claudia access to the AWS IAM service, then you can create a Lambda execution role manually and pass the name --role <ROLE NAME> using  when executing claudia create.
  • AmazonAPIGatewayAdministrator – Required if you want to use Claudia API Builder or Claudia Bot Builder, or if you want to deploy the API Gateway Proxy APIs.

You can create the project folder using the following command (you can skip this if you simply cloned the repo):

mkdir twilio-shippo && cd twilio-shippo

You can speed up initializing your project using the following command, which generates package.json for you:

npm init --yes

After you create package.json, you can install the dependencies that you need for the function to work. You need the ClaudiaJS API Builder and the Twilio node library to get up and running:

npm install -S twilio claudia-api-builder

The end goal is to get something like what we have at app.js in the repo. Feel free to simply copy and modify from there, or use the next set of instructions in this tutorial to deploy using ClaudiaJS.

Next, create an app file called app.js where you will build out your Lambda function. You also need to specify how your API endpoint will work. Start by adding your function dependencies at the top of your file:

var ApiBuilder = require('claudia-api-builder'),
    api = new ApiBuilder(),
    twilio = require('twilio')('TWILIO_ACCOUNT_SID', 'TWILIO_AUTH_TOKEN');

From here, create the API endpoint that you will put into Shippo’s webhook interface for capturing all of your tracking updates. Every time Shippo detects a new update to the status of a tracking number that you have POSTed to them, Shippo will send updates to your endpoint.

You must export your function so that Claudia can package everything up to be deployed to AWS for you. You can continue with the following in your app.js file:You are creating a POST endpoint because Shippo will be POSTing the tracking updates to you. You then parse the data to relay over to Twilio to send out your SMS messages.

var ApiBuilder = require('claudia-api-builder'),
    api = new ApiBuilder(),
    twilio = require('twilio')('TWILIO_ACCOUNT_SID', 'TWILIO_AUTH_TOKEN');

module.exports = api;'sms-updates', function(req){
    // Our Lambda logic will go here

You are creating a POST endpoint because Shippo will be POSTing the tracking updates to you. You then parse the data to relay over to Twilio to send out your SMS messages.

As an example, let’s start by parsing the body of a message that Shippo has sent to us. We’ll set up a few variables to prevent repeating ourselves, and we’ll add some logic in there to handle if there is no location provided with our tracking update:'/sms-updates', function(req) {
  var body = req.body,
      trackingStatus = body.tracking_status,
      trackingLocation = 'UNKNOWN';

  if (trackingStatus.location && {
      trackingLocation = 
 + ', ' + trackingStatus.location.state

  // Next we’ll implement our call to Twilio

Now that we have our logic built for handling the body of the response and can safely handle when we don’t get a location with our tracking status, we can dig into sending a formatted SMS using Twilio.

The basic format for sending Twilio messages requires that we have a destination number (to send our SMS to), our Twilio number that we’re sending from, and a message to send (duh!).

Here’s what it looks like after we add the code to send our message:'/sms-updates', function(req) {
  var body = req.body,
      trackingStatus = body.tracking_status,
      trackingLocation = '';

  if (trackingStatus.location && {
      trackingLocation = 
 + ', ' + trackingStatus.location.state

  return twilio
        to: '+1-TEST_NUMBER',     // This should be your destination number
        from: '+1-TWILIO_NUMBER', // This is your Twilio number in your account
        body: 'Tracking #: ' + body.tracking_number + // Here's our message
              '\nStatus: ' + trackingStatus.status +
              '\nLocation: ' + trackingLocation
      .then(function(success) {
        // We are using a promise here to help Claudiajs
        // make sure the request finishes executing, otherwise
        // our function will exit before it we're successfully send our
        // request
      .catch(function(error) {

In the preceding code, note that we use a Promise to resolve the function. We do this because ClaudiaJS looks for whether you’re using a Promise in your Lambda function, and then lets it continue to run until the Promise resolves (or your function times out, which is around 3 seconds by default in AWS).

Now that you have a composed Lambda function and an API Gateway endpoint, you can deploy all of this to AWS using your ClaudiaJS CLI tool. If you set up your AWS credentials at ~/.aws/credentials  (as specified at, you can just use the following command:

claudia create --name twilio-shippo --region us-west-2 --api-module app --profile Claudia

As you can see, the preceding command follows this format:

claudia create --name NAME_OF_APP --region AWS_REGION --api-module FILENAME --profile AWS_CREDENTIALS_PROFILE

There are some scripts in package.json named create and  update that can be useful when you’re crafting your Lambda function.

Next, ClaudiaJS will package and deploy the Lambda function that you’ve created and also will create an Amazon API Gateway endpoint. The Amazon API Gateway endpoint is tied to your function to execute whenever a request is received. At the completion of your deployment, ClaudiaJS will provide a URL that points to the API Gateway endpoint.

You can plug the API Gateway endpoint link shown in the console into Shippo to start sending your tracking updates. You’ll see our link printed out to the terminal under “url“. That is the link you paste into Shippo:

  "lambda": {
    "role": "twilio-shippo-executor",
    "name": "twilio-shippo",
    "region": "us-west-2"
  "api": {
    "id": "YOUR_UNIQUE_ID",
    "module": "app",
    "url": ""

Next, navigate to, scroll down to Webhooks, and then choose + Add webhook. Because you had your route go to sms-updates, you append that to your url so that the updates post to the right place. This  gives you something like the following:

Paste this into the URL field in Shippo, make sure that the dropdown under Event Type is set to tracking, and then choose the green check box to save it. Now you can test the function by choosing test on the right. If everything goes well, you should receive an SMS with tracking information at the number you had in the to field of your Twilio  sendMessage object.

Now you can get SMS updates for all the numbers that you post to Shippo automatically without having to provision any servers, and you pay only when you receive updates using AWS Lambda and Amazon API Gateway with AWS. You could take it a step further by including phone numbers for SMS updates in the metadata field when POSTing to Shippo, and you could parse that out to dynamically send SMS updates to customers.

For more information about Shippo and how to use their shipping API to improve your shipping experience, see

One-Click Check-In/Check-Out and more for Airbnb guests using an AWS IoT Button

Post by Karan Desai, Solution Architect, AWS

Are you an Airbnb host? Would you like to have an easy way to know when your guests come in and leave, or need help? In this post, I show how you can set up an AWS IoT button to build a simple project that can do the following:

  • Send you a notification SMS or an email informing you what time your guests check in and check out.
  • Send you a notification if your guests need help.
  • Update a Google Drive spreadsheet to keep track of all guest check-ins and check-outs.
  • Prepare your smart home for your guests. For example, turn on a Philips Hue light bulb when they check in to create a warm welcoming environment, turn on your Nest thermostat to a comfortable temperature, and turn it all off when they check out.


Airbnb IoT Button


This project doesn’t require you to purchase any additional hardware or learn any programming. If you sign up for AWS Free Tier, you can run this project for 12 months at no cost, and even without the Free Tier, it will only cost a few pennies per month, depending on your usage. All the code you need is provided with instructions, so you can build this even if you are new to AWS. All you need is an AWS IoT button, an AWS account, your Google account, and a free IFTTT app on your smartphone. If you have Philips Hue light bulbs or a Nest thermostat, you can integrate them into your project, but they are not necessary to build the rest of the project. So, let’s jump right in.


Set up the AWS IoT button for notifications and smart home controls


You need the following things before we proceed further:


Step 1: Set up your button


  1. Download the AWS IoT button app on your phone. See iOS – App Store or Android – Google Play.
  2. Sign in to the app using your AWS account credentials. Follow the instructions on the app to register, configure, and set up your button.

    App Setup

  3. On the Set button action page, choose Send SMS (nodejs), and then type a phone number for receiving text messages (SMS).


Step 2: Set up your SNS topic and subscriptions


Sign in to the AWS Management Console. On the navigation bar, choose Services, and then search for Simple Notification Service or SNS. Here you will set up what phone numbers and email addresses to use for notifications.

  1. On the SNS dashboard, choose Create topic. For topic name, type a name of your choice.
  2. After the topic is created, copy the topic ARN and save it in a text file. You will need it later. The ARN is a text string that looks like this- arn:aws:sns:<region-name>:<numbers>:<text>
  3. Choose Create subscription.
  4. For Protocol, choose SMS. For Endpoint, type a phone number for receiving text messages, or choose Email if you prefer to receive an email instead of a text message.
  5. Choose Create subscription.


Repeat the steps if you want to add more than one phone number or email address.

Note: If you downloaded the IFTTT app on an iPhone or iPad, create another topic and add the Gmail address that you configured on your iPhone or iPad. This is in addition to one subscription of type SMS. Since IFTTT for iOS currently does not support incoming SMS notifications as a trigger, you will use incoming email as a trigger for certain actions. This is not necessary if you are using an Android phone or tablet.


Step 3: Update IAM permissions


Next, you update the security settings so that your SNS subscriptions are accessible only by your IoT button.

  1. On the navigation bar, choose Services, and then search for IAM.
  2. On the IAM console, choose Roles. In the list of roles, select the role that has “iotbutton” in the name. On the Permissions tab, you should see that the role has two policies already attached to it, as shown in the following screenshot.
  3. Select the policy that has “SMSExecutionRole” in the policy name. Choose the JSON tab, and then choose the Edit button to open the policy editor.
  4. Delete everything in the text box, and replace it with the following code:
    "Version": "2012-10-17",
    "Statement": [
            "Effect": "Allow",
            "Action": [
            "Resource": [

Replace arn:aws:sns:xxx:xxx:xxx with your topic ARN that you saved in Step 2. Choose Save.


Step 4: Modify your Lambda function


Your AWS IoT button registration process has already created a Lambda function on your AWS account that is triggered by a click of your IoT button. However, in this step you personalize it to invoke Amazon SNS to send the notification text messages and emails.

  1. On the navigation bar, choose Services, and then search for Lambda.
  2. On the Lambda console, you should find a newly created Lambda function named iotbutton_XXX, where XXX is your device code (DNS). Select the function. If you don’t see the function, make sure you are in the same AWS Region where the button was registered. The current region is shown on the top right corner of your AWS console screen.
  3. On the Code tab, delete all existing code and replace it with the code provided here:
  4. Make three simple changes to this code:
    • Search for const TOPIC_ARN in the code and replace the existing ARN text string with your SNS topic ARN that you saved in Step 2.
    • Search for var localTimeZone in the code and enter the UTC time offset of your local time zone. If you don’t know your UTC time offset, you can find it here or you can keep it at 0 to get the timestamp in your notifications in Coordinated Universal Time (UTC).
    • Search for var emailSubject in the code and edit the message if you prefer a different subject for your notification emails. This is optional, if you like the existing message, you can leave it as it is.
  5. Choose Save. This completes your setup on the AWS console.


Step 5: Set up your IFTTT app


In this step, you set up the IFTTT app to receive notifications from your AWS IoT button and you use that to update a Google Drive spreadsheet with your guest check-in/check-out details, and optionally control your Philips Hue light bulbs or Nest thermostat.

  1. Open the IFTTT app on your smartphone that you previously downloaded. Sign in, or create a new account if you’ve never used this app before.
  2. Choose My Applets on the bottom menu, and on the next page choose the + icon to create a new applet.
  3. Choose +this. From the list of trigger services, choose Android SMS if you are using an Android device, or GMail if you are using an iPhone.
  4. If you use an Android phone, from the available options choose New SMS received matches search. In the text box, type ‘ALERT’, and then choose Save. If you use an iPhone, choose New email received matches search. In the text box, type ‘ALERT’, and then choose Save.
  5. Choose +that. From the list of action services, choose Google Drive.
  6. From the available options, choose Add row to spreadsheet.
  7. In the form on the next page, type the name that you want to give your spreadsheet, for example, “Airbnb Guest Log”. Choose what information would you like in the spreadsheet. I recommend keeping “Occurred At” and “Text” so that you can have a record of times and dates of every check-in, check-out, and help request from your guests.
  8. You can also edit the Drive folder path if you want to save the spreadsheet under a specific folder in your Google Drive.
  9. Choose Save.


Step 6: Connect your smart home devices


If you don’t have Philips Hue light bulbs or a Nest thermostat, you can skip this step and continue to the next section.

If you want to control Philips Hue light bulbs or a Nest thermostat in response to your AWS IoT button notifications, create additional applets following instructions in Step 5, but with the following changes:


To set up for guest check-ins

  1. From the available options under Android SMS or Gmail trigger, select New SMS received matches search or New email received matches search. In the text box, type ‘CHECK-IN’, and then then choose Save.
  2. To control Philips Hue light bulbs, choose +that. From the list of action services, choose Philips Hue. From the available options, choose Turn on lights. Make sure that you have connected the IFTTT app to the Philips Hue app on your phone.
  3. To control a Nest thermostat, follow the same steps but from the list of action services, choose Nest Thermostat and from the available options, choose Set temperature to configure it to the levels that you want. Make sure that you have connected the IFTTT app to the Nest thermostat app on your phone.

Tip: If you want to control both a Philips Hue light bulb and a Nest thermostat from the notifications, just create two applets by following the preceding instructions. If you have a different brand of connected lights or connected thermostat, you can check if is supported by IFTTT and set it up similarly.


To set up for guest check-out

  1. From the available options under SMS trigger, select New SMS received matches search or New email received matches search. In the text box, type ‘CHECK-OUT’, and then choose Save.
  2. Choose +that. From the list of action services, choose Philips Hue and Turn off lights, or Nest Thermostat and set the temperature of your choice.


Start clicking!


That’s it, you are all set! You can click your IoT button and test that it works as expected.

Pressing the button once will do the following:

  • Send you an SMS or an email with a message similar to this:

CHECK-IN ALERT! Guest in Room 1 has checked in at 22:37:04

  • Update your Google Drive spreadsheet with an entry similar to this:

June 10, 2017 at 10:37 PM | IoT Button> CHECK-IN ALERT! Guest in Room 1 has checked in at 22:37:04

  • (Optional) Turn on your Philips Hue bulbs or set your Nest thermostat to the temperature you desire when guests are in the room

Pressing the button twice will do the following:

  • Send you an SMS or an email with a message similar to this:

CHECK-OUT ALERT! Guest in Room 1 has checked out at 09:25:45

  • Update your Google Drive spreadsheet with an entry similar to this:

June 11, 2017 at 09:25AM | IoT Button> CHECK-OUT ALERT! Guest in Room 1 has checked out at 09:25:45

  • (Optional) Turn off your Philips Hue bulbs or set your Nest thermostat to the temperature you desire when guests have left the room

Long pressing the button (longer than 2 seconds) will do the following:

  • Send you an SMS or email with a message similar to this:

HELP ALERT! Guest in Room 1 needs help! Help requested at 23:18:24

  • Update your Google Drive spreadsheet with an entry similar to this:

June 10, 2017 at 11:18PM | IoT Button> HELP ALERT! Guest in Room 1 needs help! Help requested at 23:18:24

This completes your project of setting up the AWS IoT button. You’re ready to welcome your next Airbnb guests and have them experience your cool, convenient solution!

If you are interested in the technical details of the AWS services involved in this project, you can read the next section.


Behind the scenes: architecture and service overview


The following high-level architecture diagram shows the serverless setup used in this project.

Architecture Diagram


The AWS IoT Button is a programmable button based on the Amazon Dash Button hardware. The device connects to Wi-Fi and sends a JSON payload that contains the device serial number, the measured battery voltage, and a click type to the AWS IoT service when the button is pressed.

AWS IoT is a managed cloud platform that lets connected devices interact easily and securely with cloud applications and other devices. AWS IoT can process and route billions of messages to AWS endpoints and to other devices reliably and securely. In this project, an AWS IoT rule is used to invoke a Lambda function, passing the message data.

AWS Lambda is a service that lets you run code without provisioning or managing servers. With Lambda, you can run code for virtually any type of application or backend service—all with zero administration. Just upload your code, and Lambda takes care of everything required to run and scale your code with high availability. In this post, a Lambda function is used to invoke an SNS topic to send notification text messages and emails.

Amazon Simple Notification Service (SNS) is a fast, flexible, fully managed push notification service that lets you send individual messages or to fan-out messages to large numbers of recipients. Amazon SNS makes it sim

ple and cost effective to send push notifications to mobile device users, email recipients. You can even send messages to other distributed services.

AWS Identity and Access Management (IAM) is used to securely control access to AWS services and resources. Using IAM, you can create and manage AWS users and groups, and define policies to allow and deny their access to AWS resources. This project uses an IAM role with a policy that restricts access of your Lambda function to your SNS topic only, identifying it by its Amazon Resource Name (ARN).

IFTTT is a free web-based service that allows users to create chains of simple conditional statements, called applets. An applet is triggered by events within other web services, such as an incoming text message or a new email received on Gmail, and can be configured to perform specific actions such as updating a spreadsheet on Google Drive, or controlling connected devices such as a Philips Hue light bulb or Nest thermostat.




AWS serverless and managed services allow you to quickly build applications without worrying about the underlying infrastructure. In this post, you have seen an example of this by building a fun, simple IoT project to enhance the experience of your Airbnb guests and to make your job as a host more convenient. You can expand this to other use cases such as opening your garage door, tracking common household medications or products, or even unlocking or starting a car. With AWS and the IoT button, the possibilities are almost endless!

5 mistakes that startups need to avoid when hiring developers

This week in AWS Startup Stories we talked to Will Bentinck, Head of Careers at Makers Academy – Europe’s first coding bootcamp, which turns complete beginners into junior software developers in 12 weeks.

Will Bentinck, Head of Careers at Makers Academy and Andrew Thompson, ex-VP of Engineering at Yoyo Wallet in the studio recording the episode “Hiring for Startups”.

The majority of people who study at Makers Academy are in their late 20s and early 30s and are people who’ve had a career already (sometimes at quite senior levels) but have a strong feeling they need something new—and software development is it. Once they’ve gone through the course, Makers Academy hooks their newly-minted developers up with businesses looking to hire junior engineers with fire in their belly. When they take someone on, the students’ careers start anew.

These people are changing their lives, and it’s something Will and his team take incredibly seriously. They’ve developed a selection process that allows them to cherry-pick only those people who have the drive, energy, curiosity, and positivity to make such a big career transition. Not only this, but previously, Will’s spent two years at Enternships, an on-line job board for graduates to get internships in startups, where he managed the partnership with Telefonica’s global startup accelerator, Wayra, overseeing the hiring of hundreds of European graduates into jobs in some of the world’s best young tech companies.

So we spoke to Will about recruitment, and specifically about what it is that startups should avoid doing when hiring developers. Right off the bat, he gave us 5 big things:


1. Don’t treat developers like they are wizards

You don’t need to communicate with developers in a special new way. They’re just people. With a set of skills. Like any other employee. They just happen to be in high demand.

Because they’re in such high demand, developers have a lot of people vying for their attention every single day. To get them to focus their eyes on your business, you’ll need to show them why it is that your business is different from the others jockeying for position in their line of sight.

That doesn’t mean being wacky. In this climate, different is:
– Go to them, don’t expect them to come to you
– Clearly communicating your startup’s vision
– And being genuine about your intentions for their future careers.

2. Don’t copy the big companies’ recruitment processes.

In your first startup, it’s likely you won’t have much professional experience of hiring if you have any at all.

In those circumstances, it’s very tempting to look at how the largest companies in the world hire, lift their processes and apply them directly to your business. These people employ professional recruitment teams after all.

The problem is that recruiting for enterprises is very different to recruiting for five people in a room with an idea. Those two businesses have very different recruitment needs.

Most big businesses’ recruitment processes are geared to filtering down the enormous volumes of people who’ve heard of the brand and apply. The recruiters’ jobs here are to optimise the process to say no to as many people as possible; to get down to a manageable shortlist of candidates.

If you’re a startup, you’re doing the opposite. You’re looking for ways to say yes. You’re selling your company, you’re selling the dream, you’re trying to give the best people reasons why they should work for you, rather than trying to kick candidates to the curb.

Communicate the value of working for you. Make it easy for them to decide to work for you. And once you’ve found those people, give them every possible opportunity to shine the brightest they can in your selection process.

3. Don’t forget that everyone in a startup is hiring, all the time

You’re always selling your startup. It doesn’t matter if you’re at a barbecue or pitching to your next big client, every time you speak to someone you’re spreading the word about your big idea.

The same applies to hiring. If there are five people in your company, you have five people who can spread the word about your business. And anyone you come across might be, or know, the next candidate who believes in your business as much as you do.

The more work you can do to combine your employer brand and your consumer brand, the easier you’ll find it to attract the sort of talent you’re looking for. Strongly communicate what it is that you’re about, why you care about what you do, and why other people should care too.

4. Don’t look for people who can do the job, look for people who believe in the vision

As Simon Sinek puts it: people don’t buy what you do, they buy why you do it. Start your message with why you do what you do, and get to the hows and whats of the business later.

The same idea applies to recruitment. You’re not looking for people to come in and write some code for you. If you look for those kinds of people, you’ll find them. And they’ll be mercenaries looking for a fast buck.

No, what you want is to find people who believe what you believe, but happen to have the specific skill-set your business needs. If you find people with the same beliefs as you, you’ll find they’re much more likely to fight tooth and nail for the cause you’re both there for. And that’s what drives success in a startup.

5. Don’t think of the selection process as the recruitment process

Your recruitment process isn’t your campaign on Unicorn Hunt, it’s not your interviews, it’s not your tests. Your recruitment process is every single interaction you have with one person. Including after they’ve started the job.

Recruitment really has three phases, attraction, selection, and retention.

It’s the retention piece that’s often overlooked, but it’s arguably the most important. Once you’ve had a conversation about job title, salary, office perks, and location and those tangible perks of the role that most startups offer, it’s the longer term stuff that becomes much more important.

Candidates, (developers or otherwise) will be asking themselves:
– Do I consider this to be a genuine progression in my career?
– Do I believe in what this company is trying to do?
– Do I trust the people here to able to achieve that goal?

We naturally focus on the tangible perks of a role to attract people, (salary, ping pong tables and the like) but these deeper issues are what people really care about. They’re the reason people say yes to startups’ offers.

An example from Will’s business—it’s often fairly senior people who quit their jobs to join Makers Academy. In their first developer job, salary isn’t the most important thing on their agenda. Most of the time they’ll have taken a significant pay cut to pursue this new career they’re passionate about. It’s these deeper, long-term drivers that they really want to see in an employer.

In the last eighteen months, Will actually asked 200 developers coming out of Makers Academy‘where do you want to be in a year’. 199 of them said ‘I want to be working with people that I like, and still be learning’.

That’s what this particular talent pool is interested in, and because of that, it’s these longer-term goals that really resonates with this audience. Prove that you’ve got your culture and your vision absolutely nailed, and you’ll attract the like-minded champions your business needs.

You can listen to the Startup Stories podcast with Will Bentinck here.
*What is AWS Startup Stories?

AWS Startup Stories is a business series of podcasts published on the AWS Podcast channel that showcases the success stories of startups running on AWS. Heroes of each business talk about how they overcame challenges and used technology to solve problems, providing tips for companies facing similar issues. Learn more about the series and who’s part of them on the webpage here and never miss an episode by subscribing today!

Using AWS IoT to reduce waste (and get free food)

Post by Trevor Hillis, Commercial Sales Rep, AWS
About two months ago, I purchased an AWS IoT button (a programmable physical button that integrates with AWS services) with the hope of learning a little bit more about IoT (Internet of Things) and programming. I don’t come from a technical background, have virtually no experience with programming or IoT, and figured the hurdles to building something functional, much less useful, would take months to overcome. The button sat idle on my desk until last week, and within a few days of committing to building something I had programmed a button that helped our office reduce waste by alerting an email alias whenever there was leftover food in the kitchen. With the documentation available on the website and the sample code on the AWS Github account, anyone, regardless of technical abilities, can program an IoT button in an afternoon.
I work in a building with roughly 400 other employees, and the main kitchen is 11 floors below me. It’s not uncommon for leftover food to be put out in the kitchen, especially with Amazon’s recent acquisition of a San Francisco startup in my building that serves pretty generous lunch portions. The only issue is awareness, as no one knows when there is or isn’t food in the kitchen. This can create an inefficient and wasteful surplus. No one has time to constantly check whether there is food in the kitchen, and even if someone stumbles across it, there is no efficient way to communicate that info with others in the building. With the IoT button, when someone notices leftover food all it takes is one press of the button for the entire building to get a notification, which helps us get free lunch. More important, it significantly decreases the amount of waste that we produce!

Programming the button

To build something similar, all you need is an IoT button and an AWS account. The IoT button starts at $14.99 and the AWS usage falls under the free tier limits for the first year, so this is a very cost-effective way to learn about AWS and to be inventive. Once your free tier expires, you’d have to press the button 5 million times in a month, so two times every second for 31 days straight, just to incur $1 in request fees. The AWS services I used are AWS Lambda, AWS IoT, and Amazon Simple Notification Service (SNS). The IoT button acts as the trigger for the code. The code resides in a Lambda function, which tells SNS to send an email. I was pretty unfamiliar with these services before building the button, but I learned how to use them by following the simple steps in the AWS IoT Developer Guide.
First, I created an SNS topic and subscribed the office email alias to that topic so that SNS could publish messages to the email alias. Amazon SNS is a simple push notification service that allows you to affordably send texts or email notifications to Apple, Google, Fire OS, and Windows devices worldwide.

After I created a topic, I selected the check box next to the topic. I chose Actions, and then I chose Subscribe to topic. For Protocol, I chose email, and for Endpoint I typed the email alias that I wanted to send the notifications to.

Next, I programmed a Lambda function to publish a “NomNom Alert—Food in Kitchen” message to the SNS topic after the function was triggered. AWS Lambda is a service that manages provisioning infrastructure for you, so all you have to do is upload your code and Lambda handles everything else involved with running and scaling the code. You can even write and edit the code inline from the AWS Lambda console. I added an IoT trigger to the Lambda function, then specified the IoT button by entering the serial number and selecting Enable trigger.

The code for the Lambda function is simple JavaScript that publishes content to a resource identified by the ARN (Amazon Resource Name), which in this case was the SNS topic I created. You can even use a simple if statement to configure the button to publish different messages based on different “events.” In my case, I used a single vs. double click of the button. The double click sends a message that the food available isn’t vegetarian friendly. (The office is in San Francisco, after all).
The following sample code is posted on the awslabs GitHub account here, so to implement this yourself all you need to do is go to the AWS Lambda console in your AWS account, choose Create a Lambda function, choose Blank Function, and paste the code from the GitHub account into the Lambda code editor.

Remember to edit the ARN to the SNS topic you created and to add the IoT button as the Lambda trigger. You could use this in a variety of ways, like having a Lambda function post as a bot on a Slack channel. The implementation is completely up to you!
For my implementation, whenever there is leftover food in the office kitchen, someone presses the IoT button, which triggers the Lambda function, which publishes the free food message to the SNS topic, which sends that message to the office alias. Everyone on the alias immediately gets an email notification that there is food in the kitchen.

While the benefit of being aware of free food is nice, the greater benefit of knowing that we are decreasing the amount of waste we produce is even better. America wastes approximately 35 million tons of food per year, and it’s nice to know that a simple use of technology can help us put a very, very small dent in that number. The applications of an IoT button are virtually endless, and the real opportunity lies in extending the use of the button to further decrease waste, feed the homeless, or assist in whatever cause you are passionate about. That’s the best part of the button—what you create is up to you. We look forward to seeing what you do with it!

Interested in other projects? Check out the AWS Startup Kit, Amazon Rekognition and more on the Startups blog!

Dating, data and human expertise: How AWS startup customer Once found the sweet spot on their way to global expansion

This week in AWS Startup Stories* we talked to Clémentine Lalande, COO, and CFO of Once – the ‘slow dating’ app.
Clémentine is an entrepreneur who has helped to scale several social and commercial ventures throughout her career. In her recent past, she’s developed seed impact investing funds for social businesses, she’s been an Investment Director at Idinvest, and prior to that, she was a Project Leader at management consultancy, Boston Consulting Group.

About Once

Once is a dating app that breaks the online dating model. Rather than using a traditional system of asking users to swipe through hundreds of faces to find people they like, Once does the hard work of filtering matches on their behalf.
Combining digital technology and a team of human matchmakers, the free Once app generates specifically targeted daily match for users at noon each day.  Since it was founded in 2015, Once has launched in 11 countries, the app has 4 million downloads with 700 000 monthly active users worldwide…and counting.


AWS startup customer Once is a dating app with a unique approach – users get one handpicked match every day at noon.


We spoke with Clémentine Lalande about the lessons learned from Once’s global expansion. She gave us three key insights:

1. Always be testing

“We’re a super data-driven company. Our business is the result of many many months of testing new iterations of our product.” Clémentine Lalande, COO and CFO at Once
Once didn’t begin life as the product it is today. Back when it was first launched in 2015, the product was incredibly simple. It asked people what their match preferences were, then once a day the app presented users with one person its algorithms suggested that person will like. The main revenue spend simply came from in-app ads.
Now the app uses a freemium model. It’s entirely free to use its core functionality, but now it has a range of extra features that users can pay for if they’d like to get more out of the app. For example, you can buy more than one profile match per day, or find out who your ‘secret admirers’ are, for example.
None of these new features began life perfect, and that’s absolutely fine. In Clémentine’s words, “It’s important to lead with imperfection. It can be hard to throw a new feature out to your customer base when you know it may fail, but the insight you learn from taking that leap will always give you valuable insight into which is the right way to go.
Follow the data. See what works. It’s so important to listen to your customers and track what your data is telling your people are reacting best to. When you find the right formula, focus your attention on making that feature the best it can be. If something’s not working, analyse the data from your customers to find out why. It may be possible to make changes to make a feature work, but don’t be afraid to lose features altogether either. When the data’s telling you people aren’t interested at all, that’s when you have to listen. That’s when you have to be decisive.

2. Hire people who share your vision

“Together with the CEO I spend more than half of my time looking for the right people.” Clémentine Lalande, COO and CFO at Once
Like most startups, the culture at Once is absolutely integral to their continued growth.
Once operates in 11 markets at the time of writing, and when they’re setting up new offices in new countries, sometimes it means working with very different cultures and languages. To get hires right in the dating world, they have to find people who are very aware of the local culture, and who are very connected to local influences, interests and the media landscape. If a person can couple that kind of on-the-ground insight with a strong knowledge of the dating sector, that’s the kind of person they need on their side.
For all startup sectors, it’s so important to hire people who completely get where your business is going in each market. And don’t be afraid to hire people who know more than you do about the market they’re working in either. It’s through listening to these people and using their local knowledge that you can iron out many of the problems that startups face when expanding into new markets.

3. Sometimes it pays to augment data with human expertise

In a very human business like dating, one cannot afford to overlook the human element.
“There’s so much the human eye can see that an algorithm can’t.” It takes more than understanding where a potential date lives, what age they are, and whether one user has read the same book as another to find the love of your life. Once’s disruption in the market is in taking the data from the algorithms it uses, and then augmenting that information with a human eye for people’s quirks and personalities. A real person can notice a wry smile in a photo, or a sense of humor, sarcasm, or even irony.
If your business is there to help humans make human decisions, it pays to have real people analysing the data and offering an intimate, curated experience.
And it’s the combination of data and human expertise that makes Once a disruptor in its sector.


You can listen to the Startup Stories podcast with Clémentine here. And if you’re interested to see what are some of the AWS services that Once is using, subscribe to the series and download the cheat sheet here.


*What is AWS Startup Stories?

AWS Startup Stories is a business series of podcasts published on the AWS Podcast channel that showcases the success stories of startups running on AWS. Heroes of each business talk about how they overcame challenges and used technology to solve problems, providing tips for companies facing similar issues. Learn more about the series and who’s part of them on the webpage here and never miss an episode by subscribing today!

Startup Lightning Talks from the AWS Summit San Francisco

This past April, the AWS Summit in San Francisco featured 11 lightning talks given by AWS startup customers and members of the AWS startup business development team. The talks covered topics ranging from serverless and AI to VC fundraising and cybersecurity.

Watch Here:


1. Automating Security in the Cloud: CloudPassage Director of Platform Infrastructure, Brett Langston

2. Data Driven from Day 0: Metabase Founder, Sameer Al-Sakran

3. Developing an Ecosystem of Software to Handle Your Life: Magic Co-founder, Nic Novak

4. How We Process Billions of Pixels of Imagery: Mapbox Product Manager, Camilla Mahon

5. Implementing Strategic Artificial Intelligence Using AWS: Vidora Co-founders, Phillip West and Abhik Majumdar

6. Partnerships and Business Development: AWS Principal BDM & VC BD, Jim Routh

7. Scaling Security Along with Your Teams: CloudCoreo CTO, Paul Allen

8. Going Serverless: Track CTO, Alex Cram

9. The Philosophy of Monitoring: Branch Co-founder, Dmitri Gaskin

10. VC Fundraising 101: AWS Startup Program Manager, Ryan Kiskis

11. Zero to Full Datacenter with Ansible: Spine Founder, Steve Salevan


Interested in learning more about other startups on AWS? Check out the Startups on Air video series where we travel around the world to interview different startups and learn about their product, company, and AWS usage.

AI or die

Why companies must invest in AI and how AWS is at the forefront of this phenomenon.

By Roy Ben-Alta
AWS Business Development for data analytics, machine learning, and artificial intelligence

If you ask 100 people for the definition of “artificial intelligence,” you’ll get at least 100 answers, if not more. At AWS, we define it as a service or system that can perform tasks that usually require human-level intelligence such as visual perception, speech recognition, decision making, or translation. The promise of AI is mainly around innovation. Today, if you ask CTOs and CIOs about their technical business priorities, most of them would include AI as one of their top three items.

The goal of AWS since day 1 is to take technology that has limited reach and make it available to many developers. We do it with storage, compute, data warehouse, data and analytics, and now with AI. Our mission is to democratize this concept and we are very excited to lower the costs and barrier to machine learning and AI so that organizations of all sizes can take advantage of these advanced technologies.

From computer vision systems for autonomous driving to FDA-approved medical imaging, AI at AWS has driven innovation in existing products or helped define entirely new categories of products for customers like Netflix, Pinterest, Airbnb, Capital One, and more. Our service is also used extensively at Amazon to decrease order delivery time with robotic fulfillment , to create novel features such as X-ray for Movies & TV Shows (shows themes, characters, and their interactions in video and text), to bring new experiences to life such as Amazon Echo, Amazon Alexa, and to the new deep learning-powered, line-free, checkout-free grocery store, Amazon Go.

It’s hard to find an area where you can’t apply AI today. For example, we are developing an early detection of diabetic complications. Diabetic retinopathy is one of the leading causes of blindness among men in the US, but it’s treatable and curable if you find it early enough. To detect it, you must look at initial changes in blood vessels in images of the eye. In our work, we train deep learning models to learn to distinguish between unhealthy eye images and healthy eye images. The models help to determine the odds for seemingly healthy eyes to become unhealthy in the future.

Amazon’s vision

The challenges of building sophisticated AI systems center mostly around scale: the datasets are large, training is computationally hungry, and inferring predictions can be challenging to do at scale or on lower-power and mobile devices.

Our vision is to use the expertise and lessons learned from customers and the thousands of engineers focused on AI at Amazon to put intelligence in the hands of as many developers as possible. We want AI to be available to everyone, irrespective of their level of technical skill or ability. Our approach breaks down into three main layers that all sit on top of the AWS infrastructure and network. We call this, collectively, “Amazon AI.”

Amazon AI offers AI services, AI platforms, and AI engines that provide different tools for application developers, data engineers, and data scientists to innovate, research, and create better products.

Customers have been using AWS to solve these general problems for years, and the ability to be able to access storage, GPUs, CPUs, and IoT services on demand has emerged as a perfect fit for intelligent systems in production. Due to our approach, AWS has become the center of gravity for AI, both at Amazon and for AWS customers.

If you want to learn more, we encourage you to follow our AWS AI Blog where we publish tutorials, insights, and news about AI at AWS.

Reinventing the banking model

Starling Bank’s New Banking Network in the Cloud


This week in AWS Startup Stories* we talked to Anne Boden, CEO and founder of Starling Bank – the new UK mobile-only current account built from scratch in the AWS Cloud. (If you are curious to learn more about their architecture, check out the latest video part of the series This is My Architecture, where Starling Bank’s CTO Greg Hawkins, talks about managing their privileges for releases on AWS via automation with Slack.)

Having worked at large banking institutions her whole career, Anne Boden felt that she was spending more and more of her time holding back the tide of new technology that looked set to change the banking industry. In an increasingly mobile, as-a-service retail environment, established banking models were fast becoming outdated and Anne saw that as an opportunity. She set about creating a bank more focused on customer freedom and control, and much more like the customer-centric on-demand businesses that have disrupted sectors like music and TV over the past decade. It was in that spirit that she founded Starling Bank back in 2014, and after staged investment over the past three years, Starling has now secured $70m in capital and launched UK-wide as of Spring 2017.

How it works

Users download the mobile app and can set up their new current account through the app within two minutes (with some valid UK ID). They can then fund their account by transferring money from another bank. Once the user has received their new Starling debit card (delivered within 5 working days of the account going live), they receive notifications each time they use it, and the app’s central ‘Pulse’ screen provides a single view of the account’s balance and their total spend on any given day to help with budgeting. The user also gets control of the kinds of tasks most banks need call centres for – you can lock and unlock your card with one button, and you can change the size of your agreed overdraft limit using a single sliding scale. Spending insights and tools to help users achieve Saving Goals are being introduced in summer 2017.


The app’s central ‘Pulse’ screen provides a single view of the account’s balance and their total spend on any given day to help with budgeting.


We spoke to Anne Boden to hear more about the app, and her vision for the banking industry and you can see the full transcript of the interview here.

Anne: Thanks for inviting me here today. After 35 years in the banking and technology industry, I decided to start a bank. So why was that? Well, my background, for starters. I was a computer science grad that started in the banking industry in the early 80s and spent my career going around the world, running technology functions, finance functions, and I got to a situation where I realised that banking was broken; the models were broken, and it is possible to build things in the Fintech world. For just a few thousands pounds, you could achieve the same results as something that would take perhaps tens of millions in a big bank. And it was following time spent in fintech that I decided to quit my job and start the adventure of starting a new bank.
Darren: Can you give us a bit of insight into how did you think about making the shift from a big company, big enterprise person to being a startup founder?

Anne: I had to do it. Basically, I came to the conclusion that it is possible to do things in the new world, with new sort of technologies that had been never before possible in the old enterprise world. I’d gone through periods of outsourcing and transforming and cost-cutting. I’d been through every single era of the enterprise CIO’s, CTO’s journey. I came to the conclusion that whilst I was focusing on repairing the financial system post-crisis, technology had dramatically changed. There were things that were not possible that nobody could do before. You could actually use lots of services, slot them together in an interesting way, and, above all, the regulator now encouraged it. The regulator now encouraged innovation, and I had to take the opportunity of making it happen.

Darren: Can you tell us about what really differentiates Starling Bank – what is it, from a product and a technology perspective, that makes your company different?

Anne: I spent a lot of my career defending an old banking model. It’s like holding back the tide. Old banks sell one product – usually started with the current account – and cross-sell and up-sell (and perhaps even mis-sell) another product. That was not defensible. Things had moved on. People were making decisions in a whole new world way, all over the world. People were shopping differently with Amazon. People were buying their music differently, but they were still doing their banking in an old-fashioned way. So what was the world going to change? I felt that a model where a customer is captured and then sold lots and lots of other products and didn’t have a choice, well, it was too old-fashioned.

Things had moved on. I saw a world where a company would do one thing really, really well and focus on what it’s really good at. Then live in a marketplace with other products being provided that will produce the whole suite of financial services that a customer would enjoy. I’m not arrogant enough to think that I can be the best provider, or the best mortgage, the best long-term saving product. We’ll do the best checking account in the world, and we’ll link into payment systems. We’ll build our own technology stack, and we’ll deliver that alongside other products, provided by other vendors on their balance sheets, so we can give the customer the best possible solution.
Darren: When you developed the Starling Bank idea and decided to bring it to market, what was the resistance that you received, and how did you go about understanding that resistance in planning to engage appropriately to resolve any of the regulatory concerns?

Anne: Starting a bank is not for the faint-hearted. It is very, very difficult. Hurdles are very high and quite rightly so. We look after people’s money and money is very, very important; therefore, the regulator insists on top quality services, top quality systems, the best processes, and to ensure the customers’ money is safe because all our balances, well, up to £85,000 are covered by the Financial Services Guarantee Scheme.

So the regulator sets the higher standard and doesn’t actually lower them because you’re a startup. What they do is to help you through the process. When we started this process back in the beginning of 2014 and we went to the regulator and said, “We want to do it on the Cloud because that gives the best option of actually delivering the service quality we need, the resilience we need, at a variable cost.” They all scratched their heads and said, “Wasn’t possible.”

During 2014, 2015, the regulator worked very hard with us to make sure that it was possible, and we’re very proud to now say that we’re a new bank, offering retail current account services in the UK. We’re also the 13th member of the Faster Payment Service in the UK; therefore, we offer services that no other banks, apart from those 13, 14 banks can deliver and we’re in the Cloud.
Darren: Is there any guidance that you’d give a Fintech founder or startup executive that’s interested in, in the same space as you’re in when they’re thinking about approaching a regulator or building a business plan? Any one or two pieces of advice that you think would really help them advance their thinking, specific to the regulator?

Anne: Read the regulations. Don’t read commentary on the regulations, become familiar with them. You know, make them your friend. Those regulations are setting out to actually make things fairer and resilient for customers. And as a startup founder, you should have the same objectives. You care about customers, as well. Those regulations are your friend; read them, enjoy them, and actually have good conversations with the regulators.

There’s an easy way for those Fintechs out there that want to offer banking services, apps to consumers or small businesses. We, at Starling Bank, a couple of weeks ago, launched our Starling Developer Platform. This has a full suite of APIs, to bank accounts, payment APIs, create account APIs, everything you need to set up a banking service to consumers. We are very, very proud that we’re the only bank in the UK to offer those on a full retail bank account. We are the 13th member of Faster Payments, so you can directly connect into faster payments, as well. So we’re very proud of this, and we’re encouraging all these Fintech startups out there to start using them – they’re free.
Darren: Can you help me understand the difference between the Developer Platform and the Marketplace, and how should startups consider those two different opportunities differently when considering working with you?

Anne: In a nutshell: the Marketplace is the shop front – it’s part of the Starling app where we will provide our customers with access to a range of financial products and services, in a very convenient way. They can use their own data to find the best deals for them (rather than being sold to by their bank which is typically the ‘old’ banking model for current accounts). For example, the Marketplace will include loan products, savings products, long-term investing products. Our recently announced partners, Moneybox and TransferWise are just a couple of examples of how that works.

On the other hand, our Developer Platform is the back of house – it’s where everything sits ready to be accessed via Developer APIs. Whether you’re a small startup or a large organisation that wants to use the power of a bank account behind an app or your service, you can do so. Our APIs are free to use. Go ahead and start using them.

You can find out more about both of these from our Marketplace website.
Darren: What steps would you recommend listeners take to become a little more familiar with the Starling Developer Platform and take those initial steps to actually become a part of this fabric that you’re building?

Anne: If you want to start a business, you have to actually have to get stuck in and start doing stuff Please go onto our website, our developer portal, join the Slack channel and start using these things. Engage and get some help from us because we want you to start using these APIs, and start creating wonderful things for your customers.
Darren: You took a little bit of a different approach to funding, rather than going to an angel investor or to a venture capital fund, you took a different approach to getting started. Can you share with our listeners what you did and why you chose to go down that path?

Anne: VCs look to invest in a business that looks like other businesses. They’re at a certain stage. They require so much funding. They look something that’s been done before, and when you’re coming along with something that’s never, ever been done before, a new Fintech Bank that’s built on new technologies. It doesn’t fit into any of the boxes the VCs have seen before. So what I did was to leverage my network. I’m very grateful that I had lots of people who were out there that helped me along the road.

You know, some of the big consultancies helped me, people gave me premises. People loaned me staff, and I will be ever grateful for those people that helped me on the way. But when we spent a couple of years in this phase, we then raised substantial capital from an investor that saw the potential of a new Fintech Bank, based on new technology, with a new business model that had never been done before.
Darren: In larger enterprises, internal meetings can literally suck the life out of a good idea team. Can you share how do you take internal meetings and make them different, make them powerful?

Anne: I think internal meetings and internal presentations can kill a company. The longer you spend preparing presentations for each other, the longer it’s going to take to get something out there to customers for them to see, approve and enhance your ideas, so everything we do at Starling is about customers. Everything we prepare is something that’ll eventually go in front of a real customer. Don’t present to each other internally. Don’t talk about politicking to each other internally. The only thing that matters is that customers really want what Starling delivers, and we take customer feedback, not just feedback from each other.
Darren: There are many research studies saying that the access to the right talent is one of the biggest challenges associated with Fintech innovation and Fintech growth. Can you talk about how do you identify a source and attract the talent that you want to join you in Starling?

Anne: We’re very lucky in Starling. We’re doing something very exciting. We’re quite unique in what we’re doing. We can attract the best talent from all over the world but we hire for strengths. We hire for those people that really have big strengths, that think outside the box, they’re going to actually stretch us and challenge us. Big banks, big organisations are full of people who sit within the boundaries, who are not going to rock the boat. We look for those people that are going be real characters in the organisation that can actually challenge us, that can push us, can actually use their strengths to come up with innovation and ideas that could change the world for our customers one day.
Darren: If you were to give one piece of valuable feedback to a start-up founder or someone considering starting a new business, what would that one piece of valuable feedback be?

Anne: Never give up. My advice to those founders out there that have a great vision, that really want to do something different, is to pursue that vision. Don’t water it down, pursue it. Don’t get put off because the only ideas that would succeed and change this fabric of the world live in at the moment, the ones that are different.
So many people said to me that, “You can’t start a bank. Do something simple.” No. I wanted to create the bank that would change financial services for the better.
You can listen to the Startup Stories podcast with Anne Boden here. And if you’re interested to see what are some of the AWS services that Unmade is using, subscribe to the series and download the cheat sheet here.


*What is AWS Startup Stories?

AWS Startup Stories is a business series of podcasts published on the AWS Podcast channel that showcases the success stories of startups running on AWS. Heroes of each business talk about how they overcame challenges and used technology to solve problems, providing tips for companies facing similar issues. Learn more about the series and who’s part of them on the webpage here and never miss an episode by subscribing today!