[cs_content][cs_element_section _id=”1″ ][cs_element_row _id=”2″ ][cs_element_column _id=”3″ ][cs_element_headline _id=”4″ ][cs_content_seo]Build a Visual Programming Editor
\n\n[/cs_content_seo][/cs_element_column][/cs_element_row][/cs_element_section][cs_element_section _id=”5″ ][cs_element_layout_row _id=”6″ ][cs_element_layout_column _id=”7″ ][cs_element_text _id=”8″ ][cs_content_seo]Internship
The internship can take place in Paris, Montpellier, or Bologna (Italy); remote work is possible if imposed by regulation. Compensation according to regulation.\n\n[/cs_content_seo][cs_element_text _id=”9″ ][cs_content_seo]Subject
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.\n\n[/cs_content_seo][cs_element_image _id=”10″ ][cs_element_text _id=”11″ ][cs_content_seo]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.
\n\n[/cs_content_seo][cs_element_text _id=”12″ ][cs_content_seo]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.
\n\n[/cs_content_seo][/cs_element_layout_column][cs_element_layout_column _id=”13″ ][cs_element_text _id=”14″ ][cs_content_seo]Application

\n\n[/cs_content_seo][cs_element_content_area _id=”15″ ][cs_content_seo]hbspt.forms.create({
region: “na1”,
portalId: “8554003”,
formId: “638d87ce-120d-4c41-ba1a-92efde931a5b”
\n\n[/cs_content_seo][/cs_element_layout_column][/cs_element_layout_row][cs_element_layout_row _id=”16″ ][cs_element_layout_column _id=”17″ ][cs_element_image _id=”18″ ][cs_element_button _id=”19″ ][cs_content_seo]OUR TEAM\n\n[/cs_content_seo][/cs_element_layout_column][cs_element_layout_column _id=”20″ ][cs_element_image _id=”21″ ][cs_element_button _id=”22″ ][cs_content_seo]OUR MISSION\n\n[/cs_content_seo][/cs_element_layout_column][/cs_element_layout_row][/cs_element_section][cs_element_section _id=”23″ ][cs_element_row _id=”24″ ][cs_element_column _id=”25″ ][cs_element_global_block _id=”26″ ][/cs_element_column][/cs_element_row][/cs_element_section][cs_element_responsive_text _id=”27″ ][cs_element_responsive_text _id=”28″ ][/cs_content]