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

Building Platforms for Developers

Building Platforms for Developers

Building Platforms for Developers presented at CodeMotion + CodeEurope 2017.

6d9b2c900628962b16a5cb5e4e73990e?s=128

Dustin Whittle

May 17, 2017
Tweet

Transcript

  1. Building Platforms for Developers Dustin Whittle, Developer Advocate Presenting the

    work of many people at Uber
  2. None
  3. 73
 Countries 470+ Cities 75%
 of the U.S. population lives

    in a county with access to Uber 1.5M+
 Active Driver Partners 5+ Million
 Trips per day 2+ Billion
 Trips completed
  4. None
  5. THE UBER PLATFORM VISION BUILD MOVING EXPERIENCES

  6. THE UBER PLATFORM VISION BUILD MOVING EXPERIENCES Working with Developers

    Forging Partnerships Providing Tools Uber Cultural Value: Let Builders Build
  7. THE UBER PLATFORM VISION BUILD MOVING EXPERIENCES Getting people from

    A to B Features for people while they move Products that bring joy Making daily life easier: Saving time & Money Uber Cultural Value: Make Magic
  8. THE JOURNEY SO FAR

  9. Where there's a will, there's a way

  10. It started with a deep link to push a button

    and get a ride
  11. None
  12. Welcome back,

  13. None
  14. In 2014 we first released the Uber API

  15. In 2015, first partners started building Uber experiences

  16. Today, leading global brands elevate their experience with Uber

  17. OUR APIS …

  18. • An interface between systems • An integration between products

    • An experience created by people • Builders + Tools + Inspiration = Magic API What does it mean to you?
  19. Make an API call, get a ride.

  20. Uber Developer Platform Enabling the world to build moving experiences

    with Uber.
  21. A Platform Is Not Just A Product

  22. Platforms are ecosystems

  23. Building a platform that interacts with the real world adds

    another level of complexity (and opportunity)
  24. None
  25. We make the complex simple

  26. POINT A POINT B

  27. POINT A POINT B INTENT TO RIDE POST RIDE

  28. POINT INTENT TO RIDE Ride Request Button Deep Links Webhooks

    /request /products /estimates/price /estimates/time /requests/[id] /history /me Ride Details Ride Options Ride Request
  29. Citymapper /products /estimates/price /estimates/time

  30. Citymapper Deep Links

  31. None
  32. Webhooks allow apps to be reactive

  33. None
  34. None
  35. POINT POINT O RIDE Webhooks /current all_trips scope Trip Experiences

    POS
  36. POINT A POINT B 2,000,000,000 TRIPS THE TRIP

  37. POINT A POINT B 20 MINUTES PER TRIP ~ THE

    TRIP
  38. POINT A POINT B 40,000,000,000 MINUTES OF FREE TIME ~

    THE TRIP
  39. 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
  40. None
  41. On-Trip Experience Off-Trip Experience

  42. We help internal teams release developer products

  43. Organized as Programs and Platforms Program Platform Mission Business Focused

    Technology focused Consumers Non-technical + Internal/External Technical + Internal Products Feature-based products Technology consumed by programs Team Cross-functional Specialized Direction Product drivers Engineering Drivers
  44. Languages in use at Uber We are a polyglot engineering

    organization, and we speak many languages. In order of preference - many services are moving to Go (or Java)
  45. None
  46. POINT POINT O RIDE Uber Deliveries /deliveries/[id] Delivery Details /deliveries

    /deliveries/quote Delivery Options Delivery Request POS
  47. None
  48. /partners/trips /partners/me /partner/payments /partner/tax-summary Payments Identity History POST RIDE POINT

  49. We help external teams build on top of these developer

    products
  50. Iterate with the developers

  51. None
  52. Uber Developer Platform Enabling the world to build moving experiences

    with Uber.
  53. HOW WE BUILT IT

  54. https://medium.com/google-developers/why-do-we-pay-these-people-anyway-d7ed706d6d55

  55. None
  56. PLATFORM FEATURES SDKS PARTNER ENGINEERING DEVELOPER ADVOCACY

  57. Support the community Hackathons and events Drive innovation Make every

    developer aware of the Uber API DEVELOPER ADVOCACY DEVELOPER ADVOCACY
  58. PARTNER ENGINEERING Support partners from idea to launch Influence roadmap

    and API design Support developer advocacy Align the platform’s direction with developer needs DEVELOPER ADVOCACY
  59. PLATFORM FEATURES SDKS PARTNER ENGINEERING Stability needs Integration needs Bug

    reports Load prediction API design Relay developer feedback DEVELOPER ADVOCACY Integration needs SDK design Relay developer feedback
  60. PLATFORM FEATURES SDKS PARTNER ENGINEERING Stability concerns Source of truth

    Outage alerts Developer issues Solicit API feedback Long tail developer support DEVELOPER ADVOCACY Developer solutions Solicit SDK feedback Long tail developer support
  61. Enable developers to go from zero to hero!

  62. None
  63. None
  64. Enable partners to quickly understand scope of work for a

    use-case
  65. Be a good shepard of your platform

  66. 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
  67. 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
  68. 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
  69. 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
  70. None
  71. Documentation built for developers

  72. None
  73. None
  74. None
  75. SDKs and sample apps enable developers

  76. Make it safe to play in a sandbox

  77. Automate the tedious tasks

  78. None
  79. None
  80. Errors should be obvious and helpful

  81. None
  82. Great support is critical. Build a community!

  83. None
  84. None
  85. None
  86. None
  87. None
  88. WHAT WE LEARNED

  89. What works for a single API… doesn’t work for a

    developer platform.
  90. FEATURES PARTNER ENGINEERING DEVELOPER ADVOCACY PLATFORM SDKS

  91. FEATURES PLATFORM SDKS PARTNER ENGINEERING DEVELOPER ADVOCACY

  92. DEVELOPER ADVOCACY PLATFORM SDKS FEATURES

  93. DEVELOPER ADVOCACY PLATFORM DEVELOPER PRODUCTS

  94. DEVELOPER PRODUCTS DRIVER DELIVERIES DEVELOPER ADVOCACY PLATFORM PARTNER ENGINEERING PARTNER

    ENGINEERING
  95. Scale the process and your team.

  96. Developer value comes from listening to your developers.

  97. Company value comes from discovering what your developer platform uniquely

    brings to your company.
  98. The challenge is not technology… It’s imagination.

  99. What future will you build? https://developers.uber.com

  100. None
  101. Q & A

  102. DEVELOPER PARTNER PL AT FO RM FEA TUR ES SD

    KS