A software developer’s job is to write code. That’s the reason people hire them. I disagree. I believe a developer’s job is to solve a problem. In a world of SaaS, code libraries, APIs, and automation tools, the best way to solve the problem might be to figure out one or more existing solutions and focus on their integration, instead of reinventing the wheel.
Once, a potential client contacted me who had a specific need for marketing automation involving external APIs. Details are confidential, of course, but they don’t matter for the point I want to make. The client further mentioned he was already working on it with another developer. However, they were unhappy with the work they did and thinking of reassigning the project.
After the client shared the current state of the project with me, I realized that the developer had started implementing a specialized CRM (customer relationship management) tool from scratch. It would have taken some time to complete this CRM before even getting to the API-related work. Thus, I made a suggestion.
I proposed to scrap the whole thing, design a CRM with the required fields in Airtable, and have the client and his employees manage everything through their frontend. Managing structured data in tables is a solved problem, and Airtable is a magnificent tool. Then, I would implement a crontab-triggered service that pulls the data from Airtable via the API and then initiates the required requests on the other APIs. The API results would go back into Airtable. This way, I could focus my work on the value-add for his business, instead of writing generic frontend and data management code.
The client happily accepted, I built it, and he’s now using the system daily. Building headless (frontend-less) integrations with APIs and leveraging existing user interfaces wherever possible might not be the natural and intuitive choice. However, I am confident it can quite often be better and faster than writing your own. It can also help to keep a project with time and budget constraints.