- Location
- Regina, SK
- Type
- Full-time
- Department
- Engineering
- Seniority
- Senior
- Closing date
- Today
- Source
- ApplyToJob
Description
What We do:
iQmetrix is a global provider of Interconnected Commerce software solutions for telecom retail. Interconnected Commerce is an AI-native telecom commerce platform that acts as a system of intelligence. It replaces fragmented legacy stacks with a modern, modular operating layer, connecting telcos, retailers, and OEMs into one flow across channels and markets. The result is less complexity, lower cost, and the speed to move ahead.
For 26 years, we’ve been passionate about helping the leading brands in telecom to grow by providing best-in-class software, services, and expertise that enables them to adapt and thrive. Our solutions power $17BN in sales annually, handling nearly 53 million invoices and more than 28 million activations, and are used by more than 370,000 telecom retail professionals across almost 1,000 clients. iQmetrix is a privately held software-as-a-service (SaaS) company with employees in Canada, the U.S., India, and Europe. For more information, please visit www.iqmetrix.com.
About the Role
We are hiring a Principal Engineer, Architecture. This is a senior individual contributor role for someone who is still happiest with their hands on the keyboard, and who thinks in systems while they build.
iQmetrix runs a large, long-lived platform: a retail management system that stores have depended on for years, a next-generation POS and commerce surface, an extension platform our partners build on, and a wide network of services underneath all of it. Keeping that coherent while it changes underneath us is real engineering work, not a diagramming exercise. It needs someone close enough to the code to see where the seams are pulling apart, and willing to do something about it.
You will work as a peer alongside our existing architects, sharing responsibility for stewarding technical direction across our solutions rather than dividing the org into territories. Architectural ownership at iQmetrix is distributed: teams own the decisions in their domain, write them down as ADRs, and bring them to our weekly architecture advisory forum for challenge and feedback. This role exists to improve how those decisions get made, recorded, and connected across teams — not to make them on everyone's behalf.
How the Role Works
This is a role defined by contribution and influence rather than authority. You will spend your time close to the work: writing code, reviewing designs, pairing with teams on the decisions in front of them, and connecting problems that turn out to be the same problem in three different places.
The expectation is depth. You will go deep with a team or on a problem for a stretch at a time, long enough to be genuinely useful, rather than maintaining a thin presence everywhere at once. Where you focus is a conversation you will have regularly with your lead and with engineering leadership.
- You write code that ships. Not only reference implementations and prototypes — production work in real repositories, reviewed like anyone else's. Credibility in this role comes from having built the thing.
- You are accountable for architectural quality across the platform, and you support the teams who are accountable for delivering it.
- You work up and down the stack. Some of this work is deep in a service or an event pipeline; some of it is a customer's security review or an integration question raised by a delivery team.
What You'll Work On
The systems you will spend your time in:
- Luna — our next-generation POS: a Flutter application backed by an in-house design system and code generators it is built from.
- Luna.API — the .NET event-sourced backend behind it, built on Cosmos DB with bounded contexts for orders, tender, payments, repair, and cash management, and a layered architecture enforced in CI.
- Hub — our back-office solution, built in React and TypeScript, where customers run the operational side of their business.
- The module platform — independently owned modules, written by our teams and by external ones, uploaded to a registry, assigned by company and location, and executed at runtime inside a module engine against a versioned TypeScript SDK. We have committed to backwards compatibility across major SDK versions for authors we do not control, and the system is now being scaled across more domains and more solutions. If contract design is your thing, this is the deep end.
- The established service estate — SSO, Entities, CRM, Catalogs and their peers. Newer than RQ, but with years of accumulated dependencies, their own aging assumptions, and real questions about where each one is headed.
- RQ — the retail management system a large part of our customer base still runs their business on. Moving off it well is one of the more consequential architectural problems in front of us: what the target state is for each capability, how the two worlds coexist while customers move, and how data migrates without loss. It deserves the same design rigour as anything net new.
What You'll Be Doing
Architecture, distributed
- Help teams make and document good architectural decisions in their own domains — pairing on the design, testing the tradeoffs, and improving the ADR rather than authoring all of them yourself.
- Be a strong contributor at our weekly architecture advisory forum, where leads bring their ADRs for feedback. Your role there is to make the proposal sharper and the discussion better, not to hand down a verdict.
- Keep our decision record connected. We have a substantial body of ADRs spread across many repositories; a good deal of the value in this role is making sure the relevant prior decision surfaces at the moment a team needs it, rather than the same problem being solved from scratch in three places.
- Identify the cross-cutting concerns early — the ones that sit between teams and are therefore easy to leave unowned: contract and versioning conventions, identity and permissions, tenancy and data isolation, observability, and migration sequencing.
- Bring options and evidence to genuinely contentious decisions and help the group converge. Where the answer is not yet knowable, run the spike and write it up — our spikes are first-class documents that the ADRs they inform are built on.
- Raise the standard of our design reviews: better questions, clearer writing, and less ceremony.
Hands-on engineering
- Embed with a team or a project for a period at a time, carrying real work and leaving the codebase and the team better than you found them.
- Build the reference implementation for a new architectural pattern, then stay with it — the first teams to adopt it will find the rough edges, and smoothing those down is part of the job.
- Take on the difficult diagnostic work: performance, data integrity, cross-service failures, and the issues that span several teams without clearly belonging to any of them.
- Do the prototyping and research that de-risks a direction before we commit a roadmap to it, and write up what you learned either way.
Working across teams
- Partner with engineering leaders, product, and other senior engineers on sequencing — what has to be true before the next thing is possible, and what can responsibly wait.
- Work with delivery teams and, where it helps, directly with customers and integration partners on deployment architecture, security, integration design, and performance.
- Make sure the constraints that only surface in real customer environments — scale, store hardware, data handling, regional and regulatory variation — reach the teams designing for them. We already run multi-region, and the consistency and latency tradeoffs that come with it are decided rather than assumed.
- Help other engineers develop as architectural thinkers. Over time, the strongest signal of success in this role is the quality of the decisions being made around you.
What We're Looking For
The profile we have in mind is a senior or staff-level engineer with an architectural bent — someone who has consistently operated well beyond their own codebase without stepping away from it. Depth and judgment matter here considerably more than a specific title history or number of years.
- Substantial experience building and running production software, including time at a senior, staff, or principal level of responsibility.
- A track record of owning work end to end, from design through shipped and operated production code.
- Real depth in more than one layer of the stack — backend services and their failure modes, data modelling and persistence, web or mobile client architecture, cloud infrastructure and delivery pipelines. Strength in several of these and working fluency in the rest.
- Comfort with systems that are modelled rather than merely built: event-driven or event-sourced designs, explicit domain modelling, and codebases where the architecture is enforced rather than assumed. You do not need our exact stack, but you should recognise why a team would choose to work this way.
- Experience with versioned contracts between parties who ship on their own schedule — public APIs, SDKs, plugin or extension platforms. You have had to evolve an interface without breaking the people depending on it.
- Familiarity with distributed data and its tradeoffs: replication, consistency levels, event ordering and versioning, and the reasoning about failure that goes with running in more than one region.
- Experience with a large, long-lived system carrying legacy that cannot simply be removed: incremental migration, coexistence, and deprecation with real customers attached.
- Strong technical writing. Design docs, ADRs, and RFCs that other engineers can build from without needing a meeting.
- Practical fluency with AI-assisted engineering — tools such as Claude Code, Cowork, and Copilot as part of how you actually work, along with the harnesses and evaluation loops that make them dependable. We are interested in leverage and quality, not volume.
- Effective across time zones. We are primarily distributed across Canada, with teams in India and elsewhere.
Nice to Have
- Retail, point-of-sale, or omnichannel commerce experience, particularly where stores, inventory, and fulfilment all have to agree — and where the software runs on real hardware in a busy shop.
- Telecom retail specifically: activations, carrier integrations, and device and plan catalog complexity.
- Having built or run an extension, plugin, or partner platform where third parties ship against your contract.
- Payments and the compliance posture that comes with them: PCI scope, tokenization, terminal integrations, SOC 2.
- Multi-tenant SaaS at scale: tenancy models, isolation, and per-customer configuration without per-customer forks.
- Having taken a major product through end-of-life or replatform with customers migrating throughout.
Tech You'll Work With
Today, across current and legacy systems:
- Services: .NET and C#, event-sourced domain models, functional error handling, source generators, and architecture rules enforced by tests
- Web: React and TypeScript across Hub and our other web surfaces
- POS client: Flutter and Dart, built on iq_flutter, our in-house design system and code generators, with TypeScript for the Storefront module SDK and module front ends
- Data and messaging: Azure Cosmos DB as event store and change feed, Service Bus, Event Hub, Blob Storage, and SQL Server across the older estate
- Cloud and delivery: Azure, Terraform, Kubernetes, Azure DevOps pipelines, GitHub
- Operations: Honeycomb, OpenAPI, structured tracing
- AI-assisted development: Claude Code, Cowork, Copilot
Where we're going:
- A broader and more capable module ecosystem, with the contract discipline to support it
- Agentic capabilities in the product, and the evaluation harnesses that let us trust them
- Deeper use of our data and prediction capabilities in customer-facing decisions
- AI-native engineering workflow as a default rather than an experiment
- Consolidation of the platform as RQ capabilities find their target home
You will not have worked with all of this, and we are not expecting that. We are looking for someone who can become productive in an unfamiliar part of it quickly, and who is candid about what they do not know yet.
What We Offer:
- Begin your journey with a competitive starting salary!
- Enjoy peace of mind with a comprehensive benefits package for you and your entire family.
- Embrace work-life harmony with a flexible hybrid working environment, generous vacation and trusted sick leave program.
- Invest in your future with our RRSP/401K/PF and Share Ownership plans. What's even better? We offer a match program!
- We care about your family, offering maternity, adoption, and paternity leave salary top ups as well as ten “New Baby Days” for all parents welcoming a new child into their life.
- Enjoy a “Cultural Day” off annually to celebrate a day of religious or cultural significance.
- Give back with up to 6 days of paid time off annually for volunteering or personal learning.
- We believe in the value of taking time to refresh, re-energize, and reflect on your career journey. Employees are granted a seven-week sabbatical after every seven years of employment!
What is an iQer?
An iQer is a term, used daily across all iQmetrix locations, is someone who works for iQmetrix. Sounds simple, but there’s more to being an iQer than meets the eye!
If you’re an iQer, you approach problems with humility and an open mind. You’re a go-getter who doesn’t wait around to be told what do to. Whether it’s on your own or with a team, you aren’t afraid to try new things, fail, succeed, and improve along the way. Your team, the company, and the well-being of others come before your personal agenda—you’re an ally to your colleagues and the community.
The world changes fast and, as an iQer, you’re ready to adapt. You recognize diversity in the world, listen to others, and consider all perspectives.
Want to Join the Team?
If you’re interested in a career with iQmetrix, please submit your resume and cover letter. We are an equal opportunity employer. We do not discriminate based on race, faith, colour, cultural background, gender, sexual orientation, age, marital status, or disability status. We thank all applicants for their interest, however, only those selected for an interview will be contacted.
We are a hybrid work environment, remote and in-office for all employees in an office city.
You can view our job applicant privacy policy here.