Nos expertises
De vos processus métiers aux réponses numériques, nous vous accompagnons dans le choix des stratégies les plus adaptées.
De vos processus métiers aux réponses numériques, nous vous accompagnons dans le choix des stratégies les plus adaptées.
Parce que nous sommes avant tout, une agence au service de nos clients.
Avant de commencer un ouvrage, nous cherchons à connaître vos usages.
Pour proposer les stratégies les plus adaptées à vos besoins, budgets et ambitions, nous vous accompagnons dans leur définition.
Notre première approche concerne la rédaction d’un état des lieux de votre entreprise, de vos processus et de votre infrastructure.
Après cette étape de discussion et observation, nous vous proposerons une stratégie de numérisation.
Toutes nos solutions s’appuient sur de nombreuses étapes à valider.
Notre objectif est de fournir en continu, des livrables validant vos besoins.
C’est pourquoi nous mettons en place, et ce dès les premiers jours, des outils vous permettant de consulter l’état d’avancement de nos travaux et de partager vos retours rapidement.
Techniquement, quand vos infrastructures le permettent, nous déployons une version de développement, de tests et de production. Et si vous en avez besoin, nous sommes en mesure de mettre en place une version vitrine propice aux démonstrations.
Pour assurer un processus rapide orienté qualité, nous outillons nos approches par de nombreuses démarches de tests, humains et machines.
Puis, en vous fournissant un accès à des espaces de développement, vous pourrez au plus tôt nous faire part des correctifs à apporter, dans des espaces de communications dédiés.
Parce qu'un outil n’est utile que s’il est utilisé, nous proposons des moments de formations, pour vous accompagner dans la prise en main des réponses technologiques qui auront été mises en place.
Nous pouvons également enrichir cette expérience d’apprentissage en vous fournissant des supports de documentation simples et accessibles.
Du site internet aux applications web fortement dynamiques, nous développons des interfaces numériques sur mesure.
Non, nous n’aimons pas Wordpress chez siliceum (ni le PHP d’ailleurs).
Nous faisons le pari d’outils adaptés aux besoins : parce qu’un site statique fournit à nos utilisateurs un site plus rapide, adapté, plus facile à sécuriser et moins cher à héberger.
D’une maquette graphique ou d’un site existant, nous simplifions et accélérons vos sites web, à l’aide d'outils maisons ou issus des standards (Jekyll, Hugo, SCSS, git, Azure Static Storage).
Besoin d’un site fortement interactif ? D’un intranet / back-office sur mesure ?
Parce que plusieurs de nos clients ont les mêmes besoins, nous avons développé en interne de nombreux outils permettant de gérer les cas d’usage les plus courants :
Pour vous proposer des expériences d’utilisations fluides, rapides et simples, nous nous appuyons sur des usages et des technologies de référence dans le domaine.
Avec plus de 7 ans d’expérience sur Angular (AngularJS & Angular 11+), nous avons déployé plusieurs applications complexes pour des usages variés.
Besoin d’une application disponible sans connexion internet ? Disponible sur votre ordinateur ou votre téléphone ?
Les technologies que nous utilisons (Ionic et les Applications Web Progressives, dites PWA) permettent de fournir une expérience aussi riche sur ordinateur que sur téléphone, en ligne ou hors ligne.
Leur principal avantage ?
Avec un seul et même programme pour Android, iOS, Windows et Mac, les coûts de développement sont beaucoup moins élevés que pour une solution dite “native”.
Alors oui, toutes les applications de ce type ne sont pas adaptées à tous les usages. Et ça, nous en discuterons autour d’un café.
Ayant participés aux développements, aux supports et aux déploiements d’applications backend au niveau européen, nous possédons une expérience de plusieurs années dans ce domaine.
Notre équipe peut adresser la création de serveurs avec une forte expérience en Java SpringBoot et Typescript NestJS.
Nous pouvons ainsi vous aiguiller sur les méthodes et outils facilitant la gestion d'une application en production.
Parce qu’on ne souhaite pas déployer un serveur pour une seule fonction, nous sommes en mesure de réaliser des ‘Functions As A Service’.
Une ‘Function As A Service’, c’est une fonction déployée sur un fournisseur cloud qui pourra être appelée sur internet.
Vous n'avez pas à gérer de serveur ou d’environnement, ni de vous occuper de la montée en échelle, votre fournisseur s’en occupe pour vous !
Attention, ce genre de technologie ne doit pas être utilisé pour remplacer un serveur plus complexe. Il est particulièrement adapté aux besoins de traitements de données ponctuels ou au prototypage.
Parce nous portons un regard tout particulier sur la performance, nous avons pris le temps d'acquérir les compétences nécessaires à l'exécution de fonctions très bas niveau (C++) sur le Cloud.
Nous pouvons également adresser vos besoins en Typescript / Javascript et Java.
Tous nos outils en interne sont déployés sur Microsoft Azure. La plateforme cloud de Microsoft est réputée sur le marché et a l’avantage d’être simple et pratique d’utilisation.
Mais Azure n’est pas la seule plateforme et ne peut pas répondre à tous les problèmes.
Nous avons eu l'opportunité d'éprouver certains produits de grands fournisseurs pour nos clients :
Un serveur/service de qualité doit fournir une API utilisable, adaptée et documentée pour son environnement.
Pour cela, nous utilisons des interfaces respectant l'architecture REST, documentées avec le standard OpenAPI 3.0.
Il s'agit un format de description et de documentation de référence dans le domaine des APIs.
Ce format est utilisable par des services externes comme swagger (interface web pour utiliser une API) ou encore RapidAPI (plateforme de marché pour des APIs).
Il permet de générer très rapidement des outils permettant de comprendre vos services, de les essayer et de les lier avec d'autres plateformes externes.
La performance d’une application est critique pour bien des métiers.
Une application multimédia ou un jeu vidéo, doit au minimum proposer une expérience de 30 images par seconde. Sinon il perd en fluidité et le ressenti devient mauvais pour les utilisateurs, induisant critiques et pertes de parts de marché.
Dans le domaine du web, la performance d'une page web impacte significativement les résultats de référencement, le comportement des utilisateurs et de facto, le chiffre d'affaires d'une entreprise numérique (cf. Web.dev - Why speed matters).
Notre expérience nous permet d’adresser deux catégories de projets : les applications web et les applications temps réel / calcul intensif (particulièrement en C++).
La performance d’une plateforme web intègre quatre éléments : les requêtes à la base de données, le temps serveur, le transfert des données et le client.
Nous sommes en mesure d'analyser / réaliser des gains de performances sur l'ensemble d'un système informatique. Nos plus grandes affinités sont Spring, Springboot, Angular et Mysql.
Dans un premier temps, il s’agit d’abord d’analyser d’un point de vue macro, c'est-à-dire le fonctionnement global d'un logiciel, afin d’optimiser les chemins critiques.
Il est également possible que le problème soit plus ciblé, dit micro, où nous optimisons directement les algorithmes utilisés et comment ils sont écrits.
Afin de profiter du meilleur des mondes, nous réalisons des solutions hybrides, que cela soit la création de services web à partir d'algorithmes de calculs intensifs, ou bien l'accélération d'application web par la mise en place de composants fortement optimisés (WebAssembly, Plugin Natif JNI/NodeJS/Python...).
Faire un suivi de performance n’est pas toujours aisé, et mal réalisé il sera soit inutile, soit ignoré.
Un des facteurs majeurs dans ce domaine est la stabilité de l’environnement dans lequel les tests de performances sont exécutés.
Si l’environnement n’est pas maîtrisé alors les résultats seront trop variables, et il faudra relancer les tests un nombre important de fois pour obtenir des résultats fiables, que l’on peut suivre dans le temps. Une explication plus détaillée de ce point est disponible sur la documentation d’un de nos outils.
C’est pour cette raison que nous intervenons chez nos clients pour les accompagner dans la stabilisation de leurs tests et de leurs environnements. Nous proposons également de louer des machines de tests stabilisés par nos soins, utilisables avec Azure Devops, Gitlab et Github.
Enfin, après la mise en place d’un environnement stable, nous vous proposons d’aller encore plus loin avec la mise en place du suivi des tests grâce à l’un de nos outils : calcite.
Car certains domaines nécessitent une expertise dite bas niveau, proche de la machine et de son fonctionnement, nous vous proposons nos services d’optimisation.
Que ce soit pour du jeu vidéo, traitement d’images, data-science ou tout autre application à forts besoins de performance, nous sommes capables d’optimiser vos algorithmes pour tirer le meilleur parti de vos machines.
Les machines actuelles sont souvent sous-utilisées, que ce soit par manque de multithreading, d’utilisation SIMD ou des GPUs, nous vous aiderons à exploiter le plein potentiel de vos machines.
Nous pouvons donc réduire le temps de calcul nécessaire à vos traitements, et ainsi réduire vos coûts machines ou tout simplement faire en sorte que votre programme tourne suffisamment vite pour votre machine cible.
Forts de notre expérience, nous avons notamment participé à la relecture et rédaction d’un livre dédié à l’analyse et optimisation sur les processeurs modernes (lien vers le livre, qui fait désormais référence en la matière.
Au cours de nos précédentes expériences professionnelles, nous avons également été amené à déposer un brevet dans le domaine de la distribution du calcul.