Développeur Full-stack Confirmé Java/Angular F/H
Numih France
Toulouse, FR2 months ago
25 views10 saves0 applies
Prepare for this role
Job Type
full time
Description
L'entreprise Qui sommes-nous ? Numih France est le premier acteur public au service de la transformation numérique et accompagne aujourd'hui + de 1 000 établissements de santé, collectivités et services déconcentrés de l'Etat sur tout le territoire français. Depuis leur création en 1993, le Mipih et le SIB, deux structures de coopération publique, ont su évoluer et développer des offres complémentaires en s'appuyant sur le développement, le déploiement, l'interopérabilité et l'hébergement des systèmes d'information complets (médicaux, administratifs et décisionnels pour le secteur de la santé), l'intelligence artificielle (IA), l'hébergement, la sécurisation et la valorisation des données sensibles, la cybersécurité, le pilotage et l’accompagnement de projets de transformation numérique majeure, la formation, etc. En 2025, leur fusion a donné naissance à Numih France, un nouveau Groupement d'Intérêt Public qui conçoit et déploie des offres de services numériques publiques, sécurisées, souveraines, innovantes et éthiques. Toutes nos solutions sont pensées avec et pour nos adhérents, en parfaite cohérence avec les enjeux des politiques publiques. Numih France est certifié Hébergeur de Données de Santé à caractère personnel (HDS) et ISO 9001 pour l’ensemble de ses activités. En tant que tiers-archiveur agréé, Numih France garantit également une conservation fiable et sécurisée des données sensibles. Notre engagement en matière de Responsabilité Sociétale et Environnementale (RSE) est au cœur de notre projet d’entreprise. Cette ambition est reconnue par le label LUCIE (norme ISO 26000). Avec un réseau de 7 agences (Amiens, Bordeaux, Lille, Reims, Rennes, Rouffach et Toulouse, où se situe notre siège social), Numih France s’appuie sur l’expertise de plus de 1 400 collaborateurs. Notre implantation locale nous permet d’être au plus près de nos adhérents ! Description du poste Rejoignez Numih France pour concevoir et maintenir des solutions critiques dans un environnement Agile. Vous travaillerez en étroite collaboration avec des experts techniques, des Product Owners et des Scrum Masters. Vos missions : Développement : Création et évolution des fonctionnalités (Java, Hibernate, Angular). Qualité : Rédaction de code propre, documentation technique et tests. Support : Prise en charge du support niveau 3 (N3). Collaboration : Co-construction des choix techniques et participation à l'analyse. Pourquoi rejoindre notre équipe ? Donnez du sens à votre travail en développant des logiciels essentiels pour les établissements de santé, dans un cadre sécurisé et souverain. Profil recherché Profil recherché : Expertise : Solides compétences en Java, SQL (PostgreSQL), HTML5/CSS3. Atouts : Maîtrise d'Angular 14+, NGRX, RXJS et des architectures ERP. Savoir-être : Curieux, autonome, capable de monter rapidement en compétences fonctionnelles et techniques. Outils : Git, Jenkins, Maven, Eclipse/VS Code, Linux. Deux référentes handicap vous accompagnent lors de votre intégration et tout au long de votre carrière chez Numih France pour une meilleure inclusion professionnelle. Et enfin, pourquoi nous rejoindre 48 jours de congés par an. Télétravail possible indemnisé (2.88€/jour) allant jusqu'à 3 jours. Carte tickets restaurant (50% payé par l'employeur). 75% de votre abonnement de transport (bus, métro, train). Un projet social concret : mutuelle d’entreprise, tickets restaurant, prévoyance. Une équipe associative motivée : tarifs préférentiels pour vos activités sportives, sociales et culturelles, commandes groupées, after-works, … Et maintenant ? un processus efficace : ☎️ Votre CV est retenu : Sophie C vous contactera pour un premier échange téléphonique. ⚙️ L'échange est positif ? Premier entretien technique avec des membres de l'équipe. 👩 Toujours positif ? Vous serez reçu par Sophie C et votre future manager. ✍️ Une proposition vous est faite dans la semaine. 🤝 Welcome Réf: 40a54bd3-b367-4681-8901-d7ddbb813379 Je postule à cette offre Développeur Full-stack Confirmé Java/Angular F/H Numih France - Toulouse CDI Temps plein Toulouse 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. 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":"843508d6-9499-4e49-bb80-d98006493d03"},{"choices":[],"type":0,"id":"c40245c9-b12b-4eca-9bf6-7736e24aa40a"}]; 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'] }) }); }); }
This job is found at InterviewStack.io
Skills
scrumjavaangularsqlpostgresqlhtml5gitjenkinsvuetypescriptjavascripthtml
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