Ingénieur logiciel
Conçoit et développe le code source du programme qui donnera vie à votre produit.
Zoom sur le métier
Les composants électroniques sont le cerveau, les muscles et les sens de votre produit électronique. Il est nécessaire de lui indiquer comment les utiliser, c'est le rôle du programme (firmware/software).
Chez e-rekcah, le développement logiciel est donc la deuxième partie la plus importante de notre ADN.
Analyse et conception
Cette phase consiste à analyser ensemble le fonctionnement souhaité de votre produit en se basant sur des cas d'usage de manière à décrire précisément l'objectif attendu.
Elle permet également de définir les méthodes et solutions techniques adaptées au développement du logiciel de votre produit.
Cas d'usage
Analyse du besoin et formulation des cas d'usage.
Description détaillée du fonctionnement attendu du produit dans les différentes situations en se basant sur l'ensemble du cycle de vie du produit (mise en service, usage quotidien, configuration, maintenance, etc.).
Choix de solutions
Sur la base des cas d’usage et des fonctionnalités souhaitées, nous définissons les solutions techniques qui permettrons le développement du logiciel de votre produit (cibles matérielles, dimensionnement des mémoires et puissance de calcul, langage de programmation, environnement, réseau, etc.).
En mettant en parallèle les cas d’usage avec les solutions techniques sélectionnées nous définissons l’architecture logicielle (tâches, séquençage, structures de données, algorithmes, etc.).
Display none
Display none
Display none
Display none
Méthodes et process
Nous appliquons des méthodes et process nous permettant de garantir un maximum d’efficacité et d’agilité dans le développement logiciel.
Scrum et agilité
Nous utilisons une méthode agile dérivée de la méthode Scrum, permettant d'avancer étape par étape et de produire régulièrement du contenu.
Nous maîtrisons la méthode du Kanban, nous permettant dès le début du projet, d’organiser les différentes étapes clés du développement et de prioriser les différentes fonctionnalités à chaque phase (MVP).
Test continu
Lors de nos développements, l’ensemble du code est testé en continu d’un point de vue fonctionnel (sur cible) et d’un point de vue qualité.
Il est contrôlé tout au long du développement par plusieurs membres de l’équipe afin de garantir une bonne intégration de l'ensemble des fonctionnalités et d'éviter les régressions entre les versions.
Display none
Display none
Display none
Display none
Développement logiciel embarqué
En nous appuyant sur les éléments de conception et nos méthodes de développement, nous développons le code embarqué sur le microcontrôleur de votre carte électronique.
Microcontrôleur
Nous maîtrisons le développement de Firmware sur microcontrôleurs en C/C++, et travaillons avec les principales cibles existantes sur le marché : STM32, Espressif, Atmel, Nordic, etc.
Nous travaillons en respectant l'ensemble des principes permettant de répondre aux contraintes de l'embarqué telles que la gestion de la mémoire, le séquençage ou encore la gestion du temps réel (FreeRTOS).
IoT / Embarqué
Nous maîtrisons les technologies d'aujourd'hui telles que GSM/2G/3G/4G, LoRa, BLE, Zigbee, RFID/NFC et restons attentifs et formés aux technologies de demain comme la 5G ou la nouvelle norme Matter.
Nous maîtrisons les principaux protocole de l'IoT comme MQTT, JsonRPC, etc.
Nous maîtrisons l'ensemble des technologies de l'embarqué tel que UART, I2C, SPI, timers, interruptions, DMA, CAN, RS485/232, etc.
Display none
Display none
Display none
Display none
Développement logiciel applicatif
Nous développons le logiciel haut niveau et applicatif permettant d’implémenter les fonctionnalités principales de vos produits.
Linux embarqué
Nous maitrisons le développement applicatif sur PC (Linux et Windows) et ordinateur à carte unique tels que Raspberry Pi, BeagleBone, etc.
Ces derniers, fournissant des capacités de calculs plus importantes qu’un microcontrôleur, et grâce au déploiement de distributions Linux embarqué, permettent, grâce à l'utilisation de langages haut niveau (tel que le Python ou le Shell), la réalisation d'IHM plus poussées, d’API, d’application et d’algorithmes plus performants.
Web et mobile
Nous maîtrisons également les technologies du Web telles que HTML, CSS et JavaScript, nous permettant avec l’aide de serveurs légers, de développer des IHM embarquées avec la meilleure expérience utilisateur possible.
Nous sommes également à même de développer des applications mobiles multiplateformes utilisant le Framework React Native.
Display none
Display none
Display none
Display none
Qualité
Afin de garantir la qualité de notre code, nous disposons d’un ensemble d’outils et de méthodes internes.
Versioning
L'ensemble du code que nous développons est versionné sous un environnement Git via l'outil Gitlab et conjointement avec l'outil de gestion Jira.
Nous travaillons en suivant le cadre Gitflow en parfaite cohérence avec notre méthode agile.
Intégration et déploiement continue
Nous utilisons l’outil d'intégration et de déploiement continue (CI/CD) intégré à Gitlab, en association avec des machines de build et des outils d'analyse de code, nous permettant de valider la qualité de notre code tout au long du processus de développement.
Display none
Display none
Display none
Display none