Java Developer

Cegedim · Cairo, Egypt · Posted 2026-04-28

Votre Mission Chez CegedimGeneral DescriptionWe are looking for a Java developer to join our legacy modernization team. You will work on a mission-critical, high-availability Java/Java EE legacy codebase, refactoring it incrementally and modernizing it without breaking behavior. The role requires fluency in both legacy Java EE technologies (JSF, iBatis/MyBatis, JSP) and modern Java/Spring practices, combined with strong test-driven development discipline and confidence working with code that has limited test coverage. Your day-to-day will mix understanding existing code, writing characterization tests around it, refactoring it safely, and delivering new features under TDD.Missions & Responsibilities DescriptionRead, understand, and refactor existing legacy Java/Java EE code while preserving behavior, using characterization tests as a safety net.Develop new features and modernize existing modules following test-driven development (red-green-refactor) discipline.Analyze, design, and develop high-volume, low-latency components for mission-critical systems, delivering high availability and performance.Contribute in all phases of the development lifecycle — from understanding requirements through implementation, testing, and release.Write well-designed, testable, efficient code; introduce tests where they are missing rather than relying on manual verification.Support continuous improvement by investigating modern Java/Spring practices, presenting alternatives for architectural review, and aligning refactoring direction with the broader modernization roadmap.Profile & skillsSkills & knowledge BS/MS degree in Computer Science, Engineering or a related subject At least 3 years of proven hands-on software development experience on production Java systems Hands-on experience designing, maintaining, and refactoring applications on Java EE platforms Object-oriented analysis and design using common design patterns; SOLID principles applied in real production code Profound insight of Java and J2EE; working knowledge of JavaScript and Ajax (legacy front-end interactions) Excellent knowledge of relational databases: Oracle and SQL Knowledge of non-relational databases: MongoDB Excellent knowledge of Hibernate, iBatis, AND MyBatis — comfortable working with legacy iBatis code and migrating it toward modern Hibernate/MyBatis Experience in the Spring Framework Experience developing web applications using Spring MVC and JSF Experience in PrimeFaces, RichFaces, or IceFaces (legacy JSF component libraries) Experience in front-end development with React, REST, HTML, CSS, responsive design (for modernization work) Strong test-driven development (TDD) discipline — red-green-refactor as a daily practice, not just "writing tests after" Strong refactoring skills using characterization tests for safely changing legacy code without an existing test suite (per Michael Feathers' "Working Effectively with Legacy Code") Confidence breaking down 1000+ line legacy classes into testable, maintainable units while preserving behavior Experience in Maven Experience in Eclipse and/or IntelliJ IDEA Experience in SVN, Git, and Git-flow Experience in Jira Experience in Agile (Scrum/Kanban), UML, and CI/CD pipelines Detail-oriented with strong concentration ability on long-running refactoring tasks Analytical mindset, critical thinking, and demonstrable ability to discover and fix errors in legacy codePersonal skillsEager to learn, passionate, dynamic, open-minded, strong team spirit, creative, precise and concise, autonomous, with patience for the rhythm of legacy modernization workLanguageEnglish required; Spanish would be appreciated

Apply for this role