About the Role:
As a Manager in Software Engineering, you will manage a team of software engineers, overseeing the development, implementation, and enhancement of commercial products. You will be accountable for the performance and results of your team, driving successful projects that align with business objectives. Your role is critical in ensuring that the software solutions are innovative, reliable, and scalable.
Responsibilities:
• Lead and manage a sizable team of software engineers and business analysts, fostering a positive and high-performing work culture.
• Provide expert guidance in solving complex technical challenges and making critical project decisions.
• Communicate effectively in a matrixed organization with senior management, stakeholders, and cross-functional teams to ensure alignment and collaboration.
• Foster the growth and development of software engineering teams, providing mentoring and coaching to team members.
• Oversee the adherence to quality standards and best practices throughout the software development process.
• Provide leadership and mentorship to team members, fostering their professional growth and development.
• Collaborate with other teams and functions to facilitate seamless integration and successful product launches.
• Conduct regular performance evaluations of team members, providing feedback and identifying areas for improvement.
• Plan and schedule work within the team, ensuring efficient resource utilization and meeting project timelines.
• Monitor development processes, framework adoption, and project progress to ensure efficiency and compliance with standards.
• Monitor ongoing processes, materials, or surroundings, providing feedback for improvement.
• Estimate project resources and allocate them effectively to meet project demands.
Skills:
• DevOps: An ability to use systems and processes to coordinate between development and operations teams in order to improve and speed up software development processes. This includes automation, continuous delivery, agility, and rapid response to feedback.
• Product Software Engineering: The ability to design, develop, test, and deploy software products. It involves understanding user needs, defining functional specifications, designing system architecture, coding, debugging, and ensuring product quality. It also requires knowledge of various programming languages, tools and methodologies, and ability to work within diverse teams and manage projects.
• Cloud Computing: The ability to utilize and manage applications, data, and services on the internet rather than on a personal computer or local server. This skill involves understanding various cloud services (Azure), managing resources online, and setting up cloud-based platforms for business environment.
• Implementation and Delivery: This is a skill that pertains to the ability to translate plans and designs into action. It involves executing strategies effectively, overseeing the delivery of projects or services, and ensuring they are completed in a timely and efficient manner. It also necessitates the coordination of various tasks and management of resources to achieve the set objectives.
• Problem Solving: The ability to understand a complex situation or issue and devise a solution by defining the problem, identifying potential strategies, and ultimately choosing and implementing the most effective course of action.
• People management: The ability to lead, motivate, engage and communicate effectively with a team. This includes skills in delegation, conflict resolution, negotiation, and understanding team dynamics. It also involves building a strong team culture and managing individual performance.
• Agile: The ability to swiftly and effectively respond to changes, with an emphasis on continuous improvement and flexibility. In the context of project management, it denotes a methodology that promotes adaptive planning and encourages rapid and flexible responses to changes.
• APIs: The ability to design, develop, and manage Application Programming Interfaces, which constitute the set of protocols and tools used for building application software. This skill includes the capacity to create and maintain high-quality API documentation, implement API security practices, and understand API testing techniques. Additionally, having this ability means understanding how APIs enable interaction between different software systems, allowing them to communicate with each other.
• Analysis: The ability to examine complex situations or problems, break them down into smaller parts, and understand how these parts work together.
• Automation: The ability to design, implement, manage, and optimize automated systems or processes, often using various software tools and technologies. This skill includes understanding both the technical elements and the business implications of automated systems.
• Frameworks: The ability to understand, utilise, and create structured environments for software development. This skill also involves being able to leverage existing frameworks to streamline processes, ensuring better efficiency and code manageability in software development projects.
Competencies:
• Judgement & Decision Making
• Accountability
• Inclusive Collaboration
• Inspiration & Alignment
• Courage to Take Smart Risks
Key Requirements:
Bachelor’s degree in Computer Science or related fieldExperience with .NET Framework or .NET Core, WCF, Winforms, REST APIs, and C#Proficient in Azure CloudExperience managing teams in an Agile environment.Ability to speak French fluently is requiredJob Posting
A propos du poste :
En tant que responsable de l'ingénierie logicielle, vous dirigerez une équipe d'ingénieurs en logiciel et superviserez le développement, la mise en œuvre et l'amélioration de produits commerciaux. Vous serez responsable des performances et des résultats de votre équipe, en menant à bien des projets conformes aux objectifs de l'entreprise. Votre rôle est essentiel pour garantir que les solutions logicielles sont innovantes, fiables et évolutives.
Responsabilités :
- Diriger et gérer une équipe importante d'ingénieurs logiciels, en favorisant une culture de travail positive et performante.
- Fournir des conseils d'expert pour résoudre des problèmes techniques complexes et prendre des décisions critiques concernant les projets.
- Communiquer efficacement dans une organisation matricielle avec la direction générale, les parties prenantes et les équipes interfonctionnelles afin d'assurer l'alignement et la collaboration.
- Favoriser la croissance et le développement des équipes de génie logiciel, en assurant le mentorat et l'encadrement des membres de l'équipe.
- Superviser le respect des normes de qualité et des meilleures pratiques tout au long du processus de développement des logiciels.
- Assurer le leadership et le mentorat des membres de l'équipe, en favorisant leur croissance et leur développement professionnels.
- Collaborer avec d'autres équipes et fonctions pour faciliter une intégration harmonieuse et des lancements de produits réussis.
- Procéder à des évaluations régulières des performances des membres de l'équipe, en fournissant un retour d'information et en identifiant les domaines à améliorer.
- Planifier et programmer le travail au sein de l'équipe, en veillant à l'utilisation efficace des ressources et au respect des délais du projet.
- Contrôler les processus de développement, l'adoption du cadre et l'avancement du projet afin de garantir l'efficacité et le respect des normes.
- Contrôler les processus en cours, les matériaux ou l'environnement, en fournissant un retour d'information en vue d'une amélioration.
- Estimer les ressources du projet et les affecter efficacement pour répondre aux exigences du projet.
Compétences :
- DevOps : capacité à utiliser des systèmes et des processus pour coordonner les équipes de développement et d'exploitation afin d'améliorer et d'accélérer les processus de développement de logiciels. Cela inclut l'automatisation, la livraison continue, l'agilité et la réponse rapide au retour d'information.
- Ingénierie logicielle des produits : La capacité à concevoir, développer, tester et déployer des produits logiciels. Il s'agit de comprendre les besoins des utilisateurs, de définir les spécifications fonctionnelles, de concevoir l'architecture du système, de coder, de déboguer et d'assurer la qualité du produit. Il requiert également la connaissance de divers langages de programmation, outils et méthodologies, ainsi que la capacité à travailler au sein d'équipes diverses et à gérer des projets.
- Informatique en nuage : La capacité d'utiliser et de gérer des applications, des données et des services sur Internet plutôt que sur un ordinateur personnel ou un serveur local. Cette compétence implique de comprendre les différents services en nuage (comme AWS, Google Cloud, Azure), de gérer les ressources en ligne et de mettre en place des plateformes basées sur le nuage pour l'environnement de l'entreprise.
- Mise en œuvre et exécution : Il s'agit d'une compétence qui se rapporte à la capacité de traduire des plans et des conceptions en actions. Elle implique l'exécution efficace de stratégies, la supervision de la réalisation de projets ou de services et la garantie qu'ils sont achevés en temps voulu et de manière efficace. Elle nécessite également la coordination de diverses tâches et la gestion des ressources afin d'atteindre les objectifs fixés.
- Résolution de problèmes : La capacité à comprendre une situation ou une question complexe et à concevoir une solution en définissant le problème, en identifiant les stratégies potentielles et, en fin de compte, en choisissant et en mettant en œuvre le plan d'action le plus efficace.
- Gestion du personnel : La capacité à diriger, motiver, engager et communiquer efficacement avec une équipe. Cela inclut des compétences en matière de délégation, de résolution des conflits, de négociation et de compréhension de la dynamique d'équipe. Il s'agit également de créer une culture d'équipe forte et de gérer les performances individuelles.
- Agile : capacité à réagir rapidement et efficacement aux changements, en mettant l'accent sur l'amélioration continue et la flexibilité. Dans le contexte de la gestion de projet, il s'agit d'une méthodologie qui favorise une planification adaptative et encourage des réponses rapides et flexibles aux changements.
- API : La capacité à concevoir, développer et gérer des interfaces de programmation d'applications, qui constituent l'ensemble des protocoles et des outils utilisés pour créer des logiciels d'application. Cette compétence comprend la capacité à créer et à maintenir une documentation de qualité sur les API, à mettre en œuvre des pratiques de sécurité pour les API et à comprendre les besoins des utilisateurs en matière d'API.
En outre, cette capacité implique de comprendre comment les API permettent l'interaction entre différents systèmes logiciels, en leur permettant de communiquer entre eux.
- Analyse : La capacité à examiner des situations ou des problèmes complexes, à les décomposer en éléments plus petits et à comprendre comment ces éléments fonctionnent ensemble.
- Automatisation : La capacité à concevoir, mettre en œuvre, gérer et optimiser des systèmes ou des processus automatisés, souvent à l'aide de divers outils logiciels et technologies. Cette compétence comprend la compréhension des éléments techniques et des implications commerciales des systèmes automatisés.
- Cadres : La capacité à comprendre, utiliser et créer des environnements structurés pour le développement de logiciels. Cette compétence implique également d'être capable d'exploiter les cadres existants pour rationaliser les processus, assurer une meilleure efficacité et une meilleure gestion du code dans les projets de développement de logiciels.
Compétences :
- Jugement et prise de décision
- Responsabilité
- Collaboration inclusive
- Inspiration et alignement
- Courage de prendre des risques intelligents