Willem de Jong

Creator of open source Erlang implementations of XML, SOAP, GRPC

Willem first encountered Erlang in 1993. At that moment he was testing a number of ASN.1 tools at the research department of KPN. The Erlang ASN.1 application was one of these tools. Unfortunately he did not recognize the greatness of Erlang at that moment.

In 2005 Willem was working as an IT Architect for T-Mobile Netherlands. From some T-Mobile UK colleagues he heard stories about a programmer who would make changes to their Erlang system during the meeting in which they were discussing the requirements. Even if these stories were exaggerated, it was clearly very different from the development cycles at T-Mobile Netherlands and Willem decided to take a closer look at Erlang. This resulted in the creation of Erlsom (an XML parser) and some other hobby projects.

After having worked for more than 15 years as IT Solution Designer and IT Architect at various telecom operators, Willem decided that he had seen enough Word documents, Powerpoints and Visio pictures. In 2015 he started as a freelance Erlang programmer. Since then he has done various projects, including more open source projects (sponsored, this time): Erlang implementations of the SOAP and GRPC protocols. Since August 2017 he has been working mainly for Deribit, an online trading platform for Bitcoin futures and options.

Past Activities

Willem de Jong
Code BEAM Lite Amsterdam 2018
30 Nov 2018
12.00 - 12.20

Getting Erlang to talk to the outside world – in a language that they understand

In 2002 Joe Armstrong, one of the inventors of Erlang, wrote an article called Getting Erlang to talk to the outside world. In this article he explains how awful SOAP is and proposes something better. He is right: SOAP is awful. But he misses an important point: to talk to the outside world you need to use a language that the outside world understands.

Deribit is a trading platform for Bitcoin derivatives, built in Erlang. When Deribit decided to improve their API we had to select a protocol. It had to be efficient, because trading has to be as fast as possible. It had to support 2-way communication, because traders must not only place orders, they also need to get a continuous flow of data pushed to them. And it had to be simple, because not all customers are IT experts – it had to be in a language that they could understand.

We decided that we could not use a completely standard solution such as SOAP, REST or GRPC. Nevertheless, we came up with a solution that relies on standard elements (JSON-RPC, Websockets, OpenApi, OAuth). Using these elements we created something that also allowed us to develop a set of tools to generate documentation, to run tests and to create a “postman”-like tool to use the API from a browser.

The talk will present this solution as a case study. It will also present some more general thoughts about the best ways to make Erlang (or Elixir) talk to the outside world in a way that the outside world can understand.