InterviewStack.io LogoInterviewStack.io
Browse more Full-Stack Developer jobs

Concepteur – Développeur Full Stack F/H

Numih France

Rabat, MA9 months ago
84 views49 saves13 applies

Prepare for this role


Job Type

full time

Description

Ils recrutent pour nous ! Présent dans 10 pays, Stanley field est le premier groupe international de conseil « all-in-one » dédié aux entreprises à taille humaine ; nous alignons capital humain, innovation digitale et excellence opérationnelle pour bâtir une transformation durable des entreprises. Membre du Pacte mondial de l’ONU, nous sommes pleinement engagés à agir de manière responsable envers la société afin de promouvoir l’égalité, l’inclusion et la justice sociale. Notre client, acteur public engagé dans la transformation numérique de la santé en France, poursuit son fort développement à l'international. Description du poste Au sein de la Direction de l’Offre Santé Numérique, en contact direct avec les clients hospitaliers, vous prendrez part activement au développement et à la maintenance évolutive des progiciels phares de l’entreprise. de l’analyse à la livraison. A ce titre, vos principales missions consisteront à : Participer à l’analyse technique des besoins fonctionnels (émanant de la Direction de l’Offre), contribuer au chiffrage des projets et à l’évaluation des charges de développement. Concevoir, développer et tester des nouvelles fonctionnalités robustes et maintenables, en appliquant les principes Agile/Scrum au sein de micro équipes. Assurer la documentation technique tout au long des phases du projet (conception, réalisation, déploiement) et participer activement aux revues de code pour garantir la qualité du produit. Assurer le support technique des applications en production et participer à la résolution des incidents. Participer activement à toutes les cérémonies Agile et à la vie du projet jusqu’à sa livraison effective, en collaboration étroite avec les autres membres de l’équipe (développeurs, QA, product owner). Cette description n’est ni limitative, ni exhaustive. Elle prend en compte les principales responsabilités. Profil recherché De formation supérieure Bac (+4/5) école d’ingénieurs, master en informatique ou équivalent, vous justifiez d’une expérience réussie de 2 ans minimum dans des fonctions similaires. Les candidatures Bac +3 seront également étudiées. Une expertise approfondie en conception et développement logiciel est requise, avec une maîtrise technique solide des écosystèmes Java/Spring et Ext JS. Cette expertise s’appuie sur la parfaite connaissance des frameworks Spring Core, Spring Boot, Spring Security, et Hibernate, ainsi que sur une solide expérience des bases de données relationnelles et NoSQL (Oracle, MongoDB). La maîtrise des outils modernes de développement et d’intégration continue (SVN, Maven, Jenkins, Sonar) est essentielle, de même qu’une bonne connaissance des environnements Linux et des conteneurs web Tomcat, ainsi que des IDE comme Eclipse, IntelliJ et Visual Studio Code. Une connaissance des architectures logicielles orientées services, avec la mise en œuvre d’API REST et de messagerie asynchrone (RabbitMQ), et une expérience avérée des pratiques de tests unitaires (JUnit, Mockito) sont également attendues. Enfin, la familiarité avec les outils de gestion de projet Jira et Confluence sera appréciée. La capacité à analyser, concevoir et résoudre des problèmes techniques complexes, sans compromettre la qualité et la sécurité du code, est un prérequis fondamental. Enfin, une grande rigueur, une autonomie forte, le sens des responsabilités, un esprit d’équipe affirmé et d’excellentes aptitudes à la communication sont des qualités indispensables pour réussir dans cet environnement. Pour toute question concernant cette offre, veuillez contacter Placide OULAI, consultant en recrutement, pour postuler, veuillez envoyer votre CV à : rloutfi@stanleyfield.com ou postuler directement via le lien : https://stanleyfield.com/offres/590-53-developpeur-h-f/ Réf: cdae8643-8b00-4f94-8b13-cc9d6927797e Je postule à cette offre Concepteur – Développeur Full Stack F/H Numih France Maroc CDI Temps plein Rabat Civilité * Madame Monsieur Mx Nom * Prénom * E-mail * Numéro de téléphone * Disponibilité Sélectionnez votre disponibilité immédiate 15 jours 1 mois 2 mois 3 mois + 3 mois Attentes salariales (Brut/an) * Sélectionnez la tranche de salaire Inférieur à 15 000€ 15 000€ - 20 000€ 20 000€ - 25 000€ 25 000€ - 30 000€ 30 000€ - 35 000€ 35 000€ - 40 000€ 40 000€ - 45 000€ 45 000€ - 50 000€ 50 000€ - 55 000€ 55 000€ - 60 000€ 60 000€ - 65 000€ 65 000€ - 70 000€ 70 000€ - 75 000€ 75 000€ - 80 000€ 80 000€ - 85 000€ Supérieur à 85 000€ CV * Choisir un fichier Format: .PDF, .DOCX, .DOC, .JPG. Poids max. : 2 Mo. Autre document (lettre de motivation, lettre de recommandation, portfolio, etc.) Choisir un fichier Format: .PDF, .DOCX, .DOC, .JPG. Poids max. : 2 Mo. Acceptez-vous les déplacements ? * Oui Non Êtes-vous en possession du Permis B ? * Oui Non Connaissez-vous quelqu'un dans l'entreprise ? * Oui Non Si oui, merci d'indiquer les noms prénoms de la personne 1/ Quels sont les finalités des traitements de données à caractère personnel ? Les données à caractère personnel collectées à l’occasion de l’examen de votre candidature font l’objet d’un traitement informatisé par le service des ressources humaines du Numih France lui permettant de gérer le processus de recrutement de ses futurs collaborateurs. De plus, les données des candidats non-retenus, seront collectées en vue d’alimenter notre CVthèque et de vous proposer, le cas échéant, de nouvelles offres. Ces traitements sont nécessaires à l’exécution des mesures précontractuelles et à l’établissement de la relation contractuelle entre le Numih France et les candidats à l’emploi, à l’apprentissage ou à un stage, ou pour permettre au Numih France de poursuivre ses intérêts légitimes dans le respect des droits du candidat. Les finalités pour lesquelles le Numih France traite les données sont les suivantes : - La réception et l’enregistrement des candidatures adressées au Numih France - La gestion du processus de recrutement (entretiens, test de recrutement…) - La constitution et la gestion d’une CVthèque pour de futures opportunités d’emploi 2/ Quelles catégories de données seront collectées et traitées ? Pour répondre à ces finalités, seules des informations personnelles strictement nécessaires à l’appréciation de votre capacité à occuper l’emploi proposé ou à la mesure de vos aptitudes professionnelles vous seront demandées pendant la phase de sélection. À cette fin, nous vous demanderons des données d’identification (nom, prénom) ainsi que, des données relatives aux diplômes que vous avez obtenus, à vos expériences professionnelles, à vos compétences et aptitudes professionnelles en lien avec le poste proposé. La non-fourniture de ces données rendra impossible votre participation au processus de recrutement. Également, dans le cadre de nos processus de recrutement, nous pourrions être amenés à vous administrer un ou des test(s) de recrutement. La finalité étant d’apprécier votre capacité à occuper l’emploi proposé. Le cas échéant, nous vous informerons préalablement à la mise en œuvre de ce(s) test(s), de la nature et des méthodes et techniques utilisés à leur égard. 3/ Quelle est la durée de conservation de vos données ? Les données nécessaires pour le processus de recrutement sont conservées pendant la durée nécessaire à l’aboutissement de ce dernier. Les données des candidats non-retenus seront conservées pendant une période de deux ans à compter de la réception de votre candidature, afin d’alimenter notre CVthèque. 4/ Qui accède aux données recueillies à l’occasion de l’examen de votre candidature ? Votre dossier est traité de manière confidentielle. Seuls ont accès aux données à caractère personnel y figurant les responsables des services intéressés par votre candidature (chargés de recrutement, managers, etc.). 5/ Quels sont vos droits et comment les exercer ? Vous avez le droit d’accéder à vos données à caractère personnel. Vous disposez, par ailleurs, des droits de rectification et d’effacement de ces données ainsi que du droit de vous opposer à leur traitement. Pour toute question relative à la protection de vos données ou pour exercer vos droits, vous pouvez contacter le délégué à la protection des données (DPO) du Numih France à l’adresse suivante : dpo@numihfrance.fr. En cas de difficultés, vous pouvez saisir la Commission nationale de l’informatique et des libertés (CNIL) d’une réclamation. *En cliquant sur "Je postule" vous reconnaissez en avoir pris connaissance. Numih France J'accepte que l'entreprise Numih France conserve mes données personnelles pendant une durée de 2 ans afin d'être recontacté(e) pour de nouvelles opportunités --> --> Je postule Merci de bien vouloir compléter tous les champs obligatoires. (Les champs obligatoires sont suivis d'une *) * Champs obligatoires Partager l'offre &via=We_Recruit_" target="_blank" class="hover-color1"> Partager par email --> (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) { return; } js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/fr_FR/sdk.js#xfbml=1&version=v2.3"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); t._e = []; t.ready = function(f) { t._e.push(f); }; return t; }(document, "script", "twitter-wjs")); $(".dropdown dt a").on('click', function() { $('ul[data-id=' + $(this).attr('data-id') + ']').slideToggle('fast'); }); $(document).bind('click', function(e) { var $clicked = $(e.target); if (!$clicked.parents().hasClass("dropdown")) { $(".dropdown dd ul").hide(); } }); $('.mutliSelect input[type="checkbox"]').on('click', function() { var inputId = $(this).attr('class'); var selectId = inputId.replace('custom-control-input checkbox-color1 checkbox-element question-', ""); var title = $(this).closest('.mutliSelect').find('input[type="checkbox"]').val(), title = $(this).val() + ","; if ($(this).is(':checked')) { var html = ' ' + title + ' '; $('.multiSel-' + selectId).append(html); $(".hida-" + selectId).hide(); } else { $('span[title="' + title + '"]').remove(); var ret = $(".hida"); $('.dropdown dt a').append(ret); } }); var isSafari = !!navigator.userAgent.match(/Version\/[\d\.]+.*Safari/); if (isSafari) { var form = document.getElementById('form'); // form has to have ID: form.noValidate = true; form.addEventListener('submit', function(event) { // listen for form submitting if (!event.target.checkValidity()) { event.preventDefault(); // dismiss the default functionality document.getElementById('errorMessageDiv').style.display = 'block'; } }, false); } var questions = [{"choices":[],"type":1,"id":"0d958cf9-750d-444d-9f6b-743e47219811"},{"choices":[],"type":1,"id":"653d4c2f-d561-44ef-ad5e-f3c633eafff3"},{"choices":[],"type":1,"id":"b7c396d5-f749-4939-a194-0c1b26c33593"},{"choices":[],"type":0,"id":"f605cf2e-7368-4070-86d1-be5f8fa2d1ec"}]; questions.forEach( function(q) { $('.question-' + q.id) .click( function() { if (q.type === 2 || q.type === 3) { var query = q.choices.find( function(c) { return $('#question-' + c.id).is(':checked'); }); if (query) { $('.question-' + q.id).attr("required", false); } else { $('.question-' + q.id).attr("required", true); } } }); }); (function(d, s, id) { var js, iajs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) { return; } js = d.createElement(s); js.id = id; js.async = true; js.src = "https://apply.indeed.com/indeedapply/static/scripts/app/bootstrap.js?hl=fr"; iajs.parentNode.insertBefore(js, iajs); }(document, 'script', 'indeed-apply-js')); $(".checkbox-element").each((index, element)=>{ $(element).on('click', function(){ var $this = $(this); var questionId = $this.data('question-id'); var otherCheckboxes = $('.question-'+questionId); var checkedElements = otherCheckboxes.toArray().filter(i=>$(i).is(':checked')); var questionInput = $("#question-"+questionId); questionInput.val(checkedElements.length ? "OK":""); questionInput.trigger('focus'); questionInput.trigger('blur'); window.formValidator.element("#question-"+questionId); }) }) $(document).ready(function() { $('.description-blocks a').attr('target', '_blank'); $('input[type="file"]').each(function(index, element){ $(this).change(function(){ $(this).blur().focus().blur(); }); }) }); $('#form').on('keyup keypress', function(e) { var keyCode = e.keyCode || e.which; if (keyCode === 13) { e.preventDefault(); return false; } }); $.validator.methods.phoneNumber = function(value, element) { return this.optional(element) || /^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/.test(value); }; window.formValidator = $("#form").validate({ ignore: [], rules: { phone: { required: true, phoneNumber: true }, }, errorPlacement: function(error, element) { console.log(error, element); error.addClass('invalid-feedback'); if (element.is('input[type=radio], input[type=checkbox]')) { element.parent().parent().append(error); } else { error.insertAfter(element); } }, highlight: function(element, errorClass, validClass) { $element = $(element); if ($element.is('input[type=hidden].qcm-field')) { var questionId = $element.data('question-id'); var div = $('div[data-question-id="' + questionId + '"]'); div.addClass(errorClass); div.find("button").addClass(errorClass); div.removeClass(validClass); div.find("button").removeClass(validClass); } else { $element.parent().addClass(errorClass).removeClass(validClass); $element.addClass(errorClass).removeClass(validClass); $element.parent().find("button").addClass(errorClass).removeClass(validClass); } }, unhighlight: function(element, errorClass, validClass) { $element = $(element); if ($element.is('input[type=hidden].qcm-field')) { var questionId = $element.data('question-id'); var div = $('div[data-question-id="' + questionId + '"]'); div.addClass(validClass); div.find("button").addClass(validClass); div.removeClass(errorClass); div.find("button").removeClass(errorClass); } else { $(element).parent().removeClass(errorClass).addClass(validClass); $(element).addClass(validClass).removeClass(errorClass); $(element).parent().find("button").addClass(validClass).removeClass(errorClass); } }, submitHandler: function(form) { var shouldSubmit = true; if (shouldSubmit) { form.submit(); var button = $('button[type="submit"]'); $('#loader').removeClass("hidden"); $('#submit-button').addClass("hidden"); $($('.cta-apply')[0]).addClass('hidden'); $($('.cta-apply')[1]).addClass('hidden') setTimeout(function() { button.attr('disabled', 'disabled'); button.prop('disabled', true); }, 0); } }, errorClass: "is-invalid", validClass: "is-valid", }); jQuery(document).ready(function($) { $(document).on('click', '.dropdown-menu', function(e) { e.stopImmediatePropagation(); e.stopPropagation(); }); }); jQuery.extend(jQuery.validator.messages, { required: "Ce champ est obligatoire", phoneNumber: "Ce numéro de téléphone est invalide", email: "Veuillez indiquer une adresse e-mail valide", }); var placeSearch; var autocompletes = []; var componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; function initAutocompletes() { $('.custom-autocomplete').each((index, element) => { autocompletes.push({ element: element, autocomplete: new google.maps.places.Autocomplete(element, { types: ['geocode'] }) }); }); } function geolocate(element) { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { var geolocation = { lat: position.coords.latitude, lng: position.coords.longitude }; var circle = new google.maps.Circle({ center: geolocation, radius: position.coords.accuracy }); var autocomplete = autocompletes.find(i => i.element === element).autocomplete; autocomplete.setBounds(circle.getBounds()); }); } } $(function() { $(".datepicker").each( function(index, element) { var $elem = $(element); $elem.datepicker($.datepicker.regional["fr"]); }); $(".ui-datepicker").addClass("font2"); }); { "@context" : "http://schema.org/", "@type" : "JobPosting", "title" : "Concepteur \u2013 D\u00E9veloppeur Full Stack F/H", "datePosted" : "2025-09-12T07:16:03+00:00", "hiringOrganization": { "@type": "Organization", "name": "Numih France Maroc" , "logo": "https://wio.blob.core.windows.net/werecruit/0c1df2b0-653c-4617-bf8b-a0c455f06459.png" }, "jobLocation": { "@type": "Place", "address": { "@type": "PostalAddress", "addressLocality": "Rabat", "addressRegion": "Rabat-Salé-Kénitra", "postalCode": "00000", "addressCountry": "MA" } }, "description" : "\u003Cdiv class=\u0022elementor-element elementor-element-1d864ae elementor-widget elementor-widget-theme-post-content\u0022 data-id=\u00221d864ae\u0022 data-element_type=\u0022widget\u0022 data-widget_type=\u0022theme-post-content.default\u0022\u003E\n\u003Cdiv class=\u0022elementor-widget-container\u0022\u003E\n\u003Cp\u003EAu sein de la Direction de l\u0026rsquo;Offre Sant\u0026eacute; Num\u0026eacute;rique, en contact direct avec les clients hospitaliers, vous prendrez part activement au d\u0026eacute;veloppement et \u0026agrave; la maintenance \u0026eacute;volutive des progiciels phares de l\u0026rsquo;entreprise. de l\u0026rsquo;analyse \u0026agrave; la livraison.\u003C/p\u003E\n\u003Cp\u003EA ce titre, vos principales missions consisteront \u0026agrave; :\u003C/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EParticiper \u0026agrave; l\u0026rsquo;analyse technique des besoins fonctionnels (\u0026eacute;manant de la Direction de l\u0026rsquo;Offre), contribuer au chiffrage des projets et \u0026agrave; l\u0026rsquo;\u0026eacute;valuation des charges de d\u0026eacute;veloppement.\u003C/li\u003E\n\u003Cli\u003EConcevoir, d\u0026eacute;velopper et tester des nouvelles fonctionnalit\u0026eacute;s robustes et maintenables, en appliquant les principes Agile/Scrum au sein de micro \u0026eacute;quipes.\u003C/li\u003E\n\u003Cli\u003EAssurer la documentation technique tout au long des phases du projet (conception, r\u0026eacute;alisation, d\u0026eacute;ploiement) et participer activement aux revues de code pour garantir la qualit\u0026eacute; du produit.\u003C/li\u003E\n\u003Cli\u003EAssurer le support technique des applications en production et participer \u0026agrave; la r\u0026eacute;solution des incidents.\u003C/li\u003E\n\u003Cli\u003EParticiper activement \u0026agrave; toutes les c\u0026eacute;r\u0026eacute;monies Agile et \u0026agrave; la vie du projet jusqu\u0026rsquo;\u0026agrave; sa livraison effective, en collaboration \u0026eacute;troite avec les autres membres de l\u0026rsquo;\u0026eacute;quipe (d\u0026eacute;veloppeurs, QA, product owner).\u003C/li\u003E\n\u003C/ul\u003E\n\u003Cp\u003ECette description n\u0026rsquo;est ni limitative, ni exhaustive. Elle prend en compte les principales responsabilit\u0026eacute;s.\u003C/p\u003E\n\u003C/div\u003E\n\u003C/div\u003E", "employmentType" : "FULL_TIME" } Offres Candidature spontanée Liens utiles Cookies Plan du site Connexion recruteurs Préférences des cookies Propulsé par Logiciel de gestion de candidature et de multidiffusion

This job is found at InterviewStack.io

Skills

agilescrumjavaspring bootnosqlmongodbjenkinslinuxrabbitmqjunitjiravuetypescriptjavascripthtml

About Numih France

Numih France est le 1er acteur public au service de la transformation numérique des établissements de santé, et s’engage aux côtés des collectivités territoriales et des services déconcentrés de l’État. Structure de coopération publique, notre vocation est d’accompagner nos adhérents en imaginant, développant et déployant des solutions numériques innovantes, souveraines, sécurisées, éthiques et responsables.

healthcare it, public sectorWebsite