Block Programming Editor Internship


Paris or Montpellier, France


DecisionBrain is a young international company that develops and sells software solutions for decision support.

The internship will preferably take place in our offices in Paris (10e) or Montpellier (Millénaire). Remote work is possible if imposed by regulation.

Decision Optimization Center

Decisionbrain develops a platform to create, deploy and maintain fully scalable decision support solutions. Quickly, easily, efficiently. DOC accelerates the creation and deployment of decision support solutions.It is written in Java for the back-end and in Angular for the front-end, and relies on a number of technologies such as Spring, Docker, etc.


One of the feature in the DOC platform is a scripting language dedicated to orchestrating decision processes. Using this language, the platform developer can write scripts in which s/he requests inputs from the user, triggers optimization tasks, retrieves data from a database or saves it back, etc.

For the time being, the scripting language has no concrete syntax. The only way to write a script is writing some Java code that creates the objects that compose the abstract syntax tree of your script. Among the various possibilities for a concrete syntax, a block-based one is the focus of this internship.

The purpose of this internship is to investigate and develop a visual script editor based on Google's Blockly library ( The expected results include:

  • Definition of the graphical lexicon to match the scripting language statements and expressions.
  • Depending on the cases, this will either consist in configuring existing. Blockly components, or in writing new ones.
  • Integration of the editor based on the Blockly library in our Angular
  • Definition of a persistence and interchange format for scripts, based on the XML documents produced by Blockly.
  • Development of the script management features on the Java side.
  • Skills

    The internship subject touches a variety of technology. Most of its complexity comes from that, and probably a significant part of its interest, too. The candidate is not expected to fully master all of these technologies, but to have strong skills in a sufficient number of them to be able to acquire the missing ones. The technologies in question include:

    • Back-end development, preferably in Java. Use of a dependency injection framework such as Spring. Familiarity with databases, in particular MongoDB.
    • Front-end development, preferably with Angular.
    • Versioning systems, preferably Git. Build tools such as Gradle or Maven.

    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.


    About DecisionBrain

    At DecisionBrain, working as a team is really in our DNA as we believe it makes us stronger and enables us to deliver better long-term results to our customers. Therefore we are looking for talented people who are not only passionate about software and high-tech and excellent in their domain, but also share our vision and values and are willing to be part of a strong team.

    Working at DecisionBrain means that you will have the opportunity to join a visionary and quickly growing young company, have a direct impact on the evolution and success of the company, evolve rapidly with a very experienced and dynamic team, and work with customers around the globe.

    Job Application

    Let us know about you: What is your background? Where would you like to work? Why do you want to join DecisionBrain?

    E.g. Your Resume. Maximum 2 MB. Acceptable files .pdf, .jpeg, .docx


    We thank you for your interest in DecisionBrain. We do our best to answer every application; however, if you do not hear from us within three weeks after you have submitted yours, please consider that we have currently no open position matching your profile. We would nevertheless like to keep your résumé in our database for the next twelve months from the date of your application, in case an opportunity would arise. It will automatically be deleted after this period. We may as well transfer your résumé to third parties, for the sole purpose of assessing your application.

    In addition, please note that you can at any time request the modification or deletion of your résumé from our database by contacting our Data Protection Officer.