Principal Software Engineer
- Toronto, ON, Canada
Full-time
Applications open in a new tab.
Job details
- Job type
- Full-time
- Posting language
- English
- Posted
Original job description
About Us
The Ontario Cannabis Store provides safe, responsible access to recreational cannabis for adults 19 and older. We operate the sole legal online store for recreational cannabis in Ontario and are the provincial wholesaler of cannabis for private retail stores.
Working at the OCS is a unique opportunity to be part of an agile start-up in a ground-breaking new industry. We’re a diverse team passionate about delivering a great customer experience, working together with mutual respect and building value out of our differences. We’re an inclusive organization that understands that delivering great results comes out of ensuring every voice is heard.
About the Role
We’re looking for a Principal Software Engineer to join our team!
The Principal Software Engineer is a senior member of the IT Development team and serves as the hands-on technical leader for Microsoft Dynamics 365 Finance and Operations and its enterprise integrations. This role provides senior technical expertise and recommendations, contributes engineering input to technology strategy, and develops and maintains engineering standards aligned with approved architectural direction.
The Principal Software Engineer translates business outcomes into secure, scalable, and supportable technical solutions; leads complex design and development; reviews critical code and detailed application designs; resolves high-impact problems; and mentors Software Engineers and Senior Software Engineers. Working across Development, Architecture, QA, DevOps, Security, business teams, and delivery partners, the role guides engineering execution from discovery and detailed design through implementation, release, and operational support.
About Your Day
- Provide multi-system engineering expertise and recommendations, ensuring solutions align with IT strategy, approved enterprise architecture, and industry best practices.
- Develop and apply approved engineering frameworks, reference patterns, implementation standards, and detailed technical documentation.
- Evaluate implementation options based on business value, scalability, security, reliability, maintainability, observability, delivery risk, and total cost.
- Provide engineering recommendations and communicate implementation impacts for cross-domain technical decisions through architectural governance.
- Design and develop production-grade Microsoft Dynamics 365 Finance and Operations solutions using X++, extensibility patterns, data entities, custom services, business events, Data Management Framework, and batch processing.
- Design end-to-end integrations, including APIs, events, messaging, data transformations, exception handling, and reconciliation.
- Lead complex proofs of concept and translate validated findings into governed, supportable production solutions.
- Review critical code and designs for correctness, maintainability, performance, security, testability, and alignment with standards.
- Design custom applications or components where suitable commercial solutions do not exist and guide the configuration of SaaS and commercial off-the-shelf platforms.
- Ensure adherence to programming, documentation, testing, and peer-review standards.
- Implement and promote approved real-time, event-driven, asynchronous, and batch integration patterns across ERP and connected platforms.
- Recommend and implement integration technologies, including APIs, Azure Logic Apps, Azure Functions, Azure Service Bus, Power Automate, Dataverse, Microsoft Fabric, Azure Synapse, data pipelines, and platform-native capabilities.
- Develop and apply engineering standards for idempotency, retry, replay, dead-letter handling, data validation, reconciliation, versioning, and dependency management.
- Lead engineering implementation of refactoring and migration initiatives aligned with approved modernisation roadmaps.
- Assess emerging technologies through proofs of concept and provide evidence-based recommendations for architecture review.
- Partner with developers and testing specialists to validate technical and business outcomes and advance automated unit, integration, contract, and regression testing, including test-driven development where appropriate.
- Strengthen source control, branching, build, package, and deployment practices across development, QA, UAT, and production environments.
- Embed secure coding, least privilege, identity, secrets management, encryption, auditability, and dependency controls throughout the development lifecycle.
- Establish performance baselines, identify X++, SQL Server, database, query, integration, and end-to-end bottlenecks, and validate optimizations through controlled testing.
- Define logging, telemetry, alerting, rollback, and post-deployment validation requirements for production readiness.
- Serve as the technical SME and escalation point for complex incidents, defects, and production risks, leading root-cause analysis and sustainable corrective actions.
- Prioritize urgent, high-impact issues while protecting data integrity, service continuity, and business outcomes.
- Work with vendors and platform partners on complex issues while ensuring knowledge is retained internally.
- Translate recurring operational issues into engineering backlog items, preventive controls, or architectural improvements.
- Mentor Software Engineers, Senior Software Engineers, and co-op students through design reviews, pairing, workshops, and feedback, with a focus on Java, X++, SQL, integrations, performance engineering, and computer science fundamentals.
- Foster respectful, evidence-based technical challenge and support decision-making where stakeholders have competing views.
- Maintain accurate, current, and usable technical documentation and knowledge-transfer materials.
About You
- Post-secondary education in Computer Science, Information Technology, Software Engineering, or a related field, or an equivalent combination of education and relevant experience.
- 10+ years of progressive software engineering experience, including significant hands-on experience developing and supporting Microsoft Dynamics AX or Dynamics 365 Finance and Operations solutions using X++.
- Demonstrated experience as a senior technical lead for complex, business-critical enterprise applications, including leading engineering initiatives, establishing implementation standards, and mentoring engineers.
- Significant experience in systems integration, application development, and enterprise solution design.
- Advanced experience designing, developing, reviewing, troubleshooting, and optimizing integrations, application code, X++ solutions, and SQL Server workloads.
- Significant experience designing and supporting integrations using APIs, messaging technologies, data exchange services, and enterprise integration platforms, including Java and JavaScript-based solutions.
- Experience with Azure integration and application services, including Azure Logic Apps, Azure Functions, Azure Service Bus, or comparable platforms.
- Experience partnering with Architecture, QA, Security, DevOps, business stakeholders, and vendors in an Agile delivery environment.
- Expert knowledge of Dynamics 365 Finance and Operations architecture, data models, integration capabilities, and related business processes.
- Advanced software engineering knowledge, including system design, application performance, database design, concurrency, security, scalability, and software quality practices, with hands-on proficiency in Java and JavaScript.
- Deep knowledge of SQL Server, including indexes, execution plans, query optimization, locking, blocking, concurrency, and performance tuning.
- Strong knowledge of API design and distributed-system concepts, including failure modes, idempotency, retries, replay, dead-letter handling, reconciliation, and operational monitoring.
- Working knowledge of Power Platform governance, environment management, Power Automate, Dataverse, and the Power Platform admin center.
- Ability to create detailed application design diagrams, interface specifications, technical documentation, estimates, and implementation plans aligned with approved architecture.
- Strong teamwork, interpersonal, written, and verbal communication skills, with the ability to collaborate across functions and influence without formal authority.
- Relevant Microsoft Dynamics 365 or Azure certifications are preferred.
- Experience with Kafka or comparable enterprise messaging technologies is preferred.
- Experience integrating with Power Apps, Java/Spring Boot services, Shopify, or digital commerce platforms is an asset.
- Experience modernizing legacy or tightly coupled ERP integrations is an asset.
- Experience in retail, supply chain, inventory, warehousing, procurement, order management, or B2B systems is preferred.
- Additional education or training in retail, supply chain, order management, enterprise applications, or systems integration is an asset.
- Experience delivering large, business-critical applications while managing competing priorities and dependencies is preferred.
- Highly developed collaboration, negotiation, and change-leadership skills across multiple groups are preferred.
- A pragmatic approach to emerging technologies and AI-assisted development, including appropriate review, security, and quality controls, is preferred.
- Ability to coach engineers in X++, SQL, integration design, performance engineering, and systematic problem-solving is an asset.
About the Job
- Location: Toronto, ON near York Mills and Yonge Street
- Hours of Work: 36.25 a week
- Employment Type: Full-Time, Permanent
- Required Travel: Rare, usually within the GTA
Compensation
The target hiring range for this position is $130,000 - $145,000. This is a pay grade 8 role, with a salary range of $94,694.96 - $147,126.98. Placement in the salary range will be based on factors such as market conditions, internal equity, and candidate experience, skills, and qualifications relevant to the role.
We are committed to providing an accessible, equitable and inclusive candidate and employee experience. We provide reasonable accommodation throughout the recruitment process and in employment. If you require an accommodation please let us know, we will work with you to meet your needs.
More about this job
Responsibilities
The Principal Software Engineer serves as the hands-on technical leader for Microsoft Dynamics 365 Finance and Operations, overseeing enterprise integrations and engineering standards. This role involves designing scalable technical solutions, mentoring engineering staff, and ensuring alignment with IT strategy and architectural governance.
Requirements
Candidates must have 10+ years of progressive software engineering experience with significant expertise in Microsoft Dynamics 365 Finance and Operations and X++. A post-secondary degree in a relevant field and strong proficiency in systems integration, SQL, and cloud-based application services are required.
Skills
- Microsoft Dynamics 365 Finance and Operations
- X++
- SQL Server
- Systems Integration
- Azure Logic Apps
- Azure Functions
- API Design
- Enterprise Architecture
- Software Engineering
- Java
- JavaScript
- Data Modeling
- Performance Tuning
- Cloud Computing
- Agile Methodology
- Mentorship
Visa sponsorship
Not detected in the job text
Categories
- Software
- Technology
- Engineering
- Management & Leadership
Keywords
- Microsoft Dynamics 365
- X++
- SQL Server
- Azure
- API
- Enterprise Integration
- Software Engineering
- Java
- JavaScript
- Dataverse
- Power Platform
- Azure Logic Apps
- Azure Functions
- Azure Service Bus
- Microsoft Fabric
- Azure Synapse
- Agile
- DevOps
- System Architecture
- Performance Engineering
- Cloud Services
- ERP
- Data Management Framework
- Messaging Technologies
- Distributed Systems
- Technical Leadership
- Mentorship
- Security
- Scalability
- Telemetry