Opentext - The Information Company
OpenText is a global leader in information management, where innovation, creativity, and collaboration are the key components of our corporate culture. As a member of our team, you will have the opportunity to partner with the most highly regarded companies in the world, tackle complex issues, and contribute to projects that shape the future of digital transformation.
AI-First. Future-Driven. Human-Centered.
At OpenText, AI is at the heart of everything we do—powering innovation, transforming work, and empowering digital knowledge workers. We're hiring talent that AI can't replace to help us shape the future of information management. Join us.
Your Impact
The Principal Software Engineer’s main role is to provide expertise in all levels of architecture design in software application development across multiple projects. He must take into consideration the framework needs, security, network intricacies and scalability. He is expected to serve as the team’s subject matter expert in most areas of development. The Principal Engineer organizes the efforts of application development including technical project management.
What The Role Offers
- Act as the key resource for setting technical directions defining and deploying solid engineering practices, coaching and mentoring other engineers and qualifying engineering project plans
- Prepare and/or review the solution, integration, physical, security designs of the project
- Interact with the cross-functional teams
- Provide project estimates
- Prepare, review and/or approve project software requirements, specifications and other artifacts (Software Design Document, Entity Relationship Diagram, etc.)
- Assist in the preparation of Technical Architecture Documents
- Identify risks and risk mitigation strategies associated with the architecture and/or technical delivery
- Conduct research on emerging application development software products, languages, and standard in support of procurement and development efforts
- Recommend and implement software upgrades, tools and techniques
- Code software programs and applications according to specifications
- Code Review and ensure code quality throughout application life cycle.
- Implement process improvements
- Analyze data from software analysis tools for the purpose of correcting errors, isolating areas for project improvement
- Generate statistics and prepare reports for management and/or team members on the status of the programming process
- Troubleshoot cross-component/technology issues in areas of expertise
- Provide support to multiple projects
- Provide production support as needed
- Engage in project level planning/project management
What You Need To Succeed
- 12 - 15 years of relevant experience with expert level professional/technical skills.
- Complete understanding of software development life cycle using various methodologies
- Expert in implementing (coding & unit testing) detailed design into application functionalities using Java/JEE as the primary development language.
- Expert in JEE Web Services Technologies: e.g., JAXB, Java APIs for XML Messaging
- Experience in designing of end to end solution for small to large scale applications
- Effective in communication, critical thinking and interpersonal skills
- Ability to be a hands-on leader on multiple projects and to assist in troubleshooting
- Behavior Characteristics: Strong attention to detail and process, collaborative and adaptable, independent, self-motivated, with high level of accountability, analytical
- Makes decisions within a project/function, guided by professional/technical expertise and known practices and established precedents
- Required Technical skills:
Should Be Proficient In The Following
- Distributed and multi-threaded systems on a relational database.
- Micro-services and distributed service-oriented architectures
- Design and implementation of REST APIs.
- Developing on a modern front-end framework
- Using a test-driven approach to writing code
Frameworks: Spring 5+, Hibernate 5+ and Sencha
Languages: Java 8+, JavaScript, SQL, PL/SQL
Messaging Middleware: IBM MQ, Active MQ
Databases: Relational database experience, Oracle/MySQL/ PostgreSQL
Development tools: IntelliJ/Eclipse, Maven, Git
Nice To Haves
Experience with performance testing, code debugging, monitoring, and JVM tuning.
Experience with the following technologies - Hazelcast, Kafka, Docker, BIRT Reporting
Academic
Bachelor’s/College Degree in Computer Science/ Information Technology or equivalent in relevant discipline.
VOTRE IMPACT
En tant qu’Ingénieur·e Logiciel Principal·e, vous jouerez un rôle stratégique dans la conception architecturale de solutions logicielles à travers plusieurs projets. Vous interviendrez sur des problématiques complexes liées à l’architecture applicative, en prenant en compte les besoins en matière de framework, de sécurité, de réseau et d’évolutivité.
Vous agirez en tant qu’expert·e de référence au sein de l’équipe sur la plupart des domaines techniques et encadrerez les efforts de développement, y compris la gestion technique des projets.
CE QUE LE POSTE OFFRE
- Être la personne référente pour définir les orientations techniques, déployer de bonnes pratiques d’ingénierie, accompagner et coacher les autres développeur·euse·s.
- Participer à la conception des solutions techniques, à l’intégration, à la sécurité et à l’architecture physique des projets.
- Collaborer avec des équipes pluridisciplinaires dans un environnement agile.
- Fournir des estimations pour les projets techniques.
- Rédiger, relire ou valider les spécifications logicielles et documents techniques (documents de conception, diagrammes ER, etc.).
- Contribuer à la rédaction de l’architecture technique.
- Identifier les risques liés à l’architecture et proposer des stratégies d’atténuation.
- Réaliser une veille technologique sur les nouvelles tendances, outils, langages et standards du développement logiciel.
- Recommander et mettre en œuvre des améliorations techniques et des mises à jour logicielles.
- Participer activement au développement logiciel, à la revue de code et à la validation de la qualité tout au long du cycle de vie de l’application.
- Mettre en place des processus d'amélioration continue.
- Analyser les résultats des outils d’analyse logicielle pour corriger les erreurs et optimiser les performances.
- Préparer des rapports et des statistiques à destination de l’équipe et/ou de la direction.
- Résoudre des problèmes techniques complexes et transverses.
- Apporter un support technique à plusieurs projets, y compris en production.
- Participer à la planification et à la gestion de projets.
PROFIL RECHERCHÉ
- 12 à 15 ans d’expérience pertinente avec une expertise technique avérée.
- Maîtrise complète du cycle de vie du développement logiciel, avec diverses méthodologies (Agile, DevOps, etc.).
- Expertise en développement Java/JEE (codage, tests unitaires, intégration).
- Solide connaissance des technologies Web Services (JAXB, API Java pour XML, etc.).
- Expérience dans la conception de solutions de bout en bout pour des applications à grande échelle.
- Excellentes compétences en communication, pensée critique et relationnel.
- Capacité à être un·e leader opérationnel·le, à intervenir sur plusieurs projets et à résoudre des problèmes techniques complexes.
- Forte rigueur, esprit d’équipe, adaptabilité, autonomie, sens des responsabilités, esprit analytique.
COMPÉTENCES TECHNIQUES REQUISES
Maîtrise De
- Systèmes distribués et multithread sur bases de données relationnelles.
- Architectures microservices et SOA.
- Conception et développement d’API REST.
- Développement sur frameworks front-end modernes.
- Développement orienté tests (TDD).
Technologies Et Outils
- Frameworks : Spring 5+, Hibernate 5+, Sencha
- Langages : Java 8+, JavaScript, SQL, PL/SQL
- Middleware de messagerie : IBM MQ, Active MQ
- Bases de données : Oracle, MySQL, PostgreSQL
- Outils de développement : IntelliJ, Eclipse, Maven, Git
Atouts Supplémentaires (Nice To Have)
- Expérience en tests de performance, débogage, monitoring, tuning JVM.
- Connaissance des technologies : Hazelcast, Kafka, Docker, BIRT Reporting.
FORMATION
- Diplôme universitaire (Bac+3 minimum) en informatique, technologies de l'information ou domaine équivalent.
OpenText's efforts to build an inclusive work environment go beyond simply complying with applicable laws. Our Employment Equity and Diversity Policy provides direction on maintaining a working environment that is inclusive of everyone, regardless of culture, national origin, race, color, gender, gender identification, sexual orientation, family status, age, veteran status, disability, religion, or other basis protected by applicable laws.
If you need assistance and/or a reasonable accommodation due to a disability during the application or recruiting process, please contact us at hr@opentext.com. Our proactive approach fosters collaboration, innovation, and personal growth, enriching OpenText's vibrant workplace.