Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Alexander Graebe (Uber Technologies Inc), Back...

CodeFest
January 31, 2018

Alexander Graebe (Uber Technologies Inc), Backend Build Moving Experiences, CodeFest 2017

https://2017.codefest.ru/lecture/1203

Join this session for an introduction on how to build moving experiences with the Uber Developer Platform. Alexander will outline what features Uber offers to be integrated in order to provide transportation options within you apps with ease. As part of this talk, you will learn: - how to use Uber Auth and Uber profile information (OAuth2.0)
● how to get estimate and request rides for your users and display them
● how to user UberRUSH to add transportation to your business
● how to leverage ride context and Webhooks to craft amazing UX for your users while they are on the ride

CodeFest

January 31, 2018
Tweet

More Decks by CodeFest

Other Decks in Programming

Transcript

  1. PICKUP DESTINATION INTENT TO RIDE POST RIDE Help users make

    a decision Execute user intents Enhance user experience Analyze and gain insights
  2. PICKUP DESTINATION INTENT TO RIDE POST RIDE Help users make

    a decision Execute user intents Enhance user experience Analyze and gain insights
  3. PICKUP DESTINATION INTENT TO RIDE POST RIDE Help users make

    a decision Execute user intents Enhance user experience Analyze and gain insights
  4. PICKUP DESTINATION INTENT TO RIDE POST RIDE Help users make

    a decision Execute user intents Enhance user experience Analyze and gain insights
  5. PICKUP DESTINATION INTENT TO RIDE Help users make a decision

    Execute user intents Enhance user experience Analyze and gain insights POST RIDE
  6. PICKUP DESTINATION INTENT TO RIDE POST RIDE Help users make

    a decision Execute user intents Enhance user experience Analyze and gain insights
  7. POINT A POINT B CONTEXT MATTERS The Trip Experiences API

    can tell you… When the rider has free time How much free time they have Where they’re coming from Where they’re going
  8. 10 MINUTES OF MUSIC OR VIDEO FOR A 10 MINUTE

    TRIP NEWS & ENTERTAINMENT 38
  9. Auth your users via the native Uber app No more

    username & password One tap and your app can start requesting rides Single Sign On Auth via Uber
  10. Just set your ride parameters and let the Uber app

    handle the ride experience Existing users will feel right at home Keep the focus on your app; let us handle the ride Deep Links Quick & easy
  11. Highly configurable buttons let you get started easily Login Button

    lets you auth users using the method you want (Native, Authorization Code Grant, or Implicit Grant) Ride Request Button allows you to request a ride using Deep Links, the Ride Request Widget, or custom API logic Uber Buttons Ride Request Button & Login Button
  12. Provide the full Uber experience without ever leaving your app

    An entirely embedded experience, from request to drop off Ride Request Widget Experience Uber without the app
  13. Schemaless uses an append-only sparse three dimensional persistent hash map.

    A datastore developed by Uber with 5 goals in mind: 1) Linear scale - more storage and decreased response times 2) Writability - no middleware for fallback or retry 3) Notifications - triggers for downstream dependencies 4) Secondary Indexes - just like in Postgres to search for trips 5) Operational Trust - expert knowledge for mission-critical data DATA STORAGE WITH SCHEMA LESS
  14. MICRO-SERVICES Moving from a monolith solution to SOA created challenges

    related to obviousness, safety, and reliance. Our SOA architecture had to enable us for … 1) Discoverability - finding the right service out of 300+ should be trivial 2) Client Libraries - building SDKs for encapsulated services should be easy 3) Language - we need to have an architecture that is language-agnostic 4) Customizable - timeouts and retry policies are required and should be tunable 5) Efficiency - testing and development of new services with less overhead
  15. THRIFT AS IDL-BASED ENCODING PROTOCOL Thrift forces service owners to

    publish strict interface definitions. Encoding/Decoding is efficient, compression is good, and it unifies JSON blobs for Schemaless.
  16. Connect your user Detect when a user is on a

    ride Get the Uber Context Use the context to enhance your app!
  17. Create an app in the Uber Developer Dashboard Scroll down,

    find the “Webhook URL” field and enter a URL that will receive webhooks from the API Before we start:
  18. Connect your user Detect when a user is on a

    ride Get the Uber Context Use the context to enhance your app!
  19. Let them securely sign in with their Uber account username

    and password • OAuth 2.0 • Single Sign On Connect your user
  20. Connect your user Detect when a user is on a

    ride Get the Uber Context Use the context to enhance your app!
  21. You’ll receive a webhook when their ride status changes. Use

    the `user_id` to figure out which one of your users is on a ride. Detect when a user is on a ride
  22. Connect your user Detect when a user is on a

    ride Get the Uber Context Use the context to enhance your app!
  23. Get information about your user’s ride! • Pickup/destination location •

    Going home or work • Uber Product Type • ETA / Duration • and more! Get the Uber Context
  24. Connect your user Detect when a user is on a

    ride Get the Uber Context Use the context to enhance your app!