Project: Tevreden API

For my then employer Tevreden BV, a research company in customer satisfaction, I designed a JSON API with wcustomers and third parties could integrate the Tevreden services, data and reports into their own sites or software.

Tevreden BV

Tevreden BV (currently part of The Feedback Company) was a research company specialized in satisfaction research via internet. The company provided a research platform for entire sectors like child care, automotive and pharmacy. I worked there for more than 10 years, and during that period I built large parts of the platform, which could be used to send out automated questionnaires and analyze the results using flexible reporting engines.
Many larger customers had the wish to integrate the research data and results on their own websites and connect their internal applications and systems with the Tevreden services. For that I had built a SOAP XML webservice which did the job but implementation turned out to be not very easy and it was hard to extend functionality. That's why I decided to start with a clean slate and build a more modular and easier to use JSON API.

Dancer framework

The in house developed research platform (named "Evaluation") had been developed using Perl5, starting somewhere around the year 2000. It contained quite some old code that didn't scale very well and was hard to maintain. My colleages and I have worked hard to refactor the core parts towards more modern and modular code.

Essential part of that was the use of better frameworks, in particular Perl Dancer. The new JSON API was the first project written using this framework. Dancer2 is a MVC "micro framework" which was inspired by Python Flask. We liked it so much that we used it for all new projects.

API Blueprint

Essential for a good API is documentation. It should be the starting point, before you write any code. For APIs there are many specifications which can be converted to html documentation. Back then I used API Blueprint. Nowadays I would really prefer the OpenAPI specification, which is more widely supported with better tools, but API blueprint also did the job quite well.

For customers and partners

The first use case for the API was quite simple. A partner needed a feed with filterable reviews to show on their website. Other more advanced features followed, like automated sending of questionnaire invitations. Some larger customers came up with custom requests that we implemented as generic as possible. Later we also started using the API in our own new applications.

For Tevreden itself

It was very hard to find Perl developers. In the end we decided to outsource the development of new functionality, using other languages than Perl. To prevent re-inventing the entire wheel, we could use our API. So we added more endpoints to unlock our existing internal api, for example our powerful reporting and benchmarking engine.

Current situation

I quit my job at Tevreden in 2017, as the last in house developer. The company went on for a while and finally was taken over by The Feedback Company. The Tevreden API however is still up and running, and apparently still being used. I can't help feeling a little bit proud about that.

Do you have a project or job where you could use my help?

Contact me, and we can discuss your requirements and wishes!