Titre du poste : Développeur Java senior
Référence : 26-04-7711-002
Lieu : Genève
Date de début souhaitée : Février 2027
Taux d'occupation : 80 à 100%
Rémunération : à partir de 125'000 CHF / an (base 100%)
Description du poste et contexte :
Nous recherchons pour un client, une administration publique à Genève, un(e) développeur(se) Java senior afin de renforcer la capacité de développement des équipes produit soutenues par son service de développement sur mesure, en charge d'applications Java utilisées par différents services de l'administration.
Autonome sur l'ensemble du cycle de développement (conception, réalisation, tests, intégration, déploiement), la personne retenue sera attachée à la qualité logicielle, à la sécurité applicative et à la confidentialité des données. Les technologies attendues sont celles de la filière Java du service : Java, Spring Boot, Hibernate / JPA, API REST, PostgreSQL, GitLab CI, Docker et OpenShift. Mission de longue durée (jusqu'à 5 ans).
Responsabilités :
- Concevoir, développer et maintenir des applications et composants Java dans le respect des standards de la filière.
- Concevoir et réaliser les tests (unitaires, intégration, acceptation) et les automatiser dans la chaîne CI/CD.
- Pratiquer la revue de code systématique et contribuer à la documentation technique.
- Analyser et corriger les anomalies lors des phases de tests d'intégration et fonctionnels.
- Garantir le niveau de qualité et de sécurité du code livré : indicateurs SonarQube, remédiation des vulnérabilités, protection des données.
- Identifier et communiquer les risques et problèmes, et fédérer les personnes concernées pour rechercher des solutions.
- Participer à l'amélioration continue des pratiques d'ingénierie, des processus, des outils et de l'organisation Agile de l'équipe.
- Partager et capitaliser l'expérience acquise au sein des communautés de pratiques du service.
Formation :
- Diplôme HES ou licence en informatique, diplôme d'ingénieur EPF ou diplôme fédéral.
Compétences primordiales :
- 6 années d'expérience et plus.
- Java : maîtrise du langage (versions LTS récentes) et des principes de conception objet (SOLID, design patterns).
- Backend : Spring et Spring Boot, Hibernate / JPA, application autonome avec serveur intégré.
- API : conception et développement d'API REST (JAX-RS, OpenAPI), sécurisation avec OAuth2 / OIDC.
- Architecture : architecture hexagonale, séparation frontend / backend, connaissance des concepts d'architecture logicielle courants.
- Qualité logicielle : tests unitaires et d'intégration (JUnit), TDD / BDD (Cucumber, Gherkin), revue de code systématique, SonarQube.
- Sécurité applicative et confidentialité des données : OWASP Top 10, gestion des secrets, protection des données personnelles et sensibles dans le code et les environnements.
- DevOps : Git et GitFlow, GitLab CI, Maven, Docker, OpenShift.
- Base de données : bases relationnelles et SQL, PostgreSQL.
- Environnement : expérience confirmée en Agile / Scrum, JIRA.
Compétences importantes :
- Messagerie asynchrone : AsyncAPI, message broker (RabbitMQ).
- Conception : DDD, microservices.
- Frontend : TypeScript, Web Components, SPA.
- Sécurité : démarche AppSec / Security First, analyse et remédiation de vulnérabilités (SAST / DAST / SCA).
- Documentation technico-fonctionnelle intégrée au projet (Git).
- Modernisation : migration d'applications existantes (Java ancien, EJB / Struts, JBoss / Tomcat, Oracle) vers les standards cibles de la filière.
- Orchestration : Kubernetes.
Compétences optionnelles :
- Expérience de publication de code en open source (licence, documentation, hygiène de dépôt, nettoyage des secrets et des données avant publication).
- Pratique des outils d'IA d'assistance au développement (génération de code et de tests, revue) avec discernement : validation des résultats, protection des données.
- Frontend : Vue.js ou React.
- Plateformes : Nginx, Express.
- Observabilité : Dynatrace, Splunk.
- Expérience confirmée au sein d'une administration publique genevoise.
Qualités requises :
- Autonomie, sens des responsabilités, adaptabilité, dynamisme.
- Esprit d'équipe et partage des connaissances.
- Initiative et ouverture au changement.
- Savoir recevoir et donner des feedbacks d'amélioration.
- Rigueur et discrétion dans le traitement des informations confidentielles.
- Capacité à monter en compétences sur un domaine fonctionnel.
- Capacité à travailler sous pression.