An adventure at EURA NOVA

or 4 months with tailor-made IT partner.

The 15th of September 2015, I began my experience in an incredible company. It was supposed to be an internship but it was eventually much more than that. I learned a lot from great supervisors but also from everyone I had the chance to encounter. I discovered an unexpected range of technologies from a programming language such as Clojure to Docker passing by React.

I worked on the application built by one of my classmates. What better gift would you expect? The application is a document generation tool. The idea was to keep apart the content and the template of documents. The main purpose of the app was to be able to gather data from employees and then to allow Business people to generate a nice Logbook from this data (i.e. a consultant résumé used to acquire project or to sell a consultant to another company).

However, once the previous work was finished and improved, we agreed with the « client » to focus on ENX candidates. In other words, to allow the applicants to fill out their logbook within the application and make a good impression on him. The user interface needed a huge lifting to make it more user-friendly and « sexy ». We decided to rebuild the front-end, using ReactJS with Immutable.js and a Flux like architecture. The choice of not using the complete Flux architecture was made to reduce the developing time. Thus, I took part in designing the interface with a front-end-developer from ENX. Then I implemented a solution.

If you are not familiar with React, it helps you to build the « View » of your application. It has a virtual DOM using components with states and properties. That allows you to have some boiler-plate component that you can reuse inside your application or for another project. What’s more the states and properties enable the re-rendering of your components painlessly. Moreover, the interesting thing when you use Immutable.js for the states or the properties of your components is that you can improve the way React is rendering the real DOM. In fact, React checks if changes have occurred in the virtual DOM and then render those shifts in your DOM. But if you use regular Javascript Object as a state, then even if you make a change your state will remain the same object. It is implying a deep and nested checking to figure out where were the changes. But if you use an immutable object then you will just have to check references which is much less expensive.

Furthermore, Immutable.js is optimised in a way that it is only shifting the references that have really changed in the object. So it recycles whatever it’s possible to keep. If you consider the state of your application as a huge nested immutable object, therefore, it’s easy to update your view dynamically without burdening your performance with useless rendering.

In a sense working in Belgium wasn’t too disturbing. It is at the French border and if people you meet are not french, they usually speak french. However, I really enjoyed discovering this country and its culture.

Before leaving ENX, I asked my supervisors to get a feedback about my internship. But when they asked me what were the bad points or this experience, I really struggled to find something witty to say.

What if I tell you that I had the opportunity to interact with the two founders, be in touch with the R&D department, talk with consultants, be advised by experimented software engineers, enjoy a lot of independence but still help, work on design and user-interface issues, be part of interesting events, challenge your colleague in some Street-Fighter rounds, and much more.

Would you believe me?