Skip to content

Building a compiler to an intermediate language at Fonto

On-site
  • Rijswijk, Zuid-Holland, Netherlands
Internships & Graduation

Job description

At Fonto, we are building an editor for XML documents. Or rather, a framework for building editors. These editors are configured using XPath: a query language for XML. We have built our own implementation of XPath 3.1 in JavaScript: https://github.com/FontoXML/fontoxpath/. We recently also ventured into code generation: FontoXPath can generate JavaScript source code for a small subset of XPath.

We also have a number of server-side components, that are written in C#. In these server-side components, we also want to use XPath, but unfortunately, there are no usable implementations there. We are looking into making our own but we do not want to maintain two XPath implementations.


We would like you to research the viability of an XPath compiler that can generate code in an intermediate language that can easily be executed on server components that are written in C#, but possibly also in Rust or in WebAssembly. Recent developments in browsers point to WebAssembly giving great performance benefits, we would like to explore WebAssembly to execute our XPaths in, but without the burden of maintaining multiple XPath engines.


You will be working closely with the head maintainer of the FontoXPath library and the person who implemented the JavaScript code generation.


About Fonto

We are a 100% tech/product company based in Rijswijk and near to the Haagse Hogeschool. Our flagship is an online text editor like Google Docs but then for a wide variety of diverse XML schemes and their specific way of implementation. All sorts of companies like Toyota, BBC, Pearson, VMware, and various governments utilize our product.
We are sincerely proud of the fact that we have already guided over 40 students in the last 5 years. People are a family for each other: people take care of each other, and the same goes for the company. Within the company, there is no hierarchy nor a one-man show.


Perks & Benefits

  • An internship allowance of 450 euros.

  • A team of passionate people who genuinely care about what they do and the standard of work they produce.

  • Agile working; the best of kanban, scrum, common sense and a healthy sense of reality based on decades of combined experience.

  • Opportunities to make a difference in a nimble, highly productive environment.

  • Tasty lunches with daily fresh bread and (almost) all the spreads that the AH delivers.

  • Fresh fruit, biscuits, chips and other snacks.

  • Weekly Friday afternoon drinks with music, beer / wine and frying for the enthusiast.

  • Free T-shirts and other merchandise.

  • Enjoy what you do every day!

Job requirements

  • You should be acquainted with building compilers or at least be interested in becoming acquainted with building compilers.

  • You know how to analyze a complex problem and you can jump in a rabbit hole without knowing where it leads you.

  • You are autonomous, but you know when to ask for help.

  • You speak English professionally. Many of our colleagues do not speak Dutch.

or