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 (https://developers.google.com/blockly/). 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.
- 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.
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:
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.