En cliquant sur "Accepter", vous acceptez que des cookies soient stockés sur votre appareil afin d'améliorer la navigation sur le site, d'analyser son utilisation et de contribuer à nos efforts de marketing. Consultez notre politique de confidentialité pour plus d'informations.
Cookie en forme de Logo e-rekcah

Ingénieur(e) logiciel

Conçoit et développe le code source du programme qui donnera vie à votre produit.

Zoom sur un clavier d'ordinateur avec les touches formant le mot LOGIN
Icone en forme d'écran d'ordinateur

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.).

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.

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.

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.

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.

Logo de l'entreprise ST MicroelectronicsLogo de l'entreprise EspressifLogo de l'entreprise RaspberryLogo du pingouin LinuxLogo du projet free RTOSLogo de la technologie zigbeeLogo de la technologie BluetoothLogo de la technologie 4GLogo de la technologie GPSLogo de la technologie LoRaWANLogo du language de programmation CLogo du language PythonLogo du Bash LinuxLogo des languages du webLogo de l'outil GIT

Donnons vie à votre produit !