Lead Developer ERP & Gestion (Pyhton / Odoo) F/H
OpenFire
Saint-Grégoire, FR1 month ago
7 views1 saves0 applies
Prepare for this role
Benefits
Remote Work
Job Type
full time
Description
L'entreprise OpenFire est un éditeur et intégrateur de solutions de gestion web et mobile à destination des professionnels de l’installation, de la maintenance et du SAV dans le secteur de l’énergie. Nous accompagnons au quotidien des artisans, TPE et PME au travers de nos solutions CRM, gestion commerciale, interventions, facturation, planning et mobilité terrain. Nos solutions reposent sur des technologies robustes et open-source : Odoo, Python, PostgreSQL, Linux, JavaScript, Git, Flutter. Vos missions Mission générale En binôme avec le second Lead Dev du pôle ERP / Gestion et sous la responsabilité du CTO, vous êtes le garant technique de nos solutions de gestion. Vous pilotez l'évolution de la plateforme ERP (notamment basée sur Odoo Community / OCA) pour répondre aux enjeux de nos clients TPE/PME dans le secteur de l'énergie et de la maintenance. Vos responsabilités : 1/ Stratégie, Architecture et Vision Technique Arbitrage technique : Définir et porter la roadmap technique du pôle Gestion. Faire les choix structurants (modèle de données, intégrations API, performance). Expertise Odoo : Maîtriser l’écosystème Odoo (v. Community) et piloter les migrations de versions pour garantir la pérennité de nos solutions. Culture Qualité : Mettre en œuvre les standards de développement (CI/CD, tests unitaires, documentation) pour assurer la stabilité d'une plateforme SaaS en production. Veille : Anticiper les évolutions technologiques et les opportunités offertes par le monde Open Source. 2/ Lead Dev : Delivery et Excellence Opérationnelle Développement complexe : Prendre en charge les briques les plus critiques et complexes du pôle Gestion. Mentoring & Peer-Programming : Accompagner la montée en compétences de l'équipe via des revues de code exigeantes et constructives. Traduction métie r : Collaborer étroitement avec nos PO pour transformer les besoins des métiers (énergie, maintenance) en fonctionnalités logicielles fluides et performantes. 3/ Support de niveau 3 et Fiabilité Escalade technique : Être le point de contact final pour les incidents complexes liés au pôle Gestion. Garant des SLA : Veiller à ce que les remontées clients soient traitées dans le respect de nos engagements de service. Amélioration continue : Analyser les causes racines des incidents pour réduire la dette technique. 4/ Collaboration et Transversalité Participer activement aux comités produits pour aligner la technique sur la vision business de l'entreprise. Travailler en synergie avec les autres pôles de l’entreprise pour garantir la cohérence globale de nos solutions OpenFire. Participer à la construction et la mise en œuvre des méthodes de travail et des processus qualité au sein de l’équipe technique. Etre leader sur des certaines technologies de l'équipe développement (IA, API, CI/CD, BDD, Runbot, Outils internes..) Profil recherché (H/F) Nous recherchons un leader technique au sein de notre équipe Gestion : Expérience : 10 ans minimum en développement dans un contexte logiciel de gestion, dont une expérience significative sur Odoo. Stack : Maîtrise parfaite de Python, PostgreSQL, et des concepts d'architecture SaaS. Soft Skills : * Capacité à vulgariser des sujets techniques pour le CEO/PO. Leadership naturel pour animer une équipe de développeurs aux niveaux d'expérience variés. Pragmatisme (savoir choisir la solution "efficace" plutôt que la plus "élégante" mais trop complexe). Pourquoi rejoindre OpenFire ? Package de rémunération, ticket restaurant, prime mobilité durable Une organisation hybride possible (minimum 2 jours de télétravail par semaine) Un environnement stimulant autour d’un ERP open-source reconnu (Odoo) Une équipe en pleine transformation, avec de nombreux projets à venir Des bureaux récemment rénovés à Saint-Grégoire (35) Réf: 88d6711c-f1c3-450e-887a-e2c07e858f8e Je postule à cette offre Lead Developer ERP & Gestion (Pyhton / Odoo) F/H CDI Temps plein Saint-Grégoire 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€ Photo Choisir un fichier Format autorisé: JPG. Poids maximum : 2 Mo. CV * Choisir un fichier Format: .PDF, .DOCX, .DOC, .JPG. Poids max. : 2 Mo. Dans le cadre de la création de votre profil de candidature sur le site carrière de la société OpenFire , les informations recueillies ci-dessus sont traitées selon la base légale des mesures précontractuelles à la mise en relation avec la société OpenFire et à la conclusion d’un éventuel contrat de travail avec celle-ci, et selon l’intérêt légitime à la constitution d’une CVthèque. Aucun transfert hors de l’Union Européenne ne sera opéré. Sauf action de votre part, la durée de conservation de vos données n’excède pas 2 ans. En application des standards et des politiques de sécurité (PSSI) en vigueur, les mesures techniques efficaces et optimales sont appliquées aux traitements des données (accès et protocoles sécurisés, gestion des droits et administration, sensibilisations des collaborateurs, etc.). Conformément au règlement Européen relatif à la protection des données, vous disposez d’un droit d’opposition, d’accès de rectification, de suppression des présentes données. J'accepte que l'entreprise OpenFire 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 = []; 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" : "Lead Developer ERP \u0026 Gestion (Pyhton / Odoo) F/H", "datePosted" : "2026-05-13T14:24:53+00:00", "hiringOrganization": { "@type": "Organization", "name": "OpenFire" , "logo": "https://wio.blob.core.windows.net/werecruit/74d03765-7cc8-40d8-8e63-b747ce8c2713.png" }, "jobLocation": { "@type": "Place", "address": { "@type": "PostalAddress", "addressLocality": "Saint-Grégoire", "addressRegion": "Bretagne", "postalCode": "35760", "addressCountry": "FR" } }, "description" : "\u003Ch4 dir=\u0022ltr\u0022\u003EMission g\u0026eacute;n\u0026eacute;rale\u003C/h4\u003E\n\u003Cp dir=\u0022ltr\u0022\u003EEn bin\u0026ocirc;me avec le second Lead Dev du p\u0026ocirc;le ERP / Gestion et sous la responsabilit\u0026eacute; du CTO, vous \u0026ecirc;tes le garant technique de nos solutions de gestion. Vous pilotez l\u0027\u0026eacute;volution de la plateforme ERP (notamment bas\u0026eacute;e sur Odoo Community / OCA) pour r\u0026eacute;pondre aux enjeux de nos clients TPE/PME dans le secteur de l\u0027\u0026eacute;nergie et de la maintenance.\u003C/p\u003E\n\u003Ch4 dir=\u0022ltr\u0022\u003E\u003Cstrong id=\u0022docs-internal-guid-a5f73e2f-7fff-a054-ac72-cf6ee3c03a31\u0022\u003E\u003C/strong\u003EVos responsabilit\u0026eacute;s :\u003C/h4\u003E\n\u003Cp dir=\u0022ltr\u0022\u003E1/ Strat\u0026eacute;gie, Architecture et Vision Technique\u003C/p\u003E\n\u003Cul\u003E\n\u003Cli dir=\u0022ltr\u0022 aria-level=\u00221\u0022\u003E\n\u003Cp dir=\u0022ltr\u0022 role=\u0022presentation\u0022\u003E\u003Cstrong\u003EArbitrage technique \u003C/strong\u003E: D\u0026eacute;finir et porter la roadmap technique du p\u0026ocirc;le Gestion. Faire les choix structurants (mod\u0026egrave;le de donn\u0026eacute;es, int\u0026eacute;grations API, performance).\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli dir=\u0022ltr\u0022 aria-level=\u00221\u0022\u003E\n\u003Cp dir=\u0022ltr\u0022 role=\u0022presentation\u0022\u003E\u003Cstrong\u003EExpertise Odoo\u003C/strong\u003E : Ma\u0026icirc;triser l\u0026rsquo;\u0026eacute;cosyst\u0026egrave;me Odoo (v. Community) et piloter les migrations de versions pour garantir la p\u0026eacute;rennit\u0026eacute; de nos solutions.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli dir=\u0022ltr\u0022 aria-level=\u00221\u0022\u003E\n\u003Cp dir=\u0022ltr\u0022 role=\u0022presentation\u0022\u003E\u003Cstrong\u003ECulture Qualit\u0026eacute;\u003C/strong\u003E : Mettre en \u0026oelig;uvre les standards de d\u0026eacute;veloppement (CI/CD, tests unitaires, documentation) pour assurer la stabilit\u0026eacute; d\u0027une plateforme SaaS en production.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli dir=\u0022ltr\u0022 aria-level=\u00221\u0022\u003E\n\u003Cp dir=\u0022ltr\u0022 role=\u0022presentation\u0022\u003E\u003Cstrong\u003EVeille \u003C/strong\u003E: Anticiper les \u0026eacute;volutions technologiques et les opportunit\u0026eacute;s offertes par le monde Open Source.\u003C/p\u003E\n\u003C/li\u003E\n\u003C/ul\u003E\n\u003Cp dir=\u0022ltr\u0022\u003E2/ Lead Dev : Delivery et Excellence Op\u0026eacute;rationnelle\u003C/p\u003E\n\u003Cul\u003E\n\u003Cli dir=\u0022ltr\u0022 aria-level=\u00221\u0022\u003E\n\u003Cp dir=\u0022ltr\u0022 role=\u0022presentation\u0022\u003E\u003Cstrong\u003ED\u0026eacute;veloppement complexe\u003C/strong\u003E : Prendre en charge les briques les plus critiques et complexes du p\u0026ocirc;le Gestion.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli dir=\u0022ltr\u0022 aria-level=\u00221\u0022\u003E\n\u003Cp dir=\u0022ltr\u0022 role=\u0022presentation\u0022\u003E\u003Cstrong\u003EMentoring \u0026amp; Peer-Programming\u003C/strong\u003E : Accompagner la mont\u0026eacute;e en comp\u0026eacute;tences de l\u0027\u0026eacute;quipe via des revues de code exigeantes et constructives.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli dir=\u0022ltr\u0022 aria-level=\u00221\u0022\u003E\n\u003Cp dir=\u0022ltr\u0022 role=\u0022presentation\u0022\u003E\u003Cstrong\u003ETraduction m\u0026eacute;tie\u003C/strong\u003Er : Collaborer \u0026eacute;troitement avec nos PO pour transformer les besoins des m\u0026eacute;tiers (\u0026eacute;nergie, maintenance) en fonctionnalit\u0026eacute;s logicielles fluides et performantes.\u003C/p\u003E\n\u003C/li\u003E\n\u003C/ul\u003E\n\u003Cp dir=\u0022ltr\u0022\u003E3/ Support de niveau 3 et Fiabilit\u0026eacute;\u003C/p\u003E\n\u003Cul\u003E\n\u003Cli dir=\u0022ltr\u0022 aria-level=\u00221\u0022\u003E\n\u003Cp dir=\u0022ltr\u0022 role=\u0022presentation\u0022\u003E\u003Cstrong\u003EEscalade technique\u003C/strong\u003E : \u0026Ecirc;tre le point de contact final pour les incidents complexes li\u0026eacute;s au p\u0026ocirc;le Gestion.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli dir=\u0022ltr\u0022 aria-level=\u00221\u0022\u003E\n\u003Cp dir=\u0022ltr\u0022 role=\u0022presentation\u0022\u003E\u003Cstrong\u003EGarant des SLA \u003C/strong\u003E: Veiller \u0026agrave; ce que les remont\u0026eacute;es clients soient trait\u0026eacute;es dans le respect de nos engagements de service.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli dir=\u0022ltr\u0022 aria-level=\u00221\u0022\u003E\n\u003Cp dir=\u0022ltr\u0022 role=\u0022presentation\u0022\u003E\u003Cstrong\u003EAm\u0026eacute;lioration continue\u003C/strong\u003E : Analyser les causes racines des incidents pour r\u0026eacute;duire la dette technique.\u003C/p\u003E\n\u003C/li\u003E\n\u003C/ul\u003E\n\u003Cp dir=\u0022ltr\u0022\u003E4/ Collaboration et Transversalit\u0026eacute;\u003C/p\u003E\n\u003Cul\u003E\n\u003Cli dir=\u0022ltr\u0022 aria-level=\u00221\u0022\u003E\n\u003Cp dir=\u0022ltr\u0022 role=\u0022presentation\u0022\u003E\u003Cstrong\u003EParticiper activement aux comit\u0026eacute;s produits\u003C/strong\u003E pour aligner la technique sur la vision business de l\u0027entreprise.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli dir=\u0022ltr\u0022 aria-level=\u00221\u0022\u003E\n\u003Cp dir=\u0022ltr\u0022 role=\u0022presentation\u0022\u003ETravailler en synergie avec les autres p\u0026ocirc;les de l\u0026rsquo;entreprise pour \u003Cstrong\u003Egarantir la coh\u0026eacute;rence globale de nos solutions\u003C/strong\u003E OpenFire.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli dir=\u0022ltr\u0022 aria-level=\u00221\u0022\u003E\n\u003Cp dir=\u0022ltr\u0022 role=\u0022presentation\u0022\u003E\u003Cstrong\u003EParticiper \u0026agrave; la construction et la mise en \u0026oelig;uvre des m\u0026eacute;thodes de travail\u003C/strong\u003E et des processus qualit\u0026eacute; au sein de l\u0026rsquo;\u0026eacute;quipe technique.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli dir=\u0022ltr\u0022 aria-level=\u00221\u0022\u003E\n\u003Cp dir=\u0022ltr\u0022 role=\u0022presentation\u0022\u003EEtre\u003Cstrong\u003E leader sur des certaines technologies\u003C/strong\u003E de l\u0027\u0026eacute;quipe d\u0026eacute;veloppement (IA, API, CI/CD, BDD, Runbot, Outils internes..)\u003C/p\u003E\n\u003C/li\u003E\n\u003C/ul\u003E", "employmentType" : "FULL_TIME" } Nos dernières offres Lead Developer ERP & Gestion (Pyhton / Odoo) F/H CDI Temps plein Saint-Grégoire Je postule Chargé d'Accompagnement Client logiciel de gestion - ERP - SaaS F/H CDI Temps plein Saint-Grégoire Je postule Customer Success Manager F/H CDI Temps plein Saint-Grégoire Je postule Développeur(se) expérimenté(e) Python/ERP - Team Solutions Mobiles et Applications Techniques (SMAT) F/H CDI Temps plein Saint-Grégoire Je postule Voir plus d'offres Suivez-nous Offres
This job is found at InterviewStack.io
Skills
crmpythonpostgresqllinuxjavascriptgitci/cdbddhtml