Foundations of a Successful Developer Platform - DeveloperWeek 2015

30
Foundations of a Successful Developer Platform Kamyar Mohager (@kamyarsayshello) Staff Engineer, Partner Engineering Lead LinkedIn

Transcript of Foundations of a Successful Developer Platform - DeveloperWeek 2015

Foundations of a Successful Developer

Platform

Kamyar Mohager (@kamyarsayshello)Staff Engineer, Partner Engineering Lead

LinkedIn

What We’ll Cover

• Platform Strategy• API Architecture &

Development• Documentation & Support• Monitoring & Operability

PLATFORM STRATEGY

Define what your platform offers

• How do you define success for your business?

• Decide what you want your developers to do in order to contribute to the success of your business

• Try to determine this early on but be nimble if your market changes

Now you can determine the who of your platform

• How do you get your developers to engage?

• Best case scenario: Your product already has enough pull on its own to get devs to start building apps

• Otherwise…– Business Development team = Partnerships– Evangelism (e.g. Hackathons) = Hackers /

Organic Ecosystem

Lessons Learned @ LinkedIn

• 2009:– Build it and they will come!– Let “professional apps” flourish; no focus on the

what and the who of our platform

• 2015– Primary focus on partnerships that align with

LinkedIn’s product and business goals– Continue to support broader developer community

but give more guidance on use cases that our platform supports

– Bloomed new partnerships and use cases beyond supporting “professional apps”

API ARCHITECTURE & DEVELOPMENT

Eating Your Own Dog FoodWrite API Once

Practice What You PreachI’m not only the Hair Club president; I’m also a

client

No matter how you say it, ideally you should consume the same APIs internally as you expose externally

Lessons Learned @ LinkedIn

• Domain knowledge belongs to product teams, not platform team

• Difficult to maintain a platform codebase separate from the core stack– Getting buy-in from other teams to

maintain their APIs was critical

• A growing disparity between what the core LinkedIn products offered and what our platform offered

Some Challenges to Consider

• Your API Gateway should be configurable to modify access control for external vs internal consumption• API management tool – Build vs Buy?

Treat Your API as a Product

• Write the API doc before building the API

• Gain valuable insights and developer feedback

• This influences both API development and the product itself

• Letting your developers sandbox the APIs while still in development = faster iterations

DOCUMENTATION & SUPPORT

Goal: Decrease Time to First API Call

• Regardless of how well your APIs are designed, poor docs discourage developers

• Focus on decreasing time to first API call with clear & concise documentation

Example: Authenticated Calls with Foursquare in 3 steps

Step 1: Register Your App

Step 2: Obtain an Access Token

Step 3: Authenticated Request

Clear Communication On The Do’s and Don’ts

• Communicate supported use cases clearly in context of the API documentation

• Provide a separate FAQ if necessary• Write your Terms of Use clearly to avoid

any confusion on what is/isn’t supported– Developer empathy: wasted time,

annoyance, anger b/c of confusion on unsupported use cases

– Try to avoid too much legalese if you can

SDKs and Libraries

• Pros:– Easily handle authentication and API

requests– Especially important for mobile

developers if you’re implementing web-based auth (OAuth)

• Cons:– Engineering investment is costly– Harder to maintain the more

languages/frameworks you support

Giving Developers the Support They Need

• Provide channels of support for your developers– Developer forums– Stack Overflow– Support Ticketing Systems

• Clearly define your support SLAs to set expectations

• If you have an open platform, be prepared for a wide variety of technical questions

• Staff your team appropriately to answer these questions on a timely manner

LinkedIn Developer Support

• Open developers: Stack Overflow• Partners: Zendesk• Our partner engineers cover all

support channels• SLAs vary

MONITORING & OPERABILITY

Always Have a Pulse On Your Platform

• Internally: Always have the operational metrics and instrumentation on the health of your APIs. Know when your APIs are down before developers do

• Internally: Be able to solve the key business questions of your platform

• Externally: If possible, provide some level of monitoring / alerting to developers so they’re not left in the dark

Twitter – API Health (external facing)

Partner Monitoring Dashboards

• We can monitor by:– API Endpoint– Application– Partner Program (set of applications)

• Alerted of any issues based on a given dashboard

• Optionally have our NOC alerted when necessary

InGraph Monitoring

InSummary

• Strategy decisions have a lasting impact

• Treat Your API as a Product• Developer communication is critical• Platform uptime and monitoring is a

priority• Remember to always be nimble

Kamyar Mohager (@kamyarsayshello)Staff Engineer, Partner Engineering Lead

LinkedIn

THANKS!