INTERNSHIP BAC+4 – DEV JAVA – Taming the beast: seamless operability for the reference-data service

Posted:
10/9/2024, 12:05:25 AM

Location(s):
Ile-de-France, France ⋅ Paris, Ile-de-France, France

Experience Level(s):
Internship

Field(s):
Software Engineering

Murex is a global fintech leader in trading, risk management and processing solutions for capital markets.

Operating from our 19 offices, 3 000 Murexians from over 60 different nationalities ensure the development, implementation and support of our platform which is used by banks, asset managers, corporations and utilities, across the world.

Join Murex and work on the challenges of an industry at the forefront of innovation and thrive in a people-centric environment.

You’ll be part of one global team where you can learn fast and stay true to yourself.

Description of the team/department:

The Reference Data Management team is in charge of developing and handling the evolutions of internal services providing various data objects to different other services and business solutions of the MX.3 platform. The development team is composed of 2 C++ developers and 5 java developers (2 of them located in Beirut).

During the internship, the intern will be part of the team and integrated in the agile methodology. He/she will share his/her progress on a daily basis with the team and interact with other team members to learn and get information.

Missions:

The reference-data service, main service owned by the Reference Data Management team, is used by various Murex solutions and run by more and more clients. As a foundation service, not exposed in the final MX solutions, this service can often seem opaque. It can also seem complex as it deals with technical concepts such as data caching with dynamic invalidation, memory usage and thread pools allocations.

To reinsure Murex clients on their ability to “tame” the reference-data service it must be possible for them to:

  • configure the service to optimize its performances in the specific client context (cache management adapted to client activity, thread pools size adapted to the hardware, multi-instance, etc.)
  • easily start/stop/restart the service in acceptable time ranges with limited impact on the global availability of the platform
  • monitor in real-time the state of the service (activity, cache state)
  • dynamically modify the level of logged messages to obtain relevant information

The real-time monitoring is a key part of the operability, and a previous internship allowed to put in place an internal framework used by the Reference Data Management services to publish data to the centralized monitoring service of the MX platform, for a limited set of objects. But the solution has to be improved, aligned with new corporate standards and extended to the whole activity of the services.

Running multiple instances of a service is currently possible but it is necessary to elaborate recommendations on the best way to configure the services for multi-instance execution.

During the developments related to the operability of the service, the intern will have the opportunity to propose optimizations and to fix the detected issue, following the standard delivery process as any other developer of the team.

Profile:

Student in last year of an Engineering/Computer Science degree.

« Mandatory » skills:

  • Good knowledge and coding experience on Object Oriented Programming (especially Java)
  • Interest in software engineering challenges (“clean code”, resilience, operability, continuous integration, optimization, etc.)
  • Autonomy, curiosity, and capacity for innovation
  • Good understanding and speaking of English or French

« Nice to have » skills:  

  • Experience of Linux OS and shell scripting
  • Knowledge of SQL language (in Oracle, Sybase, Postgres, MSQL context)

Duration:   3-4 months