Main Hall Sessions
A Week in the Life of a Fabric Developer
Developing an app is a journey, as you try to go from concept to cash as fast as possible. You need to spend your time focused on building amazing user experiences rather than dealing with bug fixes or the stress of a new release. This talk will walk through a typical week of a developer, highlighting all of the ways you and your team can use Fabric to take your development quality and speed to the next level.
Growing and Monetizing Your App Using Twitter
Learn more about the lifecycle of building, maintaining, and monetizing an audience with Twitter developer tools. This session will include an overview of organic distribution products, the mobile app promotion suite for user acquisition, and monetization using the MoPub platform. The goal of this overview is providing the tools and best practices to help you turn your apps into a business.
Building a Customer Service Practice Using Twitter
Customers use Twitter to publicly resolve issues they have with companies they use. Brands that excel at helping their customers over Twitter see cost savings, increased satisfaction, and increased revenue. In this session, you’ll learn how Fabric, Twitter Official Partners, Twitter Syndication, and Gnip enable brands to respond with rich context about customers, understand customer needs, measure their impact, create moments of delight, and much more.
Mobile Sessions
Building the Fabric SDKs
Want to build a mobile SDK? Just want to get insight into how the SDKs you use every day? Developers need better tools now more than ever, and the number of third-party SDKs is also growing to meet the developer's needs. In this session, we’ll cover an overview of Fabric, deep dive into technical decisions we made, and present the learnings on developing an SDK for stability, testability, performance, overall footprint size, and, most importantly, exceptional ease of implementation.
A Deep Dive into the Answers Backend
Answers is a real-time, opinionated mobile analytics product. In the 15 months since its public launch, Answers has grown to be one of the most widely adopted mobile analytics SDK's. This talk will briefly introduce the product and go over some of the back-end architecture design that helps us scale it to these volumes: stream/batch processing, probabilistic data structures, intelligent event grouping during stream processing, tailored key-value schemas, and sampling.
Rapid Development with Reliable Testing with Docker
Fabric is composed of many co-operative services that are under active development and need to be shipped quickly, reliably, and independently. But running in production is only half the story. This talk will introduce Fabric's Docker setup for development and testing. We'll discuss how we use containers to create lightweight development environments that start up quickly and stay in sync across teams. We'll share our methodology, what we've learned, and show off the Docker tools we've open-sourced that can make your development story even better.
Building Mobile Applications for Unreliable Networks
Mobile networks are notoriously unreliable, presenting a unique challenge to mobile developers. This talk will cover the measures we have taken to improve resilience, reliability, and performance of the iOS and Android Twitter apps in the face of unreliable networks. The talk will deep dive into the technological improvements we at Twitter have taken (including SPDY & HTTP/2, WebP, Progresive JPEG, and more), and share the lessons we've learned.
iOS Crash Reporting
Detecting and recording crashes in native applications is a complex problem. Running code after a process has already failed results in unique and unusual challenges. This talk will go through how crashes can be intercepted, and what needs to be done to overcome the dangers of the post-crash environment to produce a useful report. Learn about async safety, memory defensiveness, stack unwinding and how Crashlytics uses these concepts together with more familiar iOS technologies to produce our reports.
Twitter Adaptive UI
Come learn Twitter's strategy for Adaptive UI. See how we added landscape mode, unified our iPad and iPhone apps' features in a single release, and added support for iOS 9 iPad multitasking in only three hours. We'll discuss how we design and engineer for multiple devices and environments, even those that don't yet exist!
Data Sessions
Gnip: Twitter’s Enterprise API Suite
Twitter’s enterprise API suite is changing the way organizations are making decisions and solving problems. This talk will highlight use cases for Twitter data as well as the underlying APIs that power them. Learn what makes an enterprise API and the types of enterprise APIs that are available through the Gnip platform.
Understanding Your Audience with Probabilistic Data Aggregation
Understanding the demographics of large sets of users has a wide range of applications from ads targeting to content marketing to customer service. Often times, insights are discovered through ad hoc queries that aggregate data over one or more demographic dimensions. This talk will highlight the power of these insights and some of the tools we’ve developed to work with this data.
What's in a Location
At any given second about 6,300 new Tweets are created. That’s over half a billion Tweets per day. There is immense wealth that can be harvested from this data and products are built upon this fact to deliver these tweets to customers. We’ve developed API’s and products to service our customers with our data, past and present, with added enrichments to the tweet data that provide additional value. I will go over how we build and add a particular enrichment: Profile Geo, and show how a customer can benefit from this.
Finatra: The Fast, Testable, Scala Framework Powering Twitter APIs
This talk introduces Finatra, Twitter’s recently open-sourced Scala services framework. Powered by TwitterServer and Finagle, Finatra facilitates the creation of highly scalable and easily testable HTTP APIs. After discussing the high-level motivations for the framework, we’ll explore its features through a comprehensive end-to-end example.
Lightning Theater Sessions
Of the Order of Billions: Building Observability at Twitter
Every minute Twitter’s Observability stack processes 1.5+ billion metrics in order to provide Visibility into Twitter’s distributed microservices architecture. In this talk will focus on some of the challenges associated with building and running this large scale distributed system. We will also focus on lessons learned and how to build services that scale that are applicable for services of any size.
Protecting the Twitter Platform
Safety is crucial to Twitter as a social platform. In this session we present BotMaker, a scalable system that defends against unsolicited content and behavior. You will hear how we protect the Twitter platform and make it a better place for users and developers.
Hiring Great Engineers - The Fabric Way
Finding and hiring great mobile developers is hard. Fabric (formerly Crashlytics) started with 1 engineer and now we are a team of 50 engineers. In this talk we’ll share some tips and practices that we use in Fabric and Twitter for hiring great engineers, including mobile developers. We’ll talk about the whole circle of hiring - from sourcing a prospective candidate to getting the initial coffee with them, evaluating their skill set as relevant to the job and ensuring a cultural fit in the team, to finally closing them and getting them excited to be part of the journey we are on of empowering App developers to build the best Apps.
Building the Digits SDK
This talk will be a technical deep dive into how we developed Digits from idea until today (login, theming, find friends, 2 factor, voice verification). The talk will show what is the development process of the team and what are the design patterns we use in the implementation of Digits SDK.
How the MoPub Marketplace Works
The MoPub Marketplace is a real-time exchange which handles billions of auctions daily amongst more than 180 real-time bidding platforms. In this session, we’ll discuss how the exchange works, how exchanges maximize developer revenue, and take a look at the technologies which make this scale possible.
How Fabric Builds Fabric
At Fabric, we take a customer-centered approach to our workflow, asking, 'what value are we delivering to customers this week?' This session will cover how we use a Flow process to address bottlenecks and keep features, improvements, and fixes flowing to customers.
Twitter’s Production Scale: Mesos and Aurora Operations
Twitter has used Aurora and Mesos to grow from only tens of nodes to tens of thousands. During the process of scaling up, the configuration, deployment, and operational procedures for this system have evolved and improved significantly. This talk will offer an operations perspective on the management of a Mesos+Aurora cluster, and cover many of the cluster management best practices that have evolved at Twitter from real-world production experience.
Mapping Millions of Tweets
The locations of geotagged tweets over time are a valuable source for understanding patterns of urban activity and mobility. I'll discuss retrieving tweets from the Twitter Streaming API, despeckling, debanding, and de-duplicating the data to reduce distracting artifacts, generating vector map tiles with Tippecanoe, and styling the map with Mapbox Studio, along with some highlights of the resulting map.
Mobile Auth Services
The best mobile apps leverage remote services to store rich personalized data, perform secure transactions, sync accounts, and more. Fabric's single sign-on kits let your app access the Twitter and Digits APIs, but they can do more. In this talk, we'll discuss how Twitter and Digits can authenticate your app users to your backend, design a small Go auth service for a Twitter/Digits app, and use containers to deploy it.
Android Developer Options: What can those toggles do for me?
Testing an app on your perfect Nexus 5 device under perfect network conditions works great, but you're getting reports of strange behavior from the wild and weird crashes that you can't reproduce. This talk will walk through some of the more complex options on the Developer Options screen in the Android OS and discuss how a developer can use them to debug problems in their application. We'll cover these options and more as we dive deep into debugging apps.
A Technical Deep Dive into NDK Crash Handling
Handling uncaught exceptions in Java is a walk in the park compared to handling a native crash. This talk will introduce you to the inherent difficulty of signal handlers by outlining the lessons that we have learned while developing Crashlytics NDK support. Topics covered include: Java crash handling, async-safety, static storage duration and memory allocation, interruptions, signals, stack unwinding, reinventing the wheel, and more!
AMPlifying the Web
The Accelerated Mobile Pages (AMP) Project is a recently launched open source initiative, bringing publishers and technology companies together in an effort to speed up the mobile web. Pages build with AMP appear to load instantly, but what’s its secret sauce? Learn why we came up with AMP, the techniques behind all of our optimizations and why you should care.
High Performance Web Widgets
Twitter for Websites has been a mainstay of the Twitter development platform for over five years; an easy means to integrate Twitter into articles and applications on web and mobile. In that time our widgets have evolved with the web itself. Here, engineers from the TwitterKit for Web team will talk about rebuilding the Twitter widgets suite from the ground up, implementing our overriding passion for performance in all its forms.