It’s commonly said that people are an organization’s greatest asset: Employees’ qualities, characteristics and motivation directly impact an organizations success or failure. Likewise, the success or failure of an API offering depends on the quality of the people who are involved in its development. Creating an API that will be efficient and well constructed--and that will delight the API consumer--is a human talent that API providers rely on to ensure their product is as good as it can possibly be.
ProgrammableWeb has formed a view on what constitutes a great API developer, from two perspectives:
- The qualities of the ideal developer
- Advice on how to recruit the ideal developer
Armed with this information, API providers will be able to make insightful and intelligent choices in building an organization to support their API
What Does an API Developer do?
Before proceeding with a discussion on the qualities of a great API developer, it’s important to outline ProgrammableWeb’s view on what the responsibilities of an API developer actually are.
An API developer acts as a conduit, taking an organization’s aspirations for the API economy and turning them into something practical. API developers’ primary focus, therefore, is to interpret the vision for the API that has been set by the organization’s stakeholders. The developer will collaborate with these stakeholders to produce an API that meets business requirements.
Developers will also implement API-first design practices to allow the API to reflect the best possible design and developer experience. The design and implementation of the API should take precedence over any preconceived notions or understanding of the underlying Stack.”
To make all of this happen, API developers need a set of heightened skills that characterize their ability to turn organizational requirements into great APIs.
The Qualities of a Great API Developer
The qualities of our candidate developer naturally mirror those of any great software developer, but are marked by some differences. These qualities are characterized in four ways:
- In-depth programming knowledge
- Ability to communicate effectively
- Deep understanding of the stack
- Readiness and ability to re-use
We’ll dive into these qualities in more detail below.
In-depth programming knowledge
First and foremost, an API developer has to be competent programmer, well versed in the skills required to effectively leverage the organization’s software Framework of choice for creating APIs. Outlining these skills for all programming languages, web application frameworks and API management tools would require a tome the size of a set of old-fashioned encyclopedias (at the very least). Companies therefore need to subjectively assess which technical skills are the best “fit” for the organization.
Developers also need insight into the overall architecture style employed by APIs-- not just knowledge of REST but the role of services, messaging, data, and so on. The key qualities that can be applied across all technologies include the following:
- Expert knowledge of REST + JSON: Great API developers have a complete understanding of the REST architectural style, including all its permutations. For example, an expert would understand the HTTP as being a choice rather than the definitive transport protocol for RESTful APIs. Great API developers also understand the use of JSON given its prevalence as the encoding of choice for the majority of newly published APIs. Moreover, they’d have a willingness and ability to explore and exploit new styles, standards and protocols as they become available, embracing approaches like Apache Thrift or transports such as MQTT where and when their use makes sense for their organization;.
- Appreciation of API-first design: The developer would understand the value the API-first design approach and how it can help deliver the best fit solution for your organization’s APIs. Moreover, they would be able to apply API-first design principles in order to create the best solution for the API in question, making choices in their implementation that support the iterative nature of the approach and build on design decisions made early in the lifecycle of an API. For example, a great developer would know how to optimize Resource access, iterating on the existing design to ensure the sensible and appropriate construction of URI patterns or query parameters. This would, of course have benefits programmatically (in efficient resource access) and in consumption (in building a great experience for API consumers).
- Solid knowledge of the API frameworks: ;As previously stated, the required knowledge of API frameworks is likely to be a subjective assessment based on the frameworks implemented in an API providers organization. With that said, of course, developers will need sufficient knowledge to make effective choices in the solutions they implement, drawing on the best of the framework in question and embellishing it with reusable libraries that make sense in the context of the organization.
Great API developers therefore need to be great all-round software programmersg: also need to appreciate the value of communication and being able to relay the design intentions behind the API.
Ability to communicate fluently
Most APIs released in either public or private API programs today are accompanied by information that complements the software itself for the benefit of the consumers of the API.