Qu'est-ce qu'un développeur C ?

Un développeur C programme des logiciels qui parlent directement à la mémoire, aux registres d'un processeur ou au noyau du système. Là où un développeur web s'appuie sur des couches toutes faites, lui écrit souvent ces couches.

Le langage est né en 1972 aux laboratoires Bell, sous la plume de Dennis Ritchie, en même temps qu'Unix. Plus de cinquante ans après, il fait toujours tourner les systèmes d'exploitation, les bases de données et la plupart des objets électroniques. Sa dernière norme, C23, a été publiée par l'ISO en octobre 2024.

Embarqué

Exemples de produits
Calculateur de frein, compteur électrique, pompe médicale
Contrainte principale
Mémoire de quelques kilo-octets, normes de sûreté

Système

Exemples de produits
Pilotes Linux, hyperviseurs, piles réseau
Contrainte principale
Stabilité absolue, code relu par des centaines de personnes

Faible latence

Exemples de produits
Moteur de trading, codec vidéo, moteur de base de données
Contrainte principale
Chaque microseconde compte

Outils et langages

Exemples de produits
Interpréteurs, compilateurs, bibliothèques natives
Contrainte principale
Portabilité sur tous les processeurs

Les intitulés du poste

Les offres purement « développeur C » sont rares. On lit plutôt ingénieur logiciel embarqué, développeur C/C++, firmware engineer ou ingénieur système Linux. La forme féminine, développeuse C, apparaît aussi dans les annonces, et c'est le même poste.

Derrière ces titres, nous demandons toujours la cible : un microcontrôleur sans système d'exploitation, un Linux embarqué ou un serveur. Le métier change du tout au tout entre les trois, et le vivier de candidats aussi.

Qui recrute en C ?

L'automobile, l'aéronautique, la défense et le ferroviaire emploient le gros des effectifs, souvent via des ESN d'ingénierie. Viennent ensuite l'énergie, le médical, les télécoms et les fabricants de semi-conducteurs. Les banques d'investissement et les sociétés de trading cherchent un profil plus rare, orienté latence.

Les startups du hardware, de l'IoT et de la robotique recrutent aussi. Leurs équipes sont petites, et le développeur y touche à tout, de la carte au cloud. Ce sont ces postes que nous voyons le plus souvent passer côté deeptech.

Équipe en open space devant des ordinateurs, casques sur les oreilles
Dans une équipe embarquée, une partie du travail se fait loin de l'écran : sur un banc de test, avec un oscilloscope et une carte électronique.

Les missions d'un développeur C

Écrire du code neuf n'occupe qu'une part de la semaine. Le reste passe à comprendre le matériel, à tester sur cible et à chasser des défauts qui n'apparaissent qu'au bout de plusieurs heures.

Lire la documentation du matériel

Avant la première ligne, le développeur lit la datasheet du microcontrôleur et le schéma de la carte. Il y trouve l'adresse des registres, les horloges, les broches. Une erreur de lecture à ce stade coûte des jours de debug plus tard.

Écrire les pilotes et la couche basse

Il programme les périphériques : liaison série UART, bus SPI et I2C, bus CAN dans l'automobile, convertisseurs analogiques. Il écrit les routines d'interruption, ces fonctions appelées par le matériel, qui doivent rester très courtes.

Construire l'applicatif temps réel

Sur un produit plus riche, le code s'organise en tâches sous un système temps réel comme FreeRTOS ou Zephyr. Le développeur fixe les priorités, protège les ressources partagées et vérifie qu'aucune tâche ne rate son échéance.

Tester sur cible et sur banc

Les tests unitaires tournent sur le PC avec Unity ou CppUTest, le reste sur la carte réelle. Le développeur branche une sonde JTAG, pose des points d'arrêt dans GDB et lit les signaux à l'oscilloscope quand le logiciel seul ne suffit plus.

Documenter pour la certification

Dans l'automobile, l'avionique ou le médical, chaque exigence doit être tracée jusqu'au code et au test. Le développeur rédige, relit et justifie. Ce travail peut représenter une part réelle du temps sur un projet certifié.

Une semaine type

Lundi, revue d'un écart de consommation électrique signalé par l'équipe hardware. Mardi et mercredi, écriture du pilote d'un nouveau capteur, puis tests au banc. Jeudi, une analyse de crash remontée du terrain, avec le dump mémoire en main.

Vendredi, la revue de code avec le responsable logiciel, puis la mise à jour du dossier de traçabilité avant le jalon client.

Embarqué, système, faible latence : trois métiers sous un même langage

Deux CV qui affichent « C » peuvent n'avoir presque rien en commun. Avant de comparer deux candidats, nous regardons sur quel terrain ils ont appris.

L'embarqué « bare metal » et temps réel

Le code tourne sans système d'exploitation, ou sous un petit noyau temps réel, sur des puces ARM Cortex-M, souvent de la famille STM32. Pas d'allocation dynamique, peu de mémoire, et un chien de garde, le watchdog, qui redémarre la carte si le programme se fige.

Le bon profil pense en cycles d'horloge et en octets. Il sait pourquoi une variable partagée avec une interruption se déclare volatile. Il sait aussi ce que coûte un calcul en virgule flottante sur une puce sans unité dédiée.

Le système et Linux embarqué

Ici, le développeur travaille dans ou autour du noyau Linux : pilotes, appels système, mémoire partagée, sockets. Sur les produits embarqués plus riches, il construit l'image du système avec Yocto ou Buildroot. La rigueur attendue vient du code relu par d'autres, parfois en open source.

La faible latence

Dans le trading, le traitement vidéo ou les moteurs de bases de données, le C et surtout le C++ servent à gagner des microsecondes. On y parle cache processeur, alignement mémoire, structures sans verrou. Ce marché paie à part, et nous n'avons pas de grille publique fiable pour le chiffrer.

C ou C++ ?

Le C++, créé par Bjarne Stroustrup, ajoute au C les classes, les templates et une bibliothèque standard très riche. La plupart des offres demandent les deux, avec une dominante. L'embarqué contraint et le noyau restent en C, la finance, le jeu vidéo et les gros logiciels penchent vers le C++.

Pour un débutant, nous conseillons d'apprendre le C d'abord. Il oblige à comprendre la mémoire, et cette compréhension sert ensuite dans tous les autres langages.

Sûreté mémoire : MISRA, ANSSI et la question de Rust

Le C laisse le développeur libre de lire et d'écrire n'importe où en mémoire. C'est sa force sur une puce de quelques kilo-octets. C'est aussi la source de la plupart de ses failles : dépassement de tampon, pointeur libéré puis réutilisé, entier qui déborde.

Les règles de codage

L'industrie encadre le langage par des règles écrites. MISRA C, née dans l'automobile, restreint les constructions dangereuses et s'impose aussi dans le ferroviaire et le médical. Le CERT C couvre la sécurité, et l'ANSSI publie un guide de programmation sécurisée en C, dont la version 1.4 date de 2022.

Ces règles se vérifient par des outils d'analyse statique comme Polyspace, Coverity ou cppcheck. En entretien, nous demandons au candidat une règle qu'il a dû contourner et comment il l'a justifié. La réponse dit beaucoup sur sa maturité.

Les outils dynamiques

Sur PC, Valgrind et les sanitizers de GCC et Clang, comme AddressSanitizer, détectent les accès mémoire illégaux pendant l'exécution des tests. Un développeur qui les lance avant chaque fusion de code évite une bonne part des crashs terrain.

Rust va-t-il remplacer le C ?

Rust garantit la sûreté mémoire dès la compilation, et le noyau Linux l'accepte officiellement depuis la version 6.1, sortie en décembre 2022. Des équipes embarquées commencent à l'adopter sur des modules neufs.

Sur nos missions, le C reste pourtant largement majoritaire. Des millions de lignes existent, les outils certifiés sont en C et les compétences Rust restent rares. Un développeur C qui ajoute Rust à son bagage élargit ses options, il ne change pas de métier.

Les compétences que nous vérifions en recrutement

Sur un CV embarqué, la liste C, C++, STM32, FreeRTOS, Git ne distingue personne. En entretien, nous cherchons la preuve que le candidat comprend ce que fait la machine sous son code.

  • La mémoire : pile et tas, pointeurs, alignement, et ce qui se passe quand une fonction récursive épuise la pile.
  • Le matériel : lire une datasheet, configurer un périphérique registre par registre, expliquer une interruption.
  • Le temps réel : priorités, inversion de priorité, sections critiques, et comment mesurer un temps de réponse.
  • Le debug : GDB, sonde JTAG, oscilloscope ou analyseur logique, et la méthode pour isoler un bug intermittent.
  • La qualité : MISRA, analyse statique, tests unitaires sur PC, revue de code.
  • La communication : un développeur C travaille avec l'électronicien, le mécanicien et le responsable qualité. Il doit se faire comprendre d'eux.

Ce que nous faisons en entretien

Nous décrivons un boîtier connecté qui redémarre tout seul, en moyenne une fois tous les trois jours, uniquement chez les clients. Aucun log, seulement le registre de cause de reset qui indique le watchdog. Le candidat a vingt minutes pour dire ce qu'il instrumente et dans quel ordre. Un bon profil pense à la pile, aux interruptions trop longues et aux fuites de ressources, puis propose un journal en mémoire qui survit au redémarrage.

Homme devant deux écrans affichant des courbes et des tableaux
Traces d'exécution, mesures de temps de réponse, cartes mémoire : le développeur C passe une bonne part de ses journées à lire ce que fait réellement la machine.

Salaire d'un développeur C en 2026

Pour un développeur C de trois à cinq ans, notre baromètre indique 51 à 66 K€ brut par an à Paris, hors variable. Comptez 40-55 K€ entre zéro et deux ans, 67-80 K€ entre six et dix ans, et plus de 82 K€ au palier expert. L'entreprise, sa taille, le diplôme et l'expérience décalent ces repères.

Salaire fixe brut annuel à Paris, hors variable

Junior

0-2 ans

40-55 K€

Confirmé

3-5 ans

51-66 K€

Médian : 59 K€

Senior

6-10 ans

67-80 K€

Expert / Lead

10 ans et +

82-99 K€ et plus

Et après ? Au-delà, un architecte logiciel embarqué ou un Staff Engineer issu du C dépasse le palier Expert, avec des fixes qui démarrent autour de 88 K€. Voir le baromètre des salaires

Paris et régions

Une grande partie des postes embarqués se trouve hors d'Île-de-France : Toulouse pour l'aéronautique et le spatial, Grenoble pour les semi-conducteurs, Rennes, Sophia Antipolis, Lyon. Les fourchettes y perdent 10 à 15 %, Lyon restant à environ 10 % de Paris. Le full remote se cale souvent 8 % sous la grille parisienne. Il reste rare quand il faut une carte sur le bureau.

Junior (0-2 ans)

Paris
40-55 K€
Hors Paris
34-50 K€

Confirmé (3-5 ans)

Paris
51-66 K€
Hors Paris
43-59 K€

Senior (6-10 ans)

Paris
67-80 K€
Hors Paris
57-72 K€

Expert / Lead (10 ans et +)

Paris
82-99 K€ et plus
Hors Paris
70-89 K€ et plus

Le secteur et le type d'employeur

Notre baromètre range le C sur la même courbe que les autres développeurs back-end. Le secteur pèse davantage que le langage. L'aéronautique et la défense paient un peu au-dessus de la médiane, l'automobile et l'industrie un peu en dessous. Une ESN d'ingénierie démarre en général sous le client final.

Le trading à faible latence forme un marché à part, avec des primes importantes. Les offres y sont peu publiques, et nous préférons ne pas avancer de chiffre que nous ne pouvons pas sourcer.

Le TJM d'un développeur C freelance

Free-Work listait 63 missions pour la recherche « c embarqué » ce 24 octobre 2026. Sur la première page, les tarifs des postes de développement tombaient le plus souvent entre 350 et 550 € par jour. Une mission C/C++ avec FPGA près de Paris montait jusqu'à 700 €.

Sources : grille de notre baromètre des salaires ; recherche Free-Work « c embarqué » consultée le 24 octobre 2026.

Comment devenir développeur C

Les formations

La voie la plus courante passe par une école d'ingénieurs ou un master en informatique, électronique ou systèmes embarqués. Les écoles d'électronique et les parcours mécatronique fournissent beaucoup de profils firmware. Un BUT GEII suivi d'une licence professionnelle en alternance mène aussi à des postes de technicien puis d'ingénieur.

L'école 42 et Epitech font écrire beaucoup de C dès la première année. Leurs anciens arrivent souvent à l'aise avec les pointeurs, moins avec le matériel, qu'ils apprennent en poste.

Apprendre par la pratique

Une carte de développement coûte quelques dizaines d'euros. Faire clignoter une LED sans bibliothèque, puis lire un capteur en I2C, puis ajouter FreeRTOS : ce parcours vaut un bon cours. Un dépôt GitHub qui le montre pèse lourd face à un recruteur.

La reconversion

Elle est plus rare qu'en développement web, car le métier demande des bases d'électronique et d'architecture des processeurs. Elle réussit surtout chez des électroniciens, des automaticiens ou des techniciens de maintenance qui ajoutent le logiciel à ce qu'ils savent déjà.

Évolutions de carrière

Passé six ou huit ans de métier, le développeur C hésite entre l'expertise technique, l'architecture des produits et l'encadrement. Le marché manque de seniors capables de faire les trois à la fois.

Encadrement technique

Postes
Tech Lead, responsable logiciel
Fixe à Paris
71-83 K€ en senior

Expertise

Postes
Staff Engineer, expert performance
Fixe à Paris
88-103 K€ en senior pour un Staff

Architecture

Postes
Architecte logiciel embarqué, architecte SI
Fixe à Paris
74-91 K€ en senior

Management

Postes
Engineering Manager
Fixe à Paris
84-96 K€ en senior

Indépendant

Postes
Développeur C freelance
Fixe à Paris
350 à 550 € par jour affichés

Pour aller plus loin, lisez nos fiches Engineering Manager, Tech Lead, Architecte SI ou Staff Engineer. Certains basculent vers la validation logicielle, décrite sur la fiche ingénieur QA, très demandée dans les secteurs certifiés.

Deux mains qui expliquent un point devant un ordinateur portable
Un senior qui explique une inversion de priorité à un junior fait souvent plus pour l'équipe qu'une semaine de code.

Développeur C, développeur back-end ou développeur Go : les différences

Cible

Développeur C
Matériel, noyau, temps réel
Développeur back-end
Serveurs d'applications et API
Développeur Go
Services réseau et outils cloud

Mémoire

Développeur C
Gérée à la main
Développeur back-end
Gérée par le langage
Développeur Go
Ramasse-miettes

Employeurs typiques

Développeur C
Industrie, défense, semi-conducteurs
Développeur back-end
Éditeurs, banques, scale-ups
Développeur Go
Scale-ups, hébergeurs, éditeurs d'infrastructure

Fixe confirmé à Paris

Développeur C
51-66 K€
Développeur back-end
51-66 K€
Développeur Go
51-66 K€

Les grilles sont proches, mais les viviers se croisent peu : un développeur embarqué rejoint rarement une équipe web, et l'inverse est encore plus rare. Le travail côté serveur a sa propre page, développeur back-end, et le langage de Google aussi, développeur Go. Pour recruter un profil C, notre page cabinet de recrutement de développeurs présente notre méthode.

Grand open space d'allure industrielle avec une équipe au travail
Startups du hardware, de la robotique ou de l'énergie : de plus en plus de développeurs C travaillent hors des grands groupes industriels.

Les outils d'un développeur C

L'outillage tient en peu de briques, mais chacune demande des années. On y trouve le compilateur et ses options, le debugger, la construction du projet et la chasse aux erreurs mémoire.

  • Logo GCC / ClangGCC / ClangStandards de l'écosystème C/C++
  • Logo VS Code / Vim / EmacsVS Code / Vim / EmacsSelon les préférences, VS Code progresse aussi sur C
  • Logo GDBGDBDebugger de référence pour C/C++
  • Logo Git/GitHubGit/GitHubGestion de version
  • Logo ValgrindValgrindDétection de fuites mémoire et erreurs runtime
  • Logo Make / CMakeMake / CMakeStandards de build C/C++
  • Logo LinuxLinuxPlateforme dominante pour le développement C
  • Logo Embedded toolchainsEmbedded toolchainsARM GCC, AVR-GCC, ESP-IDF selon la cible