Build a Visual Programming Editor


The internship will preferably take place in our French offices; remote work is possible if imposed by regulation. Compensation according to regulation.


Visual Programming refers to programming languages where programs are written by interacting with graphical elements, as opposed to text. A well-known example is Scratch, the educational language invented by MIT. Building on this idea, the Blockly library developed by Google allows anyone to build a block-based editor for any programming language.

At DecisionBrain, we have developed a simple scripting language that users of our DB Gene product use to write tasks in their applications. We want to develop a block-based editor for this scripting language. During this internship, you will:
  • Experiment with the Blockly library to understand how to develop a block-based editor for a custom language.
  • Get familiar with the DB Gene scripting language and develop a block-based editor for it.
  • Connect this editor with the DB Gene back-end through a REST API, so that scripts written with your editor are known to DB Gene, and persisted in its database.
  • Perform the reverse connection, so that scripts existing in the DB Gene back-end can be edited with your editor.
  • Package your editor as a DB Gene widget so that it can be embedded into the DB Gene user interface.
This internship will also be an opportunity for you to participate in the development of industrial projects, using enterprise-grade development processes and tools such as Docker, Kubernetes, Git, CI/CD, Merge Requests, Gradle, etc.

Skills Required

On the technical side, the following skills will be required. You are not expected to fully master all of them, but you should be proficient enough in at least part of them, so that acquiring the other skills is doable.

  • Javascript development (Blockly is a Javascript library), CSS styling.
  • Knowledge of REST API principles, and of exchange formats such as XML and JSON.
  • Java development (the DB Gene back-end is in Java). Typescript / Angular development (the DB Gene user interface is in Angular).
Beyond technical skills, the candidate is expected to be autonomous and able to collaborate efficiently with other team members. Reasonable levels in spoken French and written English are mandatory.