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.
A great API developer therefore needs to be a competent scribe who can document the decisions made in building an API so that a complete picture can be delivered to the API consumer. This information include the following (based on the assumption that the API in question is implemented with an HTTP endpoint):
- Details on supported HTTP methods
- The meaning of each resource (URI) exposed by the API and any associated query parameters or HTTP headers
- Meaningful example payloads that help inform the API consumer
In some organizations, the developer may also have to deliver product information, functional specifications or operational procedures to support the API. Having very competent written communication skills is therefore an essential characteristic in a great API developer as they flit from programmer to technical author and back again.
Deep understanding of the stack
Anyone describing himself or herself as a “full-stack” developer is making a bold claim; the phrase implies a holistic understanding of several technologies and the ability to produce a solution across an entire architecture. Moreover, there are myriad interpretations as to what the “stack” actually contains--especially in the DevOps context, where the infrastructure-as-code paradigm introduces a completely new perspective. However, such qualities are exactly what great API developers possess, allowing them to make effective choices in developing APIs by both creating a consumable, efficient API that engenders a great experience for the API consumer and best-fit system integration at the backend.
Some examples of the insights full-stack developers can offer include:
- Optimizing API design choices for front-end applications: A great API developer will recognize the need to tailor APIs for specific use cases that may require, for example, more heavy lifting server side (mashing up several existing API into a single, new API), the implementation of CORS to support browser-based applications or technologies like Apache Cordova; and the ability to construct SDKs that encapsulate the API’s functionality (if that is a product choice offered by the API provider);
- Understand the orchestration paradigm: A great API developer will understand that his or her API may be the composite of several other fine-grained API calls. Being able to deliver an effective and flexible mechanism for orchestrating such API calls is an effective skill in itself and can require a significant investment in development time to hone. A great API developer will compute and implement all the permutations such orchestration requires whilst still implementing a RESTful API to the API consumer;
- A general understanding of integration architecture: Knowledge of approaches that have typified enterprise systems over the last two decades, especially the use of service-orientated architecture (SOA) is a key quality for any API developer working in an organization that is aiming to become an API provider. Where an organization is monetizing existing backend systems, having an API developer who has detailed knowledge of both the technologies in play and systems integration in general will be invaluable for creating an API that can efficiently and effectively expose these data sources via an API.
Readiness and ability to re-use
The ability for a developer to seek re-use opportunities may seem an obvious, but, in the context of the API economy, there are additional considerations:
- API developers can recognize when an existing API (whether it’s one their organization’s internal APIs or an external, public one) offers part of the functionality that they need to build, and thus that a mashup of their own API and the existing API makes sense.
- Conversely, the API developer will also know when a mash-up doesn’t make sense because of the operating parameters of the API they are including in their application (which will implicitly be passed on to their consumers); this will include SLAs, terms and conditions, and quota and rate limits.
Having the insight to recognize and act on these two conditions is an important characteristic of a great API developer. They will be more productive and more effective at making the kinds of decisions that will bring great results.
Where to Find a Great API Developer
Now that you know how to qualify candidates, the only thing you need to do is find them. There are a number of proven on- and offline approaches to finding candidates.
For example, highly trafficked forums where developers spend a lot of time interacting with each other is a good place to not only look for developers that will match your requirements but also post the availability of positions at your company.
Forums that come to top of mind are Hacker News (where job postings are not a free-for-all but allowed with certain conditions) and ForHire Reddit. Of course, there are a variety of social networks with strong developer followings, such as LinkedIn and Twitter, where great candidates can be found.
Recruitment Model
Once potential candidates are identified, the recruitment model is likely to follow traditional recruitment methodologies, such as interview and technical test either in person or online. An alternative, increasingly popular approach is to use engagements that require physical presence and the performance of detailed task. A hackathon, often organized and marketed via Meetups is becoming an increasingly common way of engaging with and assessing developer talent first hand.ProgrammableWeb covered a great example of this “physical-first” approach in December 2014 with the Citi hackathon, where an overt objective of the exercise was to find and recruit new developer talent. The UK Meetup calendar is also full of hackathons where the explicit goal is to source creative and technology talent; whilst these events are not expressly design to find API developers, they achieve the goal of challenging developers to quickly complete a task using creativity and guile. Such approaches can clearly work in the world of creating APIs, as developers prove their skills by exemplar. Organizations that intend to become, or already are, API providers should give serious consideration to following this recruitment approach. Moreover, holding a hackathon and challenging developers to find creative ways to monetize an organization’s assets may reveal development opportunities that have not even been considered by internal stakeholders.
Conclusions
In this article we’ve covered the qualities a great API developer will possess and how an organization might go about finding and recruiting such developers, with the aim of providing a core knowledge for new or existing API providers undertaking recruitment activities. Of course, technical capabilities are important, but developers also need to be a great “fit” for an organization: Without a personality and disposition that match an organization’s culture, a candidate possessing all of the qualities detailed in this article may not work out. Recruitment must therefore be a balanced mix of empirical evidence and subjectivity; achieving this balance will result in the recruitment of a great API development team.