Senior Solutions Architect
Date: Dec 5, 2023
Location: Montreal, QC, CA
Company: Houghton Mifflin Harcourt
The Information Technology organization is transforming to realize our mission: Become a leader in HMH’s digital transformation, and as a strategic partner, innovate and deliver highest value, competitive advantage solutions across all corporate and business functions. Our ambition is to be a digital leader through innovation and develop and deliver leading edge technology such as robotic process automation and artificial intelligence to solve some of HMH’s greatest operational business challenges. Our professionals will have business relevant skills to connect our HMH partners to technologies that propel the businesses to deliver the greatest value for HMH and our customers.
We are building a team of IT professionals with an insatiable appetite to learn, a relentless focus on customer service, a technological curiosity toward future possibilities, and a creativity in solving business challenges with leading technologies. Our team will find ways to work together, create a sense of community where it’s safe to take risks and learn together, develop our careers, and all have an opportunity to work on new technologies. We will work together, learn together and have fun together. As a team, we will lead HMH’s digital transformation.
Aperçu du Poste
Nous sommes à la recherche d'un architecte de solutions Full-Stack expérimenté et passionné pour diriger l'évolution architecturale de nos lignes de produits et de nos produits, basés sur nos plates-formes d'application.
Poste permanent à temps plein
Hybride: Montréal ou Sherbrooke, QC
Responsabilités
Leadership architectural
- Démontrer un leadership architectural stratégique en supervisant l'évolution systématique et l'affinage d'un ou plusieurs produits, en s'appuyant sur une compréhension approfondie des plates-formes d'application et des gammes de produits.
- Travailler en collaboration avec les équipes de plates-formes d'application pour affirmer et négocier le soutien de la plate-forme pour les produits désignés.
- Prendre l'initiative pour obtenir un consensus et un engagement en ce qui concerne les décisions architecturales, en tenant compte des compromis et des contraintes nécessaires.
- Communiquer efficacement les résultats de ces compromis aux parties prenantes et élaborer des stratégies pour minimiser leur impact, en garantissant la résilience architecturale et l'avancement de nos offres de produits
Conception système
- Collaborer avec les propriétaires de produits, les gestionnaires de produits et les architectes principaux pour décomposer et reconstituer l'architecture, les composants, les modules et les interfaces du ou des produits assignés.
- Suivre les méthodes scrum basées sur JIRA pour les itérations agiles et la cadence de mise en production.
Qualités architecturales
- Fournir un leadership architectural à notre équipe de produits, en fournissant des solutions permettant aux produits de traiter de grandes quantités de données, d'offrir une tolérance aux pannes élevée, une disponibilité élevée, une évolutivité élevée, une latence faible et des performances optimales pour répondre aux attentes de l'entreprise.
- Inculquer la culture DevSecOps dans l'architecture, le développement et les processus opérationnels, en garantissant la conformité aux réglementations sur la protection des données et la sécurité des données des utilisateurs.
Architecture continue
- Identifier les goulots d'étranglement du système, concevoir des optimisations et mettre en œuvre des améliorations pour améliorer en permanence l'efficacité informatique des produits.
- Apporter des modifications de conception et assurer la compatibilité du ou des produits assignés avec les autres produits de différentes gammes de produits sur plusieurs plates-formes.
- Progression continue de nos objectifs : convergence technologique, simplification, cohérence, évolutivité, disponibilité, efficacité économique, expérience client de qualité et centrée sur la plate-forme.
Conformité technologique
- Garantir la cohérence et l'alignement avec les piles technologiques de l'entreprise, y compris les produits prêts à l'emploi et les cadres et bibliothèques tiers.
- Suivre et/ou adapter les prescriptions technologiques pour améliorer les capacités du système.
Documentation
Utilisez habilement les sessions de revue de conception non seulement pour transmettre l'architecture des solutions, mais aussi pour produire méticuleusement une documentation complète. Cela comprend la création de diagrammes de conception détaillés, la tenue de journaux des décisions architecturales et la formulation de directives claires pour les équipes de développement. Toute la documentation doit être systématiquement organisée et accessible via des outils tels que Confluence, garantissant qu'elle serve de référence solide et facilite les processus de développement sans heurts.
Mentorat
Travaillez en étroite collaboration avec les ingénieurs logiciels, les responsables techniques et les responsables de livraison pour assimiler les besoins, établir les meilleures pratiques de développement et fournir des conseils techniques tout au long du cycle de développement.
Recherche d'excellence logicielle
Collaborez avec nos équipes d'ingénieurs logiciels pour élever les normes de codage grâce à des revues de code collaboratives. Mettez l'accent sur la correction des incohérences de conception, promouvez les meilleures pratiques : principes de conception par contrat, OOD (conception orientée objet) et programmation orientée événements. Une passion pour le détail et l'expertise en ingénierie, ainsi que le plus grand désir de promouvoir ces passions au sein de nos équipes.
Qualifications
Éducation
Baccalauréat ou maîtrise en informatique, génie logiciel ou dans un domaine connexe.
Certifications
La certification AWS Cloud Solutions Architect (Associate) serait fortement préférée
Expérience
- Crédibilité avérée en matière d'expérience en architecture logicielle d'au moins 7 ans, avec un accent sur la conception, la construction et la maintenance de systèmes complexes à grande échelle présentant des caractéristiques SaaS multi-locataires intrinsèques.
- Expérience pratique en architecture de produits, en particulier pour la gestion de l'évolution architecturale et la refonte de logiciels existants.
- Expérience substantielle avec les microservices, la conteneurisation, les technologies sans serveur et natives du cloud.
- Plateformes cloud spécifiques, en particulier AWS, et les services cloud tels qu'EKS, API Gateway, Lambda, RDS, Aurora, S3, EFS, WAF, Route 53, Interface / Gateway Endpoints et VPC.
- Expérience raisonnable dans la provision de l'infrastructure ou la collaboration avec les équipes d'infrastructure utilisant Terraform.
- Expérience raisonnable dans le déploiement de charges de travail basées sur K8s avec Helm, et en DevOps en utilisant Concourse CI et JFrog Artifactory.
Compétences
Des compétences dans au moins deux des niveaux techniques suivants sont requises:
Niveau de présentation
- Une exposition significative et une expérience de travail avec l'interface utilisateur (UI/UX) basée sur React JS.
- Un niveau de confort avec le framework meta Single SPA, les applications conteneurs UI, Webpack et les micro-frontends plug-and-play.
Niveau business
- Une très grande expérience dans le développement de microservices avec Spring Boot.
- Une expérience significative dans la création, l'évaluation, la consommation et l'affinement de l'API REST et GraphQL, de préférence en utilisant Apollo.
Niveau de reporting
- Une expérience très significative dans le travail avec des outils de reporting/BI couramment utilisés.
- Une exposition au travail avec des plates-formes de reporting, qu'elles soient internes ou prêtes à l'emploi.
Haut niveau de préférence
- Une exposition à l'ingénierie des données avec Apache Spark et aux pipelines de données avec Apache Airflow.
- Une familiarité avec les outils d'analyse de données et d'entrepôt de données couramment utilisés, par exemple, Snowflake warehouse.
Niveau de persistance
- Une expérience solide de travail avec JPA et Hibernate.
Niveau de données
- Une expérience significative dans le développement avec PostgreSQL.
- Une compréhension solide des modèles de données pour les bases de données SQL et NoSQL.
Langages de programmation
- Une maîtrise de Java est requise ; Python est un atout indéniable.
Personnalité
Résolution de problèmes
De solides compétences analytiques et de résolution de problèmes pour relever des défis techniques complexes.
Communication
Excellentes compétences en communication pour transmettre efficacement des concepts techniques et collaborer avec des équipes interfonctionnelles.
Apprentissage continu
Aptitude à apprendre des technologies, des cadres et des bibliothèques, comme l'exigent les dynamiques des produits.
Adaptabilité
Capacité à prospérer dans un environnement dynamique et en constante évolution, et à s'adapter aux technologies et aux besoins de l'entreprise en évolution.
Position Overview
We are seeking experienced, passionate, full- stack Solutions Architect to lead the architectural evolution of our product lines and products, based on our application platforms.
Hybrid: Montreal or Sherbrooke, QC
Permanent full-time position
Responsibilities
Architectural Leadership
- Demonstrate strategic architectural leadership by directing the systematic evolution and refinement of one or more products, informed by a deep understanding of application platforms and product lines.
- Engage collaboratively with application platform teams to assert and negotiate platform support for the designated products.
- Take the lead in gaining consensus and commitment for architectural decisions, considering the necessary trade-offs and constraints.
- Effectively communicate the outcomes of these trade-offs to stakeholders and devise strategies to minimize their impact, ensuring the architectural resilience and advancement of our product offerings.
System Design
- Collaborate with the product owners, the product managers, and the lead architects to de- constitute and re- constitute the architecture, components, modules, and interfaces of the assigned product(s).
- Follow the JIRA- based scrum methods for agile iterations and release cadence.
Architectural Qualities
- Provide architectural leadership to our product team(s), in the form of delivering solutions that enable the products for large- scale data processing, high fault- tolerance, high availability, high scalability, low latency, and optimal performance to assure fulfilling the expectations of the business.
- Inculcate the DevSecOps culture into the architecture, development, and the operations processes, ensuring compliance with data protection regulations and safeguarding user data.
Continuous Architecture
- Identify system bottlenecks, design optimizations, and implement enhancements to continually improve the computing efficiencies of the products.
- Apply design changes and ensure compatibility of the assigned product(s) with the other products from diverse product lines across multiple platforms.
- Continuous Progression of our goals: technological convergence, simplification, consistency, scalability, availability, cost efficiency, qualitative customer experience and platform centricity.
Technology Conformance
- Ensure the coherence and alignment with the enterprise technology stacks, including the off- the- shelf products, and 3rd- party frameworks and libraries.
- Follow and / or tailor the technology prescriptions to enhance system capabilities.
Documentation
Adeptly utilize design review sessions to not only convey the architecture of solutions but also to meticulously produce comprehensive documentation. This includes crafting detailed design diagrams, maintaining logs of architectural decisions, and formulating clear guidelines for development teams. All documentation should be systematically organized and made accessible through tools like Confluence, ensuring that it serves as a robust reference and facilitates seamless development processes.
Mentorship
Work hands-on with the software engineers, the technical leads, and the delivery leads to assimilate the requirements, establish development best practices, and provide technical guidance throughout the development lifecycle.
Pursuit of Software Excellence
Engage with our software engineering teams to elevate coding standards through collaborate code reviews. Focus on the rectification of design inconsistencies, drive best practices: design-by-contract principles, OOD, and Event driven programming. A passion for detail and engineering expertise and the strongest desire to foster these passions our teams.
Qualifications
Education
Bachelors’ or Masters’ degree in Computer Science, Software Engineering, or a related field.
Certifications
Certified AWS Cloud Solutions Architect (Associate) will be highly preferred.
Experience
- Explainable credentials of software architecture experience around 7+ years, with a focus on designing, building, and maintaining complex, large-scale systems with intrinsic multi- tenant SaaS characteristics.
- Hands- on product architecture and design experience especially for handling architectural evolution and re- factoring of the brown- field software.
- Substantial experience with microservices, containerization, serverless, and cloud-native technologies.
- Cloud platforms specifically AWS and the cloud services namely EKS, API Gateway, Lambda, RDS, Aurora, S3, EFS, WAF, Route 53, Interface / Gateway Endpoints, and VPC.
- Reasonable experience of provisioning the infrastructure or working with the infrastructure teams employing Terraform
- Reasonable experience of deploying K8s- based workloads employing Helm, and DevOps using Concourse CI and JFrog Artifactory.
Skillsets
Proficiencies for at- least two of following technical tiers is required:
Presentation Tier
- Significant exposure and experience working with the React JS- based UI / UX.
- Comfort levels with the Single SPA meta- framework, UI Containers / Shell Apps, Webpack, and pluggable micro- frontends.
Business Tier
- Very strong experience developing the microservices with the Spring Boot.
- Significant experience building, assessing, consuming, and refining the REST and GraphQL preferably using Apollo.
Reporting Tier
- Highly significant experience working with commonly used Reporting / BI tooling.
- Exposure to working with reporting platforms, either in- house or off- the- shelf.
Highly Preferred
- Exposure to Data Engineering using Apache Spark and with the Data Pipelines using Apache Airflow.
- Familiarity with commonly used Data Analytics and Data Warehouse tooling, e.g., Snowflake warehouse.
Persistence Tier
- Strong experience working with JPA and Hibernate.
Data Tier
- Significant experience developing against PostgreSQL;
- Solid understanding of the data models for SQL and NOSQL Databases
Programming Languages
- Proficiency in Java required; Python is definite plus.
Personality
Problem-Solving
Strong analytical and problem-solving skills to address complex technical challenges.
Communication
Excellent communication skills to convey technical concepts effectively and collaborate with cross-functional teams.
Continuous Learning
Aptitude for learning technologies, frameworks, and libraries as necessitated by product dynamics.
Adaptability
Ability to thrive in a fast-paced, dynamic environment and adapt to evolving technologies and business needs.
Houghton Mifflin Harcourt (HMH) s'est engagé dans une politique d'égalité des chances en matière d'emploi et d'attirer, retenir, développer et promouvoir les employés les plus qualifiés sans tenir compte de la race, du sexe, de la couleur de peau, de la religion, de l'orientation sexuelle, du statut familial, de l'état civil, de la grossesse, de l’identité ou de l’expression de genre, de l'origine ethnique ou nationale, de l'ascendance, de l'âge, du handicap, des prédispositions génétiques et du statut de citoyen. Nous nous engageons à fournir un environnement de travail exempt de discrimination et de harcèlement, et où les employés sont traités avec respect et dignité.
Job Segment:
Publishing