Announcing our new podcast: Data Science Storytime!


We’re excited to announce the debut of Data Science Storytime, a podcast all about data, science, stories, and time.

In Episode 1, Kyle Wild (Keen IO Co-founder and CEO) and I brainstorm the concept of the show, debate the difference between data science and non-data science, and recount the story of the action-hero data scientist who skipped a meeting with Kyle to rescue a little girl trapped on a mountain (or so he assumes).

Tune in for all this and plenty more as we consider the many ways data shapes our lives and activates our imagination, today and in the future.

If you like what you hear, make sure to subscribe to get a new episode every two weeks. And follow us on Twitter @dsstorytime. Thanks, and enjoy the show!

Kevin Wofsy

Teacher, traveler, storyteller

An Open Source Conversation with OpenAQ

OpenAQ logo

Last month, I sat down with Christa Hasenkopf and Joe Flasher from OpenAQ, one of the first open, real-time, air quality data platforms to talk about open environmental data, community building, analytics, and open source. I hope you enjoy the interview!

Taylor: Could you both tell me a little bit about yourselves, and how y'all got interested in environmental data?

Christa: I’m an atmospheric scientist, and my background for my doctoral work was on ‘air quality’ on a moon of Saturn, Titan. As I progressed through my career, I got more interested in air pollution here on Earth, and realized I could apply the same skills I’d gained in my graduate training to do something more Earth-centric.

That took Joe, my husband, and I to Mongolia, where I was doing research in one of the most polluted places in the world: Ulaanbaatar, Mongolia. As a side project, Joe and I worked together with colleagues at the National University of Mongolia to launch a little open air quality data project that measured air quality and then sent out the data automatically to Twitter and Facebook. It was such a simple thing, but the impact of that work felt way more significant to me than my research. It also seemed more impactful to the community we were in, and that experience led us down this path of being interested in open-air quality across the world. As we later realized, there are about 5-8 million air quality data points produced each day around the world by official or government-level entities in disparate and sometimes temporary forms but that aren’t easily accessible in aggregate.

Joe: I was a trained as an astrophysicist but then I quickly moved into software development and so when Christa and I were living in Mongolia, I think we just sort of looked around and saw things that didn’t exist that we could make, we went ahead and did that. Open data was always something that seemed like the right thing to do. Especially when it’s data that affects everyone, like air quality data. I think we have the tools together: I had the software development skills and Christa with atmospheric science to put things in place that could really help people.

Taylor: That’s awesome. Could you tell me more about the OpenAQ Project?

Christa: Basically what we do is we aggregate air quality data from across the world and put it one format in one place, so that anyone can access that data. And the reason we do that is because there is still a huge access gap between all of the real-time air quality data publicly produced across the world and the many sectors for the public good that could use these data. Sectors like: public health research or policy applications, or an app developer who wants to make an app of global air quality data. Or say even a low cost-sensor group that wants to measure indoor air quality and also know what the outdoor air quality is like so you know when to open your windows if you live in a place like Dhaka, Bangladesh or Beijing, China. And so by putting the data in this universal format, many people can do all kinds of things with them.

Joe: Yeah, I think we’re just focused on two things. One is getting all the underlying air quality data collected in one place and making it accessible, and the main way to do that is with an API that people can build upon. And then we also have some of these other tools that Christa mentioned to help groups examine the data and look at the data, but meshing that with tools built by people in the community. Because I think the chances of building the best thing right away is very small. What we’re trying to do is make the data openly available to as many people as possible. Because a lot of these solutions are based in local context in a community.

Taylor: That’s really cool. I have heard from other organizations that when you open up the data, you democratize the data because it’s available for the people.

I read the Community Impact document for the project and you had mentioned that some researchers from NASA and NSF and UNICEF are using the data from OpenAQ. I was wondering, what are some other cool applications of the data that you are seeing?

Christa: I think when we first started the project it was all about the data. It was all about collecting the data, getting as much data as we could. And as we went on, we realized, pretty quickly, it’s actually about the community we are building around it and the stuff that people are building. And so there are a few different pieces.

One thing we have seen is a journalist taking OpenAQ-aggregated data to analyze air quality data in their local communities. There is a journalist in Ulaanbaatar, Mongolia, who has published a few data-driven articles about air quality in Ulaanbaatar relative to Beijing. There are some developers who have built packages that make the data more accessible to people using different programming languages.

There is a statistician in Barcelona, Spain, who has built a package in R that makes the data very accessible in R and makes cool visualizations. This person made a visualization where she analyzed fireworks across the US on the Fourth of July. She did a time series, and you could see a map of the US, and as 9pm rolled around in the various time zones you can see air quality change across the US as the fireworks went off.

There is a developer in New Delhi, India, who has made a global air quality app and Facebook bot that compares air quality in New Delhi to other places or will send you alerts. We feel these usages point to the power of democratizing data. No one person or one entity can come up with all the possible use-cases themselves, but when it’s put out there in a global basis, you’re not sure where it’s going to go.

Joe: We have also been used by some commercial entities to do weather modeling, pollution forecasting. Christa, there was an education use case right… Was it Purdue?

Christa: Yeah, a professor there is using it for his classroom to bring in outdoor air quality data to indoor air quality models. Students pick a place around the world. They use outdoor quality data from there to model what indoor air quality would look like, so they are not just modelling air quality data in Seattle, which is pretty good air quality. But they are also pulling in places like Jakarta or Dhaka, to see what air quality would be like indoors, based on the outdoor parameters.

Low cost sensor groups have contacted us because they are interested in getting their air quality data shared on our platform. These groups would like their data to be accessible in universal ways so that more people can do cool stuff with it too. Right now, for our platform, we have government-level data, some research-grade data, and a future direction we are hoping to move is low-cost sensors, too.

Taylor: As you have touched on, I read that OpenAQ has community members over four continents and aggregated 16 million data points from 24 countries. I am curious, how were you able to grow the project to have all that data coming in?

Christa: We have a couple ways of getting the word out about OpenAQ and getting people interested in their local community and to engage with the OpenAQ global community. One way is we do in-person. We visit places that are facing what our community calls “air-inequality” - extremely poor air quality in a given location - and we have a workshop that will convene various people, not just scientists, not just software developers, but also artists, policy makers, people working in air quality monitoring within a given government, and educators. We focus on getting them all in the same room, working on ways they can use open data to advance fighting air inequality in their area.

So far, we’ve held a workshop in Ulaanbaatar, and we have had meetups in San Francisco and DC, since that’s where we’re based. We have also done presentations in the UK, Spain, and Italy. We are about to have our next work shop in Delhi in November. We’re getting the word out through the workshops, the meetups, on Twitter, we have a slack channel. Participation in the OpenAQ Community has been growing organically in terms of participation. Whether it’s in terms of the development end, pulling in more data, or in the application of the data. We tend to get more people interested in using the data once they are aggregated rather than in those helping to build ways to add in more data, which makes sense. We are always in need of more people helping on helping build and improve the platform.

Joe: In the beginning it was very interesting how we decided to add in new sources - there are so many possible ones to add from different places. You could look at a map and see where we had been, because whenever we would go somewhere to give a presentation we would want to make sure we had local air quality data. So before we would give a presentation in the UK, we would make sure we had some UK data. Data has been added like that and according to interest for particular locations in the community.

An interesting thing that we are able to do now with the Keen analytics, is that we can look at what data people are requesting most, and even if we don’t have the data, they might still be requesting it. So we can see from the analytics where we should potentially focus on bringing in new data. So it has been a very helpful way for us to be more data-driven when looking at what data to bring in.

Taylor: When you have a project that is an open source or an open data platform, your time becomes very valuable. You want to put your resources where they are needed most.

Joe: We want to be as data-driven as possible. And it’s hard for us to talk directly to all of the people who are using the data. I think we have a similar problem to anyone who opens up data completely. We don’t require anyone to sign up for anything. We have a lot more people using the data than we know about. We can see just from how many times the data is getting grabbed that it is popular. The analytics really help us, sort of tell something about those use cases, even if we don’t know of them specifically.

Taylor: Could you explain your use of Keen for everyone so they can understand how you are figuring that out?

Joe: The API is powered by a Node.js application that includes the Keen library. Every request that comes in goes to Keen and so we have a way to sift through it.

We don’t track any use, any sign ups, any API keys or anything at the moment. We don’t see addresses that come in from the requests, they are anonymous. But we do get tons of data that we can look through. And that was super-helpful. It gave me two lines of code that go into my API and then all my requests come into Keen and I can handle all the queries there.

We do all the normal things that you would do: total counts of requests that are coming in, we look at our end points usage statistics. This is also very interesting, we were looking at this the other day, not all our endpoints are equal and our system has some that are much heavier computationally and have taken a lot more work to create. It’s interesting to look at how much they are getting hit versus how much effort we put into making them. We can see the most popular endpoints that we have, and then we can also see ones that aren’t used as much. This helps me figure out what and how to prioritize efforts. We have a very database request heavy system. Knowing specifically the sort of queries that are coming in really helps us optimize the database to get the most out of it and make it most cost efficient.

Taylor: That’s interesting that you were able to gauge how much effort you put into some of those endpoints and then look their usage. When you don’t have that data, you are just guessing. It can also help you see that maybe there should be more education on some endpoints.

Why was it important to y'all for this platform to be open source?

Christa: So one of the major reasons we built this platform and made it open source is that we noticed a few of the groups who were gathering this sort of data and the data themselves weren’t open, nor was it clear how they were gathered. There was a few efforts, some commercial, some unclear if they were commercial or public, there were some researchers who do this. And everyone was doing it in a different way or wasn’t entirely clear how it was being done. We saw a lot of efforts having to duplicate what another effort was doing because their work wasn’t open. So we thought if someone just makes the data open and also the platform itself open source and transparent, so it’s clear how we’re grabbing the data - that’s a huge reason to do it. The other reason we chose, was that when we first started this, there was just two of us in our little basement apartment. It’s a big project, and we knew we would need help. So making it open source was an obvious route to find folks interested in helping us around the world.

Joe: I think the other piece here is that open source and free aren’t the same thing. But they are often times lumped together. Beyond just open source, I think what we wanted to be was freely available, because air pollution disproportionately affects people in developing countries. They are the ones that would generally have to pay for this data or don’t have access to them at all. And so we wanted to break down that barrier and let everyone have access to the data, making tools, and not have that be a roadblock.

Taylor: To end things, what is the most exciting thing about the project to each of y'all?

Christa: I think for me it’s definitely interacting with people in specific communities and sharing the data in the open. I love that, it’s the best.

Joe: For me it is definitely having people build something on top of it. As a developer, that’s the best feeling. In fact the first workshop we did in Mongolia, there was a developer who, just over the weekend, built an interface, like a much better exploration interface for the data than what I had initially made. Which was great, right? So I think we used that, and pointed people to that over and over and over again, because I think it took us probably, I don’t know, six months until we finally rolled out sort of a different exploration interface for the data. And that was just made by one community member and that was awesome.

I wanted to thank Christa and Joe for taking the time to talk to me about OpenAQ. I don’t know about you, but I learned a lot! It is a wonderful project that you should definitely check out.

Keen IO has an open source software discount that is available to any open source or open data project. We’d love to hear more about your project of any size and share more details about the discount. We’d especially like to hear about how you are using Keen IO or any analytics within your project. Please feel free to reach out to for more info.

A cat typing email really quickly

Taylor Barnett

developer, community builder, and huge fan of tacos

IoT Analytics over time with Keen and Scriptr

This is a guest post written by Ed Borden, Evangelist at, VP Ads at Soofa.

A large part of Internet of Things applications typically involves management operations; you want to know what your assets are doing right now and if you need to react in some way.

I think about that ‘realtime’ domain as an area with a particular set of tools, challenges, and thought processes, and the 'historical’ domain as another. In the historical domain of IoT, I think about what the high-value information will be in the form of questions, like:

  • How long was this parking space unoccupied last week?
  • Which truck in my fleet was in service the longest?
  • How long was this machine in power-saving mode?
  • What are the 5 best and worst performers in this group?

For these types of questions, Keen is my go-to. However, architecting the answers to these questions takes a little bit of shifting in your architecture design.

You might typically push events to Keen as they are happening, but if you are only pushing data based on the changes in state of a thing (as is the common model for asset tracking/management-type scenarios), you won’t have enough information to ask these types of questions since you need to know how long the thing has been in each state. So, when an event comes in:

  1. you need to cache the timestamp and state the thing is going into, and
  2. create an event based on the previous cached state that was just transitioned out of, which must include the “duration” of that state.

Once this is done, Keen really shines at the rest! You can simply do a “sum” query on the durations of events, filtering by groups of devices and timeframes.

The below snippet using Keen IO will tell you how long a parking space was occupied:

var timeOccupied = new Keen.Query("sum", {
   event_collection: "deviceUpdates",
   target_property: "duration",
   timeframe: "this_7_days",
   filters: [ 
      { operator: "eq",
        property_name: "hardwareId",
        property_value: hardwareId
        operator: "eq",
        property_name: "deviceState",
        property_value: "occupied"

If you want to sum all of the parking spots on the street, give each event a “streetId” and filter by that instead of “hardwareId”.

The below snippet will tell you how many parking spaces were occupied longer than an hour (because street parking is limited to one hour and you want to know where the most violations are occurring):

var violationsOccurred = new Keen.Query("count", {
   event_collection: "deviceUpdates",
   target_property: "duration",
   timeframe: "this_7_days",
   filters: [ 
      { operator: "gt",
        property_name: "duration",
        property_value: 60
        operator: "eq",
        property_name: "deviceState",
        property_value: "occupied"

I could do this all day! That’s because once you have this sort of infrastructure in place, the sky really is the limit on the types of high-value information you can extract. And you did this all without managing any database infrastructure or API surface of your own?!

So, how do we implement the complete system? Here Keen can use a little help from an IoT service called has a web-based IDE which lets you write some Javascript, hit “Save”, and that code instantly becomes a hosted webservice with a URL. Using’s fast local storage module and Keen connector, we can do some caching and light processing on that 'in-flight’ datastream in a simple and expressive way that ALSO requires no devops/infrastructure! A match made in #NoDevOps heaven. It would look like this:

//Any POST body to your Scriptr script's URL can be accessed 
//with the 'request' object  
var eventData = JSON.parse(request.rawBody);

//The 'storage' object is a key/value store which we access with 
//the current device's ID
var lastEventData = storage.local[eventData.hardwareId];

//In this example, we'll assume these are epoch times, otherwise we'd convert
var eventDuration = eventData.timestamp - lastEventData.timestamp; 

//Add the duration to the last event data object which we'll push to Keen
lastEventData.eventDuration = eventDuration; 

//This is the -> connector
var keenModule = require('../../modules/keenio/keenioclient'); 
var keen = new keenModule.Keenio("my_Keen_credentials");

//Next, record the Keen event
  collection: "deviceUpdates",
  data: lastEventData

//Cache the current event by the device's ID
storage.local[eventData.hardwareId] = eventData; 

Below, you can see this in the Scriptr IDE:


There you go – Big IoT Data! You can learn more about the platform here or the Scriptr -> Keen connector here.

Ed Borden

Evangelist at Scriptr.IO, VP Ads at Soofa

Six steps to building successful customer relationships

Analytics is a complex beast. When you think about everything you want to build and track, it’s easy to get carried away. That’s why at Keen, we created a API-based platform with tools that make creating something from nothing much easier. Instead of doing it alone, let’s build together!

Last year we expanded from a self-service tool to an enterprise product serving large organizations with increasingly complex needs. In addition to advanced features, we also added hands-on help and organizational planning with the Customer Success Team.

As we’ve worked with bigger and bigger organizations, we’ve found the following framework to be really valuable.

1. Evaluate your customer’s needs

This may seem obvious but asking the most basic questions is really important. Before you take a step forward, take the time to ask meaningful questions about your customer’s business.

At root, what are you trying to accomplish? And how can you work together to meet these goals?

It’s easy to get carried away with all the things that are possible, but getting mired in details that are not mission critical takes attention away from the primary goals. Remember to stay focused on why your product is needed.

This shift in the conversation from the “nice-to-haves” to primary business goals helps identify which tasks might not be effective/good uses of effort. By using this focus, you can drive home and highlight the core value proposition of your service. In our case at Keen IO: analytics.

By making sure our customers understand what we’re good at - delivering a stable platform for data ingestion, analysis, and visualization - we can continue to showcase the progress they’ve accomplished in a short amount of time, the good work they’re continuing to accomplish, and then coincidentally how good of a job we are doing as their platform provider.

2. Stay Organized

When we work on customer integrations, staying organized is crucial. A Gantt Chart or Project Plan is my preferred method of staying on top of my delivery timeline and critical deadlines. This shared view helps the customer stay abreast of expected timelines, and avoid any misunderstandings in communication.

Sample Project Overview

Don’t skip this important step: Communicate timelines for when you are going to do something.

Nothing is more frustrating that making a request to a team and getting no response. Respond quickly if even just to say “I’m looking into it.” Some answers may take longer than others to reply to, and some customer requests may not be completed overnight. Providing a timeline is providing a reasonable expectation, and communicating this information in a structured way is key.

3. Maintain regular communication

When your product evolves to include new features that may be helpful, remember to let your customers know.

I tend to write frank and friendly emails to describe new feature sets and partnerships, and at times I also send along blog articles written by our team. It always feels good to find out about a change to something you’re used to or something completely new. Feature announcements have been a way for our customers to share excitement for what is upcoming for Keen.

Don’t be shy about advocating your own product’s features and regularly. By recommending use of unused or newer features, you can help your customer figure out how they can be using your technology better. There may be a more efficient or effective way to do what they’re doing.

Plus, by keeping in touch and knowing what our customers are trying to do, we can share lessons from customers doing similar things. It gives us the opportunity to reassure customers, remind them that they’re not alone in thinking about a problem in a particular way, and that they’ve chosen the right approach and technical solution for their project.

I make it a point to share helpful solutions with customers even when they don’t directly involve our product. A conversation like this has the added benefit of letting your customer know you’re available to bounce ideas off of.

Even when there’s bad news, we’ve found that customers are very appreciative when they receive a message directly from us. They appreciate the personal message and helps to receive a heads-up from you before finding out about a patch or planned downtime from anywhere else.

An added bonus of staying in touch and updating customers on your product’s best practices is that you can protect your operational teams from suboptimal customer usage patterns that can become stressful or expensive in the long term.

4. Periodically recheck goals

To keep abreast of your customers’ day-to-day operational needs and stay relevant to their business, it helps to establish periodic check-ins. At Keen we do these on a quarterly basis.

Each quarter we run an in-depth integration analysis and spend time doing a business review with our customers. Sometimes, this turns out to be a big investment of time. So why do we do this?

For one thing, it feels good to help customers succeed. But also, our customers’ success is our success. In the long run, we’ve found that the customers we’ve helped attain their own success tend to recommend Keen IO to others.

When we help customers achieve their current business goals, we build trust with them. It makes the organizations and companies we work with more likely to continue the relationship and build more integrations on top of Keen.

5. Include the customer in the product feedback loop

We share our product roadmap with our customers and actively ask what our platform’s current limitations are. Including our customers in the Product Roadmap, and allowing their input to drive the future of Keen’s product is core to our methodology for success!  

As members of the Customer Success team, we become experts on the best ways to use Keen. In the process of collecting genuine customer input and bringing our customers up to speed on what’s next, we’ve gained valuable data on how to help future customers undergoing integrations too!

At times, building a requested piece of technology to help one specific customer’s goal in our platform has led to creating new product that has allowed all of our customers realize benefits.

In these Product Roadmap Sessions with our Chief of Product, our customers have even shared with us amazing tools they’re proud of and have spent time building on top of our open source toolsets. These have become fantastic opportunities to cross-promote and build a partnership, and deeply meaningful moments to learn from the people and their use cases we originally built the platform for.

6. Be yourself.

You can’t forget or unlearn how to be yourself, so bring your full self and best traits of yourself to work. If you’re fun, quirky, funny, or clumsy (I may or may not be some of these things 😜 ), show that side of who you are. Because if you are being your true self, it shows. Your genuine feelings and empathy, the moments you’re happy or sorry that you let your customer down conveys your message in the most clear and honest way possible.

Thinking about ways to do right by your customers? Do you have some of your own tips or style of working with users to share? Please leave a comment or start a conversation over DM, you’ll find me on Twitter as @jandwiches. 🍞

Maggie Jan

Data Scientist, Engineer, Teacher & Learner

Introducing: Open Source Cohort Analysis

Now you can build your own cohort analysis tools, with total control over the logic, look, and feel.

Today we’re releasing a new open source tool for cohort analysis. Cohort analysis is incredibly valuable when you’re trying to understand retention and patterns of behavior over time. If you’re not familiar with retention analysis by cohort, you can read more about the fundamental concepts here.


Outside of the obvious community benefits of open source contributions, there are a few reasons we wanted to share this simple tool:

  1. Easier cohort and retention analysis on Keen IO data You’ve always been able to run retention analysis on Keen data, but this is the first time we’ve released a tool for visualizing the results.
  2. Open source analytics building blocks Keen IO’sanalytics building blocks enable super custom, powerful analysis. Looking at the source code, you can see how in looping over a simple funnel analysis you can build this detailed behavior view. What else could you build with these powerful primitives?
  3. Give developers totally customized cohort analyses based on their business If you’ve ever been frustrated that the retention views in your analytics tools don’t quite match how your business works, or didn’t quite display the information in a way that made sense to you, now you have something to fork and make your own. As with most things we build here at Keen IO, you could even white label something like this in your product.

To start running your own cohort analysis you can create a free Keen IO project and fork our open source repo. We hope you’ll find this useful, and share your feedback in the Keen IO community slack.

Happy coding

How I Wrapped My Head Around Analytics-as-a-Service

In July I joined Keen IO, transitioning from working with organizations focused on the software development lifecycle (SDLC) to data analytics. Keen’s analytics SaaS is an end-to-end platform that allows organizations to approach data from an analytics-as-code perspective. To speed my learning process I began creating comparisons across the two industries to better understand the value and benefits that customers glean from using an API-centric analytics platform. (We call it the Intelligence API.)

In this post I’ll be sharing my thought process as I developed a deeper understanding of analytics and how it relates to SDLC concepts: specifically agile, continuous integration, continuous deployment, DevOps, and infrastructure-as-code. For a bit more background on each of these terms, feel free to read my previous blog post.

Applying Agile to Analytics

Agile is no longer just a software development term. It is now ubiquitous across marketing, sales, and organizational design. The primary principles of agile revolve around delivering what the customer needs through short sprints involving collaborative teams.

As I started contemplating analytics-as-a-service, I discovered that organizations want to be able to start collecting data on web, mobile, or IoT devices with ease and almost immediately, rather than having a drawn-out process of building an entire in-house analytics infrastructure from scratch.

The goal is that the heavy lifting should be taken care of on the backend by a service that can be responsive to peaks and valleys and the projected growth of the data collected. It doesn’t take an organization long to get started with an AWS server, and analytics should be no different, where you should be able to start making data-driven decisions to guide product direction, customer acquisition, and resource allocation strategy within days.

Achieving Continuous Integration

Continuous integration grew out of a need to add automation to agile practices, first starting with the concept of accomplishing automated unit tests on the host machine of a developer. This quick feedback allowed developers to fix their code as it was still fresh in their minds and get instant feedback regarding quality.

By using an analytics-as-code approach via API, developers can automatically gather data from cached queries, allowing these organizations to quickly ask questions of large datasets and return near-instant results. This ability to run complex queries without a lag-time allows analysts and business leaders to build momentum on ideas and begin executing on their insights in the time it takes to run a CI build.

Continuous Delivery and Deployment of Data

Continuous delivery and deployment started to become ubiquitous as top web organizations began promoting their ability to roll out code to subsets of their user bases for A/B tests in production, with the ability to quickly deploy fixes and updates while production was still running.

I found this process similar to the way analytics-as-a-service provides flexibility with data models, allowing users to collect and store unstructured data that can be analyzed in the future alongside yet-to-be-collected data from emerging technologies such as Internet of Things, Virtual Reality (VR) and Augmented Reality (AR). In this way, organizations never have to limit their future analytics capabilities by being forced into an overly rigid data model today.

Analytics Through the Lens of DevOps

While all of the unit and production testing grew in importance, organizations realized that they needed to adapt their IT operations teams to be more flexible and able to respond to internal teams’ requests. This led to the prominence of DevOps, where traditionally siloed operation teams became part of agile development teams, with the goal of delivering configured infrastructure on demand.

With analytics-as-a-service, organizations don’t need to rely on specialized data scientists, data engineers, database architects, and datacenter architects to deliver powerful analytics capabilities. Instead, the ability to ask and answer complex questions via code allows every team, from sales to marketing and product to engineering to begin discovering value.

If all of these teams can easily access, query, and customize their data views to match their specific needs then their day-to-day operations will be optimized and they essentially have a data scientist on each of their teams. One great thing I learned about Keen was that companies can even provide this ability to their own customers by integrating data visualizations directly into their products as a native part of the user experience.

From infrastructure-as-code to analytics-as-code

The most exciting evolution that unlocks all of the above capabilities for the SDLC is the adoption of infrastructure-as-code. Initially popularized by Amazon, infrastructure-as-code is now a core tenet of many IaaS or PaaS offerings, where you’re able to modify, setup, or tear down your infrastructure by utilizing an API or CLI.

Admittedly, not every analytics-as-a-service provider follows this model, but Keen has always maintained the API as the backbone of the service, with all analytics capabilities built on top of it: collection, storage, query, visualization, access, account provisioning, and more being added all the time. Since our customers are able to use our services in a programmatic fashion (a la: analytics-as-code), they are able to scale from 1 to thousands of unique projects, collections or analysis by writing a few lines of code. They don’t need to build up a huge in-house infrastructure or assemble a specialized IT and data science team to run the system. A developer is all that’s required.

Closing Thoughts

This post is by no means trying to make a comprehensive comparison of every aspect of these technologies. My goal was to walk through my own thought process in case it helps others with an SDLC background make sense of the comparatively new field of analytics-as-a-service.

If you’d like to discuss these ideas in more detail or if you have any follow-up questions about Keen, analytics-as-a-service, or analytics-as-code, I’d be happy to chat. Feel free to reach out to me at

Vladi Semenov

Strategic, Individualizer, Relator, NBA Fan

25 Examples of Native Analytics Data Designs in Modern Products

Data is so ubiquitous, we are sometimes oblivious to just how much of it we interact with—and how many companies are making it a core part of their product. Whether you’re aware of it or not, product leaders across industries are using data to drive engagement and prove value to their end-users. From Fitbit and Medium to Spotify and Slack, data is being leveraged not just for internal decision-making, but as an external product offering and differentiator.

These data-as-product features, often displayed as user-facing dashboards, are known as “native analytics” because they are offered natively within the context of the customer experience. We’ve gathered 25 examples of native analytics in modern software to highlight their power and hopefully inspire their further adoption.

Ahrefs Lets Website Owners Drill Down on Referrers

Every day, Ahrefs crawls 4 billion web pages, delivering a dense but digestible array of actionable insights from 12 trillion known links to website owners (and competitors), including referrers, social mentions, keyword searches, and a variety of site rankings.

AirBnB Helps Hosts Improve their Ratings and Revenue

In addition to providing intimate housing options in 161 countries to 60M+ guests, Airbnb also reminds its more than 600,000 hosts of the fruits of their labors—with earnings reports—and gently nudges them to provide positive guest experiences—with response rates and guest ratings.

Etsy Helps Build Dream Businesses

The go-to online shop Etsy, which boasts 35M+ products, provides its 1.5M+ sellers with engagement and sales data to help them turn their passion into the business of their dreams.

Eventbrite Alerts Organizers to Sales and Check-ins

Event organizers use Eventbrite to process 4M tickets a month to 2M events in 187 countries. They also turn to Eventbrite for real-time information, to stay up to date with ticket sales and revenue, to track day-of check-ins, and to understand how to better serve and connect with their attendees.

Facebook Expands Reach of Paid Services

With Facebook striving to take a bigger bite out of Google’s share of online ad sales, its strategic use of data has spread beyond the already robust Facebook Ads Manager to comprehensive metrics for Pages, including, of course, key opportunities to “boost” posts.

Fitbit Helps Users Reach Their Fitness Goals

Fitbit’s robust app, connected to any of its eight activity trackers, allows its 17M+ worldwide active users to track steps, distance, and active minutes to help them stay fit; track weight change, calories, and water intake to stay on pace with weight goals; and track sleep stats to help improve energy levels.

GitHub Tracks Evolving Code Bases

GitHub, the world’s largest host of source code with 35M+ repositories, allows its 14M+ users to gain visibility into their evolving code bases by tracking clones, views, visitors, commits, weekly additions and deletions, and team member activity.

Intercom Targets Tools—and Data—to Users’ Needs

Intercom, the “simple, personal, fun” customer communications platform, delivers targeted data-driven insights depending on which of the platform’s three products a team uses: Acquire tracks open, click, and reply rates; Engage tracks user profiles and activity stats; and Resolve tracks conversations, replies, and response times.

Jawbone UP Enables Ecosystem of Fitness Apps with Open API

Jawbone’s four UP trackers helps users hit fitness goals by providing insights related to heart rate, meals, mood, sleep, and physical activity both in its award-winning app, and through an extensive ecosystem of apps that draw data from the platform’s open API.

LinkedIn Premium Tracks Funnel Conversions

LinkedIn’s Premium suite of networking and brand-building tools helps demonstrate the ROI of sponsored campaigns by providing users with visibility into their engagement funnel—from impression, to click, to interaction, to acquired follower.

Medium Provides Publishers with Key Reader Metrics

Though Medium’s model is sometimes murky—publishing platform, publication, or social network?—it provides clear insights to its writers (or is that publishers?) in the form of views, reads, recommends, and referrers for published stories.

Mint Helps Users Budget and Save

Mint encourages users make better finance decisions and save up for big goals by giving them visibility into their spending trends, especially as they relate to personalized budgets.

Pinterest Allows Pinners to Track Engagement

The internet’s favorite mood board, Pinterest provides it 110M monthly active users with traffic and engagement stats including repins, impressions, reach, and clicks.

Pixlee Illuminates Its Unique Value Proposition

Pixlee helps brands build authentic marketing by making it easy to discover images shared by their customers, and then deploy them in digital campaigns. To help its clients understand the impact of this unique value proposition, Pixlee serves up an on-brand, real-time dashboard that presents custom metrics like “lightbox engagement” alongside traditional metrics like pageviews and conversions.

Shopkeep Improves Business Decision Making

Shopkeep’s all-in-one point-of-sale platform uses a wide range of data—from best-selling items to top-performing staff—to helps businesses make fact-based decisions that improve their bottom line.

Slack Delivers Visibility Into Internal Communications

The messaging app of choice for more than 60,000 teams—including 77 of the Fortune 100 companies — Slack delivers stats related to message frequency, type, and amount, plus storage and integrations.

Spotify Shares Stats as Stunning Visuals

Spotify’s stream-anywhere music service turns data insights into beautiful, bold visuals, informing their listeners of how many hours of songs they listened to in a year and ranking most-listened-to artists. They also help artists get the most from the platform by highlighting listeners by location and discovery sources.

Fan insights by Spotify

Square Zeros In On Peak Hours and Favorite Items

Going beyond credit card payments to comprehensive business solutions, Square provides business owners with real-time reports that include hourly sales by location, which help them hone in on peak hours and preferred products.

Strava Turns Everyday Activities Into Global Competitions

Strava turns everyday activities into athletic challenges by comparing its users’ performance stats against the community’s for a given walk, run, or ride. The app also used its 136B data points to create the Strava Insights microsite, providing insight into cycling trends in its 12 cities across the globe.

Swarm Updates the Foursquare Experience with New Gamified Features

Swarm adds additional gamification and social features to the original Foursquare check-in experience, providing users with their popular check-ins broken out by type, as well as friend rankings and leaderboards for nationwide “challenges.”

Triptease Builds Strong Relationships with Hotels

The Triptease smart widget allows hotels to display real-time prices for rooms listed by competing sites like to help convince guests to book directly and help the hotel build richer customer relationships. To keep a strong relationship with their own hotel-users, Triptease shows the impact on revenue of widget-enabled conversions, as well as the hotel’s real-time price rankings compared to other websites.

Twitter Beefs Up Its Business Case

As the internet’s 140-character collective consciousness positions itself more decisively as a boon for businesses, it has beefed up and beautified its analytics dashboard. Twitter’s dashboard now includes impressions, profile visits, mentions, and follower change for the past month, plus cards for Top Tweet, Top Follower, and Top Mention.

Vimeo Provides “Power” Stats in a Straightforward Interface

“We basically wanted to give users a power tool, but didn’t want them to feel like they needed a license to operate it,” explains Vimeo senior product designer Anthony Irwin of the video-hosting platform’s analytics tool. Today, Vimeo’s 100M+ users can dig deep—or stay high-level—on traffic, engagement, and viewer demographics.

Yelp Extrapolates Conversion-Generated Revenue

More than a ratings site for local businesses, Yelp also helps its 2.8M businesses engage and grow relationships with their customers. To highlight this value proposition, the company provides business users with a tally’s of customer leads generated through the platform, as well as a calculation of estimated related revenue.

Zype Helps Users Track Video Revenue

With a single interface, Zype makes it easy to publish and monetize video content across various platforms. Core to its value is the ability to provide users with key stats including monthly earnings, new subscriptions, and successful revenue models.

Building analytics into your product? We can help with that. Check out Native Analytics.

Want to see your stats featured in our next post? Send us a note


We’ll be releasing more guides and examples in the coming months. Subscribe to join hundreds of other product leaders who are following native analytics trends: ->

Alexa Meyer

Growth and UX. Cheese chaser. Aspiring behavioral economist.

Rocking Customer Success from a Segway in Portland

There are many reasons why Customer Success is important to a healthy business - from growth to retention to referrals to product development - but I do it not for those reasons at all…

I do it because I love it!

I was in the middle of a Segway tour in Portland this past weekend and we stopped for drinks (yeah, apparently it’s legal to drink and ride a Segway there), and as soon as I found out that one of the other Segwayers was interested in adding analytics into his company, I started quizzing him about how he was looking to grow his business and talking about what he could do with Keen. I just couldn’t help myself. It’s like a puzzle he and I could work together to solve and then hop back on our Segways feeling refreshed!

The big difference between Customer Success and Customer Support

Before the Customer Success team existed, we had a team dedicated to helping customers, but it was reactive. If a customer wanted help modeling data or had a question on how to create a dashboard, we would help them. And sometimes we got to learn about what they were doing. We prided ourselves on being customer oriented, but it wasn’t really customer success. It was customer support.

Customer success is about preemptively helping a customer before they have even really asked for it. I am a people pleaser by nature, and if I can help a customer before they even know the need it, then I feel great!

I went to a talk the other day about Consciousness Hacking and they talked about how there are studies to measure whether people can tell what image they are going to see before they actually see it. I am still processing the talk, but I love that idea. If I could apply that to knowing what the customer is going to have questions about, and helping them before they even ask, that would be amazing.

Fortunately for me, it’s a little easier to predict customers’ behaviors than determine whether we can really predict which future image we will see. (By the way, Robert Krulwich from Radiolab has an interesting commentary on that subject)

Did Alice know what was behind that curtain?

Understanding customers’ needs before they feel the pain

The customer may not always know the best way to achieve their goals. By getting an overarching understanding of how they want to grow their business, we can figure out how they can get the most value out of Keen.

These conversations help us avoid the potential pain points a customer might have with our product today and also help us understand how our product needs to grow to support them in the future. We can now align our product roadmap based directly from an understanding of how our customers would like to expand. I love this! I get to help the customer by being their advocate at Keen and I get to help Keen by making sure customers are taking advantage of new features and capabilities we add.

And, I get to hear about really cool projects that people are working on!

One customer,, used the metadata of where they placed different news articles and advertisements on their webpage to provide information to their editorial staff which could then optimize how many articles a user was likely to read.

Another customer, Net-a-Porter, was able to use Keen to monitor web performance, which they displayed in their common room to alert them when the network went down.

Another customer,, built their own desktop analytics right on top of Keen] and used that to provide information to their clients about user engagement with their own application.

And I even learned about a customer, Whitesmith, that used us to measure happiness in their workplace. How cool is that?

Customer Success is a win for everyone

I feel like Keen has really stepped up the growth phase ever since we started the Customer Success team. We have become proactive instead of only reactive. We have gotten a much better understanding of our customers’ growth plans and how to provide direct value as they scale. Most importantly, we turned on the faucet to enable a constant stream of communication between the customer and our product team. Now we are aligning our growth to the growth of our customers.

And I get to be in the middle of all that, helping customers even before they are our customers, just riding around on a Segway.

If you’d like to talk more about Customer Success or building analytics with Keen or Segway safety tips, I’d love to chat! Feel free to drop me a line at

Maria Dumanis

Good news everyone!

Focus on Allies - Learning Ally Skills at Keen IO

Photo by #WOCinTech Chat

At Keen IO, we value introspection, continuous learning, honesty and empathy. In the spirit of those values, we are eager to learn how we can leverage our individual and collective privilege to work towards a more tolerant and inclusive world. As such, we teamed up with Trello to host a leading expert in diversity and inclusion, Valerie Aurora, to share how we can all become better allies.

Most diversity and inclusion initiatives focus on changing the behavior of targets of oppression, rather than allies. This talk helped to explain why we should focus on changing the behavior of allies instead. It described about a dozen specific ally skills and talk about effective ways to develop your own ally skills, including attending the Ally Skills Workshop

At a glance, here are the 13 skills Valerie explored in her talk:

  1. An ally self-educates
  2. An ally listens
  3. An ally gives credit
  4. An ally asks for consent from the target, if they’re doing something that might possibly harm them.
  5. An ally keeps the focus on helping targets.
  6. An ally speaks up and draws fire.
  7. An ally uses their energy wisely.
  8. An ally spends money. 
  9. An ally uses their social capital.
  10. An ally acts even when it’s uncomfortable.
  11. Sometimes an ally sacrifices personal gain. 
  12. An ally follows leaders from marginalized groups. 
  13. An ally makes mistakes and apologizes.

We’re happy to share the recording and transcript with you.

We’re hopeful the skills Valerie covered will help to inspire our community members to use their specific constellation of privilege to identify opportunities to support, protect and amplify the voices of targets of oppression. We’ve already had several conversations internally about how we can do that, and have been thrilled to hear event attendees have been having similar conversations at their companies.

Valerie’s slides can be accessed here.



I’m here tonight to talk about Focusing on Allies, which is what I think we should do for diversity and inclusion in technology in 2016. I’ve already got a bit of an introduction, so I’ll just quickly go through the stuff that Sarah-Jane didn’t mention. I am the founder of Frameshift Consulting, which is a consultancy for diversity and inclusion in technology. That will shock you. I actually was also the lead author of that code of conduct that they just read to you. It was fantastic to hear the code of conduct implemented well with the reporting information, thank you. I also, prior to doing this work, I spent a number of years, over ten years, as a volunteer doing work for women in open source in particular. I’ve taught the Ally Skills workshop and given this talk around the world, including a number of places in Europe as well as Mexico, Australia, and our neighbors to the north.

I just have been having a bit of branding confusion so I now have a slide explaining the difference between this talk and the Ally Skills Workshop. This is about a 30 minute long talk with hopefully 20 minutes of Q&A (please!), explaining why we should teach people Ally Skills and going over some Ally Skills. The workshop is actually a three-hour workshop where you spend most of it speaking to each other and discussing real world scenarios. You can find out more about it at this link, and all of these slides and a number of other resources are available on my website as well, the Frameshift website. About the questions again, I love questions, questions are my favorite part; I hate just talking, the thing I’ve already said a million times. Writing them down on index cards gives us much higher quality questions. I’m really looking forward to that. Alright, so let’s go into some terminology.

We’re talking about Ally Skills; what is an Ally? The first thing we need to do is define a few other terms. The term privilege means an unearned advantage that’s given by society to some people but not all, so emphasis on the unearned. Oppression - systemic, pervasive inequality that is present throughout society, that benefits people with more privilege in harms those with fewer privileges. I’ll get into an example in a moment. A target is someone who suffers from oppression, also called a member of a marginalized group. Now we can define Ally. An Ally is a member of a social group that enjoys some privilege, that is taking to actions. They’re working to end oppression and to understand their own privilege. The thing about being an Ally is that that’s not an identity, it’s not a thing that you are, it’s about the actions that you take.

We’ll do an example. Here’s a privilege you may have and not be aware that you have. This is the ability to walk into a convenience store and have the owner assume you are there to buy things and not to steal them. Oppression in this case is the self-reinforcing system of stories, TV, news coverage, and the entire legal system, hooray, that stereotypes black people as criminals, that benefits non-Black people and harms black people. It’s important to remember this is benefiting someone, that’s why it exists. The target in this case is any black person who wants to enter a convenience store. It could be a nontrivial number of people. An Ally in this situation is a non-Black person who does things like donate to legal system reform organisations, actively objects when people tell racist stories or make racist comments in their presence, votes in and anti-racist ways, and reads news articles about this privilege. Those are some of the ways that you could act as an Ally in this situation. I like to hold most questions to the end but if something’s not clear, I’m happy to answer the question during the talk.

I want to talk more about what diversity and inclusion mean. A lot of people will use these words and not be quite short what they mean by them. Diversity is the state of having people in a group who differ along the lines of race, gender, sexuality, age, disability, religion, class, or caregiver status. That includes things like being a mother, or caring for your parents, things like that. Inclusion is when you have a diverse group, run in that group is valued, included and respected without unfair discrimination or bias. That’s why we say both diversity and inclusion. It doesn’t help if you have a diverse group but you’re not treating people equally and fairly within that group. Here’s a couple of common misunderstandings. An individual can’t be diverse, so please don’t say diverse hire. Diversity exists in the context of a group. One of these yellow balls with a smiley face increases the diversity if it’s added to this group of balls, but it’s not having any effect on diversity in this group. Many efforts in this area focus on increasing diversity and don’t follow through on inclusion.

Alright, so here’s some examples of diversity and inclusion efforts: volunteer-run affinity groups for people to support each other within particular groups; travel scholarships from members of marginalized groups; coding boot camps; advice books aimed at targets; volunteer-run mentoring programs; recruiting outreach to places like historically that colleges and universities; conferences for marginalized groups… this is a photo from AdaCamp which is one of the conferences I have drawn for women in open technology and culture. What’s wrong with diversity and inclusion today? I think that the problem is that most work is aimed at changing the behavior of targets of oppression. Less work is aimed at changing the behavior of allies. Let’s talk about some of the reasons why we do this in the first place.

Some of the reasons we focus on changing behavior targets are targets directly benefit from change and tend to be more self-motivated. It’s easy to get someone to take action if it’s going to personally benefit them than if it’s going to take away one of their privileges. Targets are often but not always more aware of oppression. One of the ways you can cope with being a member of a marginalized group is to be unaware of it for whatever reason. That worked for me until about age 21. Usually you get to skip the part where you raise awareness if you’re trying to convince targets to change their behavior. Targets are often lower status and easier to tell what to do. It is much easier to tell your intern that they need to speak up more often in meetings than it is to tell your CEO to stop interrupting the intern. It’s just an easier thing to do.

Targets are often seen as the cause of the problem. You’ll see this when people propose solutions to sexual harassment in the workplace or the military, by saying, why do we remove women from the workplace or the military? This ignores the fact that the majority of sexual harassment is committed by men, but people don’t suggest removing men from the workplace because they’re not seen as the cause of the problem. Finally, really focus on targets and telling targets had to change the behavior, it helps you avoid confronting the feelings of guilt that you might have from any part of your privilege. If the target is at fault because they’re not behaving properly, then there’s nothing that you have to acknowledge about your own advantages that  weren’t earned.

Let’s talk about what’s wrong with focusing on targets. In the first place targets tend to be overworked. You may have heard the old phrase, “Ginger Rogers did everything Fred Astaire did, but backwards and in high heels.” I finally found a fair use photo of them. This is maybe not technically true but it’s a very popular thing because it really accurately reflects the feelings of many people who are targets, that they’re working twice as hard to get half as much credit. The truth is is that that’s actually what is happening. One aspect of this is discussed in the book “What Works for Women at Work”? This is the only book of advice will targets that I recommend for two reasons; the first one is that it really presents sexism in the workplace as structural oppression… it says, you’re not going to solve it as a woman by acting in these ways, but you can make life a little bit easier for yourself.

The other thing I like about it is that more than half of the women that they interviewed for this book were women of color, and that they went into details about what the different experiences were and coping strategies for women of different races and ethnicities. In a way that was very detailed and granular. It’s a great book, I highly recommend it, but yeah, it just talks about in particular the prove-it-again bias. This is a pattern that they see, which is where, the way that our brains work is that it’s easier for us to forget things that go against our stereotypes, and it’s easier to remember things that confirm our stereotypes. If you had two co-workers, one of them is stereotyped in your head as the perfect manager and the other one is stereotyped as, you can’t be a manager at all. You’re going to remember all of the good management decisions that the person who fits the stereotype did. It’s going to take you forever to remember all of the examples of the person who doesn’t fit your stereotype. Prove it again, you have to do it over and over again.

Targets are under more stress. Stereotype threat is the fear of confirming negative stereotypes about a group that you are part of. This causes a measurable overhead when you’re working and when you’re thinking that affects your performance. You have to work harder because at the same time you have a voice in your head saying, don’t do it, don’t do it, don’t screw it up. Discrimination is a very miserable experience to be treated unfairly, and to know it. It as a lot to your stress. Harassment, abuse and assault, happen way more often than rethinking the workplace and elsewhere. People often don’t speak about it, because they don’t want to be retaliated against, but this stuff is all happening and it would obviously cause you a lot of stress and overhead. Post-traumatic stress disorder is the result of living through this level of stress for years upon years. Targets are under more stress in general.

Targets have less money. This is very small font. Each of these numbers varies each year. These are mostly 2015 numbers but there’s a few from 2013, so don’t get too worried, but you should get the general idea. Asian women and paid 87% of what white men are paid, and these are all US numbers obviously. Lesbian couples are paid 79% of what men married to women are paid, the individual in that couple. White women are paid 70% of what white men are paid. Black men 73% versus white men. Mothers 73% versus fathers, and fathers often get a small raise after becoming fathers. Trans women, 66% of their pre-transition income. Black women, 65% versus white men again. People with disabilities, 63% versus those without. Latinos, 58% versus white men. There’s more stats obviously but I think you get the message.

You’re also more likely to have unpaid caregiver responsibilities if you’re a member of a marginalized group. Targets are more likely to suffer retaliation. I mentioned this briefly before. There’s actual studies done on this. I’ll just with a quote from the study here. “Ethnic minority of female leaders who engage in diversity-valuing behavior are penalized with worse performance ratings; whereas ethnic majority or male leaders who engage in diversity-valuing behavior are not penalized for doing so.” You can probably think of some experience in your own life where someone who was male or ethnic majority did something related to diversity and got a benefit from, but this really showed that yes, it depends on who’s doing it and whether you’re seen as advocating for a group that you’re part of, or a group that you’re not part of, and the status that you’re part of.

Targets are often but not always in the minority. Here’s two communities I’ve been part of: this one on the left here is for open source software, the only study we have of gender distribution is from 2006. It’s a very small slice men make up 98.5% of the community, women make up 1.5%. I’m an operating systems developer and one of the things we learn is when you’re optimizing a program, you aim for the part that takes up most time. You work on that part first. You do not work on the 1.5% first. It was very clear to me that we couldn’t make any progress if we only tried to change the behavior of women in this community. By the way, I disagree with the categories they used to survey gender in these two studies. If you’d like advice on that I’d be happy to give it offline. Gender of Wikipedia editors came out as 90% men. It’s very clear that you can be more effective if you’re working on the people who are in the majority as well.

Targets have less power and influence. Fewer than 5% of Fortune 500 CEOs are women, fewer than 5% of Fortune 500 CEOs are people of color. Ursula Burns is two of those people, for the purposes of statistics, so when she steps down this is going to drop significantly, I think 20%. The Smurfette Principle was coined by a TV writer named Katha Pollitt. She pointed out that there are a lot of TV shows that had an all-male ensemble cast with the exception of one female character. The message here is that being a woman is strange, and it’s unusual, and it’s rare, when actually it’s one of the two most popular options. Of course, after Smurfette the village of male smurfs with only one female smurf.

This works out in the leadership teams of companies as well. Leadership team is the Board of Directors and the C suite, CFOs, CEO, COO, things like that. Here’s a study that looked at the SMP 1500, and here’s what they found. The probability that a woman occupies a top management team position is 51% lower if another woman holds a position on the same team. The Smurfette Principle lives and tokenism is real. The important thing to remember here is not just that you need to educate your top management team and get them to be making better decisions, but that if you ever see members of the same marginalized group who seem strangely competitive with each other, or even members of different marginalized groups, it’s not because they are terrible people who are competitive. It’s because they are working in a system in which only one of them can win, if they’re both aiming for a promotion higher up.

Finally, targets are seen as whiny, complaining and jealous when they advocate for themselves. I took this one from my personal experience. When I published the example conference code of conduct on the Geek Feminism blog, someone wrote this comment. There’s a little bit of mild profanity and vulgarness, I’m sorry: “Do you actually code anything or contribute to the open source software/hardware community in any tangible way or do you just bitch and moan about having a period and write conference conduct policies?” This was my favorite part. “It is a legitimate inquiry.” My friends had a lot of fun explaining to this person my ten year history of leadership in file systems and development of operating systems. That was enjoyable for them, but it just goes to show that you cannot get to a place where you are successful enough that you are not open to this criticism as a member of a group advocating for your own group.

Those are all the reasons why allies should take action more than targets, and yet when we look at groups and books that are aimed at improving diversity and inclusion in technology, you’ll see they’re still all aimed at targets. I’m not criticizing any of these groups except for the book, I don’t like the book, but these groups are doing great work. Black Girls Code aimed at black girls, Callback Women aimed at women speakers, Natives Who Code, Lesbians Who Tech, TransH4CK, The Pregnant Scholar, Code2040 is for (Black) and Hispanic Latina and Latino coders, and Mother Coders. Those are all explanatory. Lean In of course is the book that says, hey, if women just worked twice as hard, magically sexism will go away. Here’s the complete list of books, nonprofits and organizations for allies in technology that I could find, and yes, it’s blank on purpose.

This is my proposal: that 2016 is the year that we focus on allies and changing the behavior of allies, and whoah, we’re already three quarters of the way through. I wasn’t thinking when I put the year in this. I just want to summarize why we should focus on allies, and then I will talk about ally skills. Allies have more time and energy. Allies have more money. Allies aren’t harmed for diversity valuing behavior. Allies are often in the majority. Allies have more power and influence. They are seen as altruistic, giving and kind when they’re speaking up for members of groups they aren’t part of. What do ally skills look like?

1) An ally self educates. Often people will learn a little bit about a new word or something they don’t understand, and then insist that someone who’s a member of a marginalized group explain it to them, like suddenly they forgot how to Google.

This is a really important, crucial first step to take in your work as an ally, is to really accept the responsibility for teaching yourself, and going out there and making the best effort to learn what you need to learn. If you’ve exhausted the online resources, watched the videos, read the blog posts and you still don’t have an answer to your question, that’s a pretty good question. You can feel free to ask someone that one, but it’s really important to take responsibility for educating yourself in the first place, as the default.

2) An ally listens. I had a hard time deciding whether to put self-education or listening first. They’re parts of the same coin, but yes, a really important thing is as someone who has more privilege, you’re used to talking and other people listening to you. That’s an easy pattern to fall into. Pay attention next time you go to dinner with your friends. There might be a pattern that you see.

An important part of being a good ally is listening to members of marginalized groups and believing what they say, and taking it seriously. Here’s a great example that happened at the 2014 Grace Hopper celebration. They had a panel of all men, about male allies, in front of an audience of about 7,000 women. Multiple people warned them that this might go badly. It went badly and there were multiple press releases and PR disasters, and a cleanup that they needed to do, as well as the people in the audience having a miserable time. One of the people who was on that panel is Alan Eustace, who was at that time a senior vice president at Google. He used his Twitter account to send this one Tweet, “Let’s reverse the male allies panel. You talk, I listen.” Then he gives the room information. He and two of the other panel members spent an hour in this room sitting and listening, while women came to the mic and said what they experienced at work and how the words they had said on stage had hurt them. That was a great example of an ally listening.

3) An ally gives credit. Again, as someone with more privilege, people will assume that you did the thing that you’re talking about. This has only happened to me a few times when somebody thought I wrote a file system I didn’t write, but that was very sweet. It must be wonderful to happen all the time. As an example, there’s a link down here about this. Women get less credit for co-authoring papers. In fact, it has zero effect on their careers according to a study of economics professors, people with PhDs. That’s just one example of how that happens. Here’s another example of how to give credit. In social justice circles there’s a norm that whenever you use the word intersectionality, that you credit the inventor of that term by name, Kimberlé Crenshaw. Briefly, the term intersectionality describes the concept that people can be subject to multiple overlapping forms of oppression that intersect and interact with each other in different ways.

Kimberlé Crenshaw is herself a black woman, so she gets a form of oppression based on being black, she gets a form of oppression based on being a woman, and she gets a whole special form of oppression based on being a black woman together, but it’s really important to give credit frequently and copiously and whenever you’re not sure. The one exception to this is if giving credit will put someone in a position where they might be attacked. If you’re not sure about that, ask whether or not somebody wants credit in that situation.

4) An ally asks for consent from the target, if they’re doing something that might possibly harm them. We all understand that the fight for improving equality and bringing rights to people often involves harmed individual people who are members of that group. Think of anything, really. The important thing is that if you as an ally are taking an action that’s going to put someone in that position, you have to ask them first. An example of this situation is the fight for marriage equality here in the United States. That involved individual same-sex couples going to court and having their personal lives examined with a fine tooth comb and being a symbol and an example and being harassed by people. The important thing is that they volunteered to do that. If you as a straight person walked out there, picked a couple and said, you’re going to be the people that we’re fighting for in this court case, that would not be asking for consent.

5) An ally keeps the focus on helping targets. A common problem is called derailing. If somebody’s trying to talk about the problems facing targets, that other people will try to recenter the discussion on the feelings of people with more privilege. Here’s an example of someone pushing back on that, from Twitter. Jenn Schiffer is an excellent programmer, artist and humorist. You should check out her blog if you have a chance. She says on Twitter, “A shoutout to my girls out there who want to be visible in the tech community but also want a family, but have to choose because Earth is terrible.” Some rando replies and says, “Well, it’s a problem for fathers too. Balancing networking and family isn’t easy for anyone. Then Moishe joins in and says, "As a dad,” so invoking his privilege, he says “I’m going to go ahead and say it’s objectively harder for moms.” He’s getting the discussion right back on track from where it started, so yeah, keeping the focus on helping targets avoiding derailing.

6) An ally speaks up and draws fire. The converse of this is that when being the focus of the discussion is bad, it’s going to get people attacking you, that’s the time to speak up and draw fire as an ally. I got another example of that here, again from Twitter. It’s my friend who goes by @hashoctothorpe. She says, and she’s a straight white cis woman, “In one joke, (elided) and (elited) managed racism, misogyny and transmisogyny. Total (elided) weasel territory,” and also says “The talk from (blank) and (blank) was offensive in every way and violated the code of conduct, please expel them.” There’s a great resolution to this story, the conference did expel these two folks for the remainder of the conference. They both apologized on Twitter and they came back the following year and were not making offensive jokes anymore. This is a great example of when it’s okay to be the center of attention when you’re acting as an ally, because obviously my friend risked being the center of a trollstorm by taking this action.

7) An ally uses their energy wisely. Some of you may have seen this. This is Anita Sarkeesian, who did the tropes about Women in Video Games series for Feminist Frequency. One of her critics said, “My biggest problem with Anita is that if I used her logic, I could see sexism everywhere.” Yes… so close. (laughter) Seriously though, you can’t go to the grocery store without some form of oppression. It’s around you all of the time. It’s systemic, it’s pervasive. What’s important is to be able to see, hey, where do I have the most power and influence? Where can I use my energy in a way that’s going to have the biggest impact? Do I just need to take action, even though it doesn’t make sense, because it’s important to my values? You don’t have to address everything you see, but really you’re starting to pay attention, and say hey, when can I take an action and make a big effect. That’s a great thing to keep in mind.

7a) Charles’ Rules of Argument: This is one of the things I teach in the Ally Skills Workshop, Charles’ Rules of Argument. This is Charles Miller. He had a blog on the internet in 2004. He currently works for Wikia just up the street. He spent a lot of time arguing on the internet, and then decided that was not how he wanted to spend his time, so he made Charles’ Rules of Argument. Rules are, the first one is, don’t go looking for an argument. Somebody’s wrong on your part of the internet that you normally read. Trust me, it’s true. If you do choose to have an argument, state your position once speaking to the audience. This is important because you’re unlikely to change the mind of the rando or the troll or whatever it is that you’re addressing, but the people who are watching haven’t made up their minds, and they want to emulate the person who seems to be the most admirable.

Wait for absurd replies is the next step. On a mailing list this will take two or three days, on Twitter it will take two or three minutes. Once you get a few absurd replies accusing you of saying things you didn’t say, you reply one time to correct any misunderstandings of that first statement. This is the most important part, do not reply again. Spend time doing something you enjoy like going outside or drinking a beer or petting a dog. It’s very important.

8) An ally spends money. An ally has more money. A great thing to do with it is give it to support groups that are fighting to end oppression. If you’re not sure which groups to give it to, this is one time that you’re allowed to ask a member of a marginalized group, “Hey, where should I put my money?” and expect some good suggestions.

As a former executive director of a nonprofit and the fundraising lead, I would like to say please don’t offer to donate your time unless it’s an organization that’s set up specifically to do that, like Black Girls Code has a very efficient system for doing that. If you’re not sure why one or two hours of your time, of your expertise and web design is not helpful, imagine you walked into work tomorrow and somebody said that you have 500 interns, and each have one hour available. Just give people money.

9) An ally uses their social capital. One of the things you can do is give people money, and then tell other people that you gave money. This is not to make you look good, this is to set an example for other people - “I believe in this cause enough and I believe in this group’s effectiveness well enough that I gave them x dollars.” That is a wonderful thing to do, please do it. You can also use your social capital to help people get talks, to make introductions to people who are useful to someone’s career, not just people who are like them in the way that they are marginalized, and to amplify other people’s voices, amplify the voices of targets. One of the things I try to do is I relatively rarely tweet myself, I usually retweet somebody who has a lot of knowledge about a particular subject.

10) An ally acts even when it’s uncomfortable. Poor dog, I always feel sad when I get to this slide. It may be really uncomfortable for you to speak up if your coworkers are using the words “crazy” or “lame” in conversation, because most people don’t know that that’s not okay and it just feels so extreme, but it really helps to remember, hey, if you feel uncomfortable, how does the person who has undisclosed mental illness feel? Or the person who uses a wheelchair, When you’re talking about your product being lame? Being aware that whatever you’re feeling is probably an order of magnitude less will really help you act in a lot of these situations.

11) Sometimes an ally sacrifices personal gain. That’s how privilege works. You don’t have to sign up for it. You don’t have to say, I accept this unearned advantage that you are giving to me. People just hand it to you constantly all of the time, and sometimes you have to turn around and say, no, I don’t accept that. An example of this happening is you may have seen a panel at a tech conference that looks like this before (picture of tech panel with 5 white men). You may be invited to a panel in which you round out a panel that’s all white or all men or something like that. That’s a great time especially if you are already fairly far along in your career, to say,” hey, I no longer serve on panels that are all white, or, I no longer serve on panels that are all men. Here’s my list of suggestions of people to replace me with that are more qualified than I am.” This is obviously better to do once you have more influence and power in the first place, but you can do it at any point.

12) An ally follows leaders from marginalized groups. Again, as someone with privilege you’re used to people following you and doing what you say. The thing is that if you’re trying to support the marginalized group and you’re not part of it, you often don’t know what they need or what would help them. People who are a member of that group do know that and you can instead support them, give them your money, amplify their voices, encourage other people to follow them. There’s a phrase from disability activism; “Nothing about us without us”. There’s a great Wikipedia page on that you’d like to check it out more. That’s a good thing to remember.

13) An ally makes mistakes and apologizes. If you never make a mistake, you’re not doing anything risky or worthwhile.  It’s also impossible not to make a mistake. What’s important as an ally is not that you are perfect and you never make a mistake; what’s important is that when you make mistakes, you immediately apologize, correct yourself, make amends if necessary, and then move on. It’s not about you, it’s not about your mistakes, it’s not about feelings about your mistakes. It’s about trying to support this group, this is the best way that you can do it. It’s also a good way to set an example for other people were wondering how to behave, if you can graciously admit your mistake, apologize, correct yourself, move on.

We are almost to the end. That’s just a very high level hand-wavey summary of I think thirteen ally skills, and it’s going to take a little bit more than that to learn them and just to use them. You can learn ally skills but it’s actually sort of difficult right now. Most of the information is spread out, you noticed the number of links to research papers I had in these slides. I’ve collected those over multiple years. There’s not a good set of books right now. There are books that will cover one aspect of being an ally but have maybe a chapter on ally skills, but there’s not a theory of being an ally out there yet.

I’m working on a book about ally skills, you can follow my twitter account @frameshiftllc for more news on that. In the meantime, I and many other people teach an ally skills workshop. It’s interesting that the San Francisco Bay Area has the largest number of people teaching these kind of workshops. We might be the area of the world that needs it least, but that’s how it is. That’s why I’m working on the book.

The ally skills workshop I teach, the materials are all freely usable under the Creative Commons share alike by attribution licence, and there are many ally skills workshops that are derived from the same set of materials you can get from other people as well. There’s a “train-the-trainers” also available. I think I’ve taught about fifty people to do it and there’s a number of people who are self-taught as well. All the materials for that are freely available. Currently this workshop is being taught internally by internal trainers at Google, Square, Slack, and Spotify, and I have some other companies that will hopefully be joining them soon. You can go to my website and find out more about that.

Conclusion, this is what I’d like you to take away from this talk. Most diversity and inclusion efforts focus on targets. Targets have less time, energy, power and influence. Allies have more ability to make change, and ally skills can be learned. Let’s focus on allies for 2016. All right, thank you so much.


I would love to do questions at this point. If you haven’t written your question on an index card, please do and pass it up front. Are there any coming up to the front? Great. I can also answer questions that people ask with voice. I wrote a blog post about how to have better questions - you know,  the “this is more of a comment than a question.” If somebody has to write it down on an index card, you can just skip that one!

Wow, this is big picture…

What is your ideal vision of an ally organisation?

Yeah, so the interesting thing about …This is tough, people have always asked me, hey can you start a mailing list or Slack community or something like that for people who want to act as allies? It’s never felt right and I think it’s because there hasn’t been a focus yet on specific ally skills that can be written down. If you’re a member of a group that’s a marginalized group, you have a shared identity. That’s an identity, you have shared experiences. Being an ally is about actions, and there’s not …It’s not the same sort of way that you have this shared experience and this need for the same support group. An ideal vision of an ally organisation I think would be something that’s really focused on supporting people who are doing this kind of work, who are members of marginalized groups. A fantastic form of an ally skills organisation would be a giving club. This is a group of people who get together and share information about what organisations they want to donate to with a focus on diversity and inclusion in technology. That’s an extremely powerful thing to do. You can bring together ten people and perhaps you had a bonus this year for $5000, that’s $50,000 that you can agree on and share your information about how to use. I really think ally organisations would be focused around those specific ally skills in supporting each other, but it would have to have that goal rather than, I’m an ally, you’re an ally, yay, let’s ally together.

Oh wow, good set of questions…

Can you please get Linus (I assume Linus Torvalds) to attend one of your workshops?

No. It doesn’t work that way, I wish it did. That was a hilarious question, thank you whoever wrote it, but that actually is part of a class of questions I often get asked which is, how do I convince people to want to be allies? The answer is you can’t. If you could convince someone to want to be an ally, they could conversely convince you to not want to be an ally. I can tell you how I’ve seen people make this decision, and it is often someone very close to them has a miserable experience. Someone they’re married to gets fired for one of their kids gets attacked or something like that. That can often be an experience that make someone go, “whoa, I just opened my eyes.” A slightly different version of that is if multiple people who are somewhat close to several of your co-workers all tell you about a similar experience they’ve had, and that completely changes your view of the world because you didn’t know that was happening… that’s another way that I see people wanting to be allies. Another way I see it is people who care about studies in science and things like that. There’s just this point where they’re like, “I’ve read the fiftieth study saying the same thing about bias and discrimination. I think it’s true!” It’s often really somebody who has a value, a value of being fair. Most people have a value of being fair and inclusive, and then their eyes are open to the reality that that’s not true. That usually helps people in my experience, become allies. If you don’t have that value in the first place, meh. Linus is pretty clear about what his values are.

Amplifying voices; should we ask for consent?

This is a great question. Sometimes amplifying someone’s voice will help them, sometimes it will harm them. If you’re not sure, if there’s a question in your mind, yes, you should ask for consent. This is a thing I normally do, I’m part of a private discussion group and we have the system of, someone says something really funny that we want to share publicly. It’s, “may I share that and do you want credit for not?” We never assume either of those two things. Once you normalize it, it just becomes part of the usual.

Wow, so many questions, this is great.

How can allies work against unconscious bias?

Yeah, becoming aware of it and setting up structures and checks. Often, one of the great examples I like is that I hear that at Google promotion meetings, where they decide who gets promoted, the beginning of the meeting they read a prepared statement that says, “hey, here’s what unconscious bias is. This is what it looks like. If you think you see it in this meeting, here are the words to say.” That’s a fantastic way of creating a structure to go back against this. Oppression is part of …It’s a systemic structure. It’s got lots of form and ritual around it, so creating new structures is part of how you do that.

Yeah, so this is asking about when do you want separate groups where it’s allies and targets and when you want to be in the same group and giving examples like, white women versus groups of black women and sometimes working across purposes. Oh yes, and that often it seems patronizing, when people are telling people what to do.

Yeah, that’s why I emphasize so much on the ally skills, starting with listening, self educating, and then following and supporting. I believe that this is something that has become clear of the last ten years of doing this sort of work, is that I believe you do need separate groups for members of a marginalized group to support each other, then you need an integrated group of people who are both allies and targets for doing work to change the system. The reason is that it’s just, you need support groups where you can say things without being questioned, when you don’t need to educate people. A group where you can just say, “hey, blah-de-blah happened at work today,” people will just be like, “oh yeah, that really sucks when that happens,” instead of being like, “that doesn’t happen. Could you explain to me why that bad?” All that sort of thing. I really encourage people to have both of those things at work, at school, and in all sorts of things. To be very clear, when you have an event, whether this is a thing for members of the group only, or for members of the group and allies. If you leave it unsaid people will usually assume that the good people, the actual allies, will assume it’s for members of the marginalized group only. The annoying people who want to tell you what to do will assume that they’re welcome and show up. I have this happen a lot with Women in Linux events. (from audience) So an example is the East Bay Meditation Center which has events for specific groups and then they have events for teaching people about inclusivity.

Sometimes a co-worker say something disrespectful and I’m not sure whether to say something to them. What if the result is that they just stop saying those things round me or if I end up blacklisted as a result?

Yes, so first of all if you are in danger for speaking up, you should maybe rethink whether you are an ally in that situation. You may be a target, if speaking up is going to get you in trouble. You may not have the advantage and the privilege and the power and influence that you need in that situation, and it’s fine not to speak up in that case. The concern about people just going underground and just not doing it in front of you…? Sometimes the only thing you can accomplish is to say,”hey, this is not socially acceptable in this situation.” You can’t control what someone’s doing away from you. You can just make clear that it’s not welcome and that it will have consequences if it’s around you. I view that as a win. You’re setting a standard and there’s a lot of other people who are going to see what’s happened and act differently.

Ah, self-education. What’s a good website or Google search to start at?

The way that I like to recommend people with self-education is, you find a starting point and you fan out from there. I’ll give you a specific concrete starting point. I use Twitter a lot. I will follow someone on Twitter, I will pay attention to what they’re saying in their own Tweets, but I’ll also pay attention to who else they are amplifying, who else they are retweeting, and then I will follow them. Often using that you can find your way to extremely knowledgeable people who are sharing for they know for free. You can do the same thing with blogs or Tumblr or mailing lists and things like that. The thing I usually suggest is to start with the Ally Skills Workshop handout on my website, which has a number of different websites and wikis and things like that. Wikis are another good place where you can fan out and begin to learn things, but mainly, find people who are knowledgeable on the subject you’re interested in and who write things in some form that’s distributed on the Internet, and start there.

Let’s see what else. Are consultants the best way for an aspirationally diverse and inclusive company to make concrete progress? If so, can you recommend any?

Yeah, so this is diversity and inclusion, I like for people to think about it like any other aspect of doing business. What would you do if you needed to improve the security of your project? What would you do if you need to improve your HR practices? What would you do if you need it to do more stress testing then you could do with the computers you have in your office? Often you, as you’re growing, you have to outsource these to consultants at various levels and eventually you can bring them in-house once you’re large enough. I don’t think Google is renting botnets to stress test anything at this point, and they are also doing all their internal diversity and inclusion stuff.

A place to start for consultants is, I would say beginning looking at Project Include’s resources to get an idea of what’s the structure, what are you missing, what other things you might do? Personally I often recommend The Ready Set, which is ostensibly a recruiting assistant organisation, but they also do diversity and inclusion training. That’s run by Y-Vonne Hutchinson. Another one I really like is Paradigm IQ, founded by Joelle Emerson and a number of other women, and it’s like they’ve got so many partners now I can’t say all their names. Another good one, shoot …Look to see where Caroline Simard is working right now. I don’t remember the exact name right now.

Those are some good places to start. I do some consulting but I’m fairly specialised. I usually do ally skills workshops or ally skills related things, and I do code of conduct consulting, but I can definitely direct you to other folks. Oh, textio is another good resource. As a company that does large-scale analysis of text corpus to look for bias in language. That can include things like your job descriptions or your performance reports. Again, talk to people who are experts in that area and ask them for advice.

Alright, so this is a tough question but I’ll read it anyway. How do we incorporate cultural competencies in the education of an organisation around diversity and inclusion?

I think what this is saying is how do you use what a company is already good at in terms of its culture and the way works, and use that as a tool to make diversity and inclusion more effective, whatever work you’re doing there. Yeah, I think it’s helpful to have people who have experience in the field that your company is in, be the people that you’re working with as consultants or getting advice. So, really matching up the style of training and information with the cultural biases of your group. One of the things I did with the Ally Skills Workshop is my target audience tended to be introverted, tended to be not interested in standing up in front of other people, tended to be easily bored. It took a while to develop a workshop that worked for that group of people. If I was doing a workshop for a group that was not mostly software engineers like say, people who were sales engineers, that would be a very different format of the workshop, because they would be very excited about speaking in front of other people. That’s what I would look to say in that case.

How do you be an ally to someone who is a target who reports to you? (Given that there’s this other power dynamic which is that you are their manager and they report to you.)

First, kudos for understanding that there is a power dynamic. That’s not a popular thing to talk about or admit in Silicon Valley, that these things exist. Being aware of that power dynamic and being aware that it will cause things like, this person’s less likely to tell you what’s actually going on, they’re less likely to complain to you, they’re less likely to share with you about things, so being aware that you’re limited as a manager in that way. However, then you also have power and influence that’s greater, because you are manager, so if someone does come to you with a problem, you can then go talk to their manager. It’s actually your job to resolve people issues and that sort of thing. I would just say be aware of both the disadvantage and the advantage that that gives you. This is an example of choosing your battles and figuring out where you have the most power and influence.

We have three more minutes, are there any more cards?

Every conversation about diversity and inclusion at work ends up with me trying to educate people. How many *expletive* links do we need to send?

Yes, I know. This is an interesting dynamic. I started to do this, whether or not it’s intentional as an actual strategy to exhaust people who are trying to change the world, who are trying to make the world a better place. It may come unconsciously from this entitlement, this being used to being able to ask for other people to do work for you. Being used to just getting what you want, being used to having people being afraid of you and all that kind of stuff, but I think also people do do it intentionally at some level or another. One of the things I have learned to do is to figure out whether someone is truly open to changing their mind, and is willing to do the work, or if they just want to argue with me, or if they just want to have some excuse to say no and not do a thing. One of the ways I would do that is upfront, I will ask, “hey, why don’t you do this Google search?” If they don’t do that Google search I know that they’re not open to actually learning and I’m wasting my time on them. Setting up a series of small tests to use to figure out whether to spend your time on people. A thing that totally confuses me and just makes me really unhappy is when I see people explaining their block policies on Twitter. You don’t have to justify why you’re blocking someone. I’ve seen people who have come through the other side of that, and have been like, “I don’t explain any more because you know what? None of these people deserve my time. They don’t have any sort of entitlement to it.” I realize that and I realize I don’t have to give them a fair hearing. One of the ways to do this is to compare the amount of time that they spend asking you a question to the amount of time you spend answering the question. A great place to start people, both for feminism and for a number of other things is the intersectional feminism Geek Feminism Wiki. That’s in the slides, or it should be. Oh my gosh, it’s not in the slides, wow. Geek Feminism wiki is a great resource because it has a lot of cross-linked articles about a number of topics. Yeah, really getting that sense of whether someone is open to that level of self-education, and then just not spending your time on those people if they aren’t. I think that’s it. Thank you so much for coming, and does anyone want to say anything before we end? Yes, all right, great.

Sarah-Jane Morris

Community and Awareness

Lesson One

Person Working

As Keen IO’s Chief Data Scientist, I’ve worked with thousands of companies over the years. Today I’m sharing one of the most impactful lessons we’ve learned in building successful analytics integrations.

The lesson is: take some time to reflect on what you are trying achieve. Once you are confident about that, your decisions about what data to collect and how to use it fall more naturally into place.

Here’s a mini-worksheet to get you started:

  1. What’s most important to my company/team right now?
  2. What are our goals?
  3. How can data help us achieve those goals?

Write out your answers. Reflect back on them whenever you feel overburdened by the seemingly infinite possibilities for your data. Re-center and drive forward. You’ve got this.

By the way, we’re pretty helpful people over here at Keen IO. Maybe we’ve already solved a problem like yours and we can help you do it faster.

Michelle Wetzler

Chief Data Scientist