À propos du service
TraduitJe suis un développeur bas niveau qui travaille près du matériel. Depuis plus de dix ans, j'écris et optimise manuellement l'assembleur pour x86 et ARM, tirant parti de la performance là où chaque cycle d'horloge et chaque ligne de cache comptent. Quand une boucle chaude ralentit tout le produit, je la décompose au niveau des instructions, comprends exactement comment le processeur l'exécute, et la réécris pour que le pipeline ne se bloque pas, que les branches soient bien prédites et que l'accès mémoire soit amical avec le cache. Ce n'est pas un développement d'application typique : je lis le code désassemblé aussi librement que d'autres lisent des sources, et raisonne sur les registres, les voies SIMD, l'alignement et la microarchitecture, pas sur les frameworks.
Mon travail quotidien consiste à optimiser manuellement les sections critiques en termes de performance, à profiler soigneusement et à effectuer des mesures honnêtes avant et après, afin que le gain soit visible en chiffres, pas seulement en mots. Je débogue au niveau des instructions lorsqu'un plantage ou un bug subtil ne se manifeste que dans une version optimisée, et je réalise une ingénierie inverse légitime : restaurer la documentation perdue, comprendre le comportement non documenté de votre propre composant, ou maintenir un logiciel dont le binaire a divergé des sources. J'écris un assembleur propre et commenté que n'importe quel ingénieur ordinaire peut lire aussi, et je garde toujours une version de référence portable à proximité pour que le code reste maintenable.
Montrez-moi où ça fait mal : codec, noyau mathématique, analyseur, boucle physique interne, procédure de firmware. Je vais mesurer, trouver le véritable goulet d'étranglement au lieu de suppositions, et livrer une version optimisée et testée avec des chiffres pour le prouver.
— Assembleur x86 et ARM, écrit à la main et optimisé
— Vectorisation SIMD : SSE, AVX et NEON
— Profilage, benchmarks et analyse des points chauds
— Débogage des versions optimisées au niveau des instructions
— Ingénierie inverse et désassemblage pour maintenance
— Réglage du cache, de l'alignement et de la prédiction de branche
Mon travail quotidien consiste à optimiser manuellement les sections critiques en termes de performance, à profiler soigneusement et à effectuer des mesures honnêtes avant et après, afin que le gain soit visible en chiffres, pas seulement en mots. Je débogue au niveau des instructions lorsqu'un plantage ou un bug subtil ne se manifeste que dans une version optimisée, et je réalise une ingénierie inverse légitime : restaurer la documentation perdue, comprendre le comportement non documenté de votre propre composant, ou maintenir un logiciel dont le binaire a divergé des sources. J'écris un assembleur propre et commenté que n'importe quel ingénieur ordinaire peut lire aussi, et je garde toujours une version de référence portable à proximité pour que le code reste maintenable.
Montrez-moi où ça fait mal : codec, noyau mathématique, analyseur, boucle physique interne, procédure de firmware. Je vais mesurer, trouver le véritable goulet d'étranglement au lieu de suppositions, et livrer une version optimisée et testée avec des chiffres pour le prouver.
— Assembleur x86 et ARM, écrit à la main et optimisé
— Vectorisation SIMD : SSE, AVX et NEON
— Profilage, benchmarks et analyse des points chauds
— Débogage des versions optimisées au niveau des instructions
— Ingénierie inverse et désassemblage pour maintenance
— Réglage du cache, de l'alignement et de la prédiction de branche