Closed listing
Principal Software Architect /C++ MFC (onsite)
- Vancouver, BC, Canada
- Greater Vancouver, BC, Canada
$180,000 to $230,000 CAD / year · Full-time
This opening has closed.
The original listing is kept below for reference.
Job details
- Pay
- $180,000 to $230,000 CAD / year
- Job type
- Full-time
- Closing date
- Experience
- 15+ years of hands-on software development experience, including 5+ years in an architecture/technical-lead role
- Posting language
- English
- Posted
Similar jobs hiring now
Search current openingsOriginal job description
Archived listing. The details below describe a past opening.
100% onsite position in Burnaby.
Key Responsibilities
1. Software Design Defect Analysis & Resolution
- Identify architectural anti-patterns in existing codebases and perform root-cause analysis
- Trace root causes of hard-to-reproduce defects such as performance degradation, memory leaks, and concurrency bugs (race conditions, deadlocks)
- Quantify technical debt in legacy systems and build a risk-prioritized improvement roadmap
- Propose actionable redesign solutions - including backward-compatibility and migration strategy - rather than purely theoretical proposal
2. Design & Management of Software Stability Assurance System
- Develop in-house static-analysis diagnostic rules and integrate them into the CI pipeline
- Design tiered severity quality gates and enforce them in the build process
- Design suppression/waiver governance policy - format validation, deadline management, and automatic severity escalation upon deadline expiration
- Establish system-level quality standards for memory safety, exception-handling consistency, and resource-disposal pattern
- Establish post-mortem processes based on log/dump analysis following incident
3. Technical Problem Analysis, Design & Management
- Break down cross-team technical challenges, define design direction, and manage assigned engineers' progress
- Operate code/design review processes and give final approval on technical decision
- Maintain technical documentation systems such as Architecture Decision Records (ADRs)
- Report technical risks and progress status to executives and other department
Required Qualification
Education
- Bachelor's degree (BS) or higher in Computer Science, Software Engineering, or a related field - require
- Master's degree (MS), Ph.D. - preferred
Experience
- 15+ years of hands-on software development experience, including 5+ years in an architecture/technical-lead role
- 3+ years managing an engineering team (team size of 5 or more
- Experience leading technical evaluation
Programming Languages & Technology Stack
- C#: Expert-level with .NET (Framework/Core/5+), asynchronous programming (async/await, Task), LINQ, and memory management (including GC tuning
- C++: Hands-on experience with modern C++ (11 and later), RAII, smart pointers, and template metaprogramming
- Interoperability experience between the two languages (P/Invoke, C++/CLI, etc.) - preferred
System-Level Understanding
- File I/O: File-system structure, buffering/caching strategies, performance characteristics of large-file processing, file locking and concurrent-access control
- Database (covering RDB / NoSQL / File-based DB): Understanding of internal behavior, consistency models, and integration with query engine
- OS: Process/thread models, memory management, kernel/user-mode transitions, and platform differences between Windows and Linux
Quality & Design Competence
- Experience developing or customizing static-analysis tool
- Deep understanding and practical application of design and architecture patterns (Layered, Hexagonal, Event-Driven, etc.)
- Experience designing CI/CD pipelines and building quality gate
- Experience automating test design/structuring - distinct from test-execution automation - including identifying test targets, generating test scaffolding, and managing coverage
- Experience identifying technical debt through code review and formulating refactoring strategy
Communication
- Business-level English (capable of documentation, video conference, and technical discussion
- Ability to explain technical content to non-technical stakeholder
Preferred Qualification
- Domain experience in industrial automation, Manufacturing Execution Systems (MES), semiconductor/electronics equipment, or robotic
- Experience leading gradual migration/modernization projects for large-scale legacy system
- Experience using and driving team adoption of AI coding assistants (Claude Code, GitHub Copilot, etc.)
- Contributions to open-source static-analysis tools, or experience distributing internally developed tooling
- Experience working with multinational team
- Experience designing large-scale data pipelines (ETL/ELT, hybrid batch + streaming)
More about this job
Responsibilities
The role involves identifying architectural anti-patterns, resolving complex defects, and managing technical debt in legacy systems. Additionally, the architect will design stability assurance systems, enforce quality gates, and provide technical leadership across engineering teams.
Requirements
Candidates must have 15+ years of software development experience with expert-level proficiency in C# and modern C++. A bachelor's degree in Computer Science or a related field is required, with a master's degree or Ph.D. preferred.
Skills
- C++
- C#
- .NET
- Software Architecture
- Static Analysis
- CI/CD
- Memory Management
- Concurrency
- Technical Leadership
- Refactoring
- System Design
- Performance Optimization
- Debugging
- Architecture Decision Records
- Legacy System Migration
- Quality Assurance
Visa sponsorship
Not detected in the job text
Categories
- Technology
- Software
- Engineering
- Management & Leadership
- Manufacturing
Keywords
- C++
- C#
- .NET
- Software Architecture
- Static Analysis
- CI/CD
- Memory Management
- Concurrency
- Technical Debt
- Legacy Systems
- RAII
- Smart Pointers
- Template Metaprogramming
- P/Invoke
- C++/CLI
- File I/O
- Database
- Architecture Decision Records
- Industrial Automation
- Manufacturing Execution Systems
- Robotics
- Refactoring
- Quality Gates
- Performance Degradation
- Race Conditions
- Deadlocks
- Windows
- Linux
- AI Coding Assistants
- Engineering Management