What's the NOC code for a software engineer?

Short answer: NOC 21231 or NOC 21232 — and the wrong choice can refuse your PR. Both are TEER 1 and STEM-eligible, but they cover different work.

Knowing your NOC code is only half the equation. IRCC doesn't ask what your code is — they ask whether your reference letter duties prove it. Most refusals at the eligibility stage aren't wrong NOC codes, they're correct codes (like 21231 for software engineers) with reference letters that don't back them up.

A NOC code that doesn't match your actual duties isn't just a paperwork issue — IRCC can treat it as misrepresentation, which carries consequences that go well beyond a single refused application.

Confirming your NOC code before you submit is a lot cheaper than correcting it after.

Educational information only, not legal advice. Consequences vary based on individual circumstances.

Real example: A Software Engineer applicant claimed NOC 21231 but their reference letter described ticket triage and QA regression runs, none of the software-design duties NOC 21231 requires. Refused at the eligibility stage.

The 30-second answer

If you design systems
NOC 21231
Software engineers and designers · TEER 1
If you mostly write code
NOC 21232
Software developers and programmers · TEER 1

How IRCC actually decides

An IRCC officer reads the duties on your reference letter, ignores your job title, and matches the verbs and activities against the official NOC main duties. Phrases like "designed and architected," "developed logical and physical specifications," "led a team of" push toward NOC 21231. Phrases like"wrote modules," "fixed bugs," "implemented features per spec" push toward NOC 21232.

Title-to-NOC quick map

  • Software Engineer / Senior Software Engineer: Usually NOC 21231 if you own system design; otherwise NOC 21232.
  • Staff / Principal / Distinguished Engineer: Almost always NOC 21231.
  • Backend / Frontend / Full-Stack Developer: Usually NOC 21232. NOC 21234 if frontend with design ownership.
  • Tech Lead / Engineering Manager: NOC 21231 if hands-on architecture, otherwise NOC 20012 (Computer and information systems managers).
  • Member of Technical Staff (MTS): NOC 21231 — the title is meaningless internally but the duties usually fit.

Don't guess — score it

The cost of getting this wrong is a refused PR application and a lost $1,365+ fee. Paste your reference letter duties and we'll score them against both 21231 and 21232 in under 30 seconds, so you can submit with the right code.

What IRCC actually checks

What surprises most applicants: IRCC officers compare your reference letter duty lines word-by-word against the official NOC duty list. Generic phrases like “managed projects” or “supported the team” fail this check every time.

IRCC refused 23% of Express Entry applicants at the eligibility stage. A $9.99 check is insurance against a $1,500+ mistake.

21231 vs 21232 decides if Tech draws apply to you

Software Engineer or Web Developer? Score your duties against both codes side by side — a 70%+ match on the wrong code is still a refusal.

Check My NOC

FAQ

What is the NOC code for a software engineer?
Most software engineers fall under NOC 21231 (Software engineers and designers, TEER 1). People whose primary work is writing code from a spec are usually NOC 21232 (Software developers and programmers, TEER 1). Both are eligible for the Express Entry STEM category-based draws.
Is 'Software Engineer' always NOC 21231?
No. IRCC ignores job titles and reads your duties. If your day-to-day is mostly coding under someone else's design, NOC 21232 is the safer claim. If you architect systems, design specs, or lead engineering teams, NOC 21231 fits.
What about senior engineers, staff engineers, principal engineers?
These titles all map to NOC 21231 if the duties involve system architecture, technical leadership, and design ownership. The seniority in title does not change the NOC; the duties do.
Which NOC for ML / data / DevOps engineers?
ML engineers usually fit NOC 21211 (Data scientists). Data engineers typically map to NOC 21223 (Database analysts and data administrators). DevOps and platform engineers map to NOC 22220 (Computer network and web technicians) for pure ops, or NOC 21231 if architecture-heavy.

Last updated: June 2026

Check my NOC →