hirly

Appnovation

Backend Developer (.NET)

Vancouver

See how you match this job — and similar ones. Free.

Upload your resume and hirly scores it against this role at Appnovation first, then against similar open jobs, and shows where you fit and why.

PDF or DOCX, up to 12MB. No sign-up to see your matches.

Get past the screening software and onto a recruiter's desk

hirly rewrites your resume for this job — matching the keywords and skills in the posting, moving your most relevant experience to the top, and writing a cover letter to fit. About 30 seconds.

  • Keywords matched to this posting
  • Fit score before you apply
  • Cover letter included
Tailor my resume for this job →

Apply from your AI assistant

Connect hirly to Claude and ask it to apply to this job. hirly tailors your resume, fills the employer’s form and asks before sending. ChatGPT: manual setup today.

Some employer sites stop an application at a CAPTCHA or sign-in and hand it back with a link. Applying needs a paid plan. Works with any assistant that supports MCP.

hirly's read of this role

Role family
Engineering
Seniority
Mid level
Country
CA
Work mode
Remote-friendly
First seen by hirly
3 Sept 2026

Derived automatically from the posting. Upload your resume above to see how the role scores against it.

the posting

About us

Appnovation is the AI Product Company. Headquartered in Vancouver, Canada, with teams around the world, Appnovation builds AI products, delivers enterprise AI and digital solutions, and co-invests with clients to bring new AI products to market.

Open source has been the foundation of Appnovation's work since 2007, and it remains the foundation underneath every AI product the company builds today. Appnovation teams work with organizations in highly regulated industries, including global leaders such as Pfizer, Google and AstraZeneca, to help them adopt AI they can govern and own.

As a Senior Software Engineer - Backend, you will build the .NET services that carry the core business logic of a modern operational SaaS platform for K-12 education. The platform automates administrative processes for school divisions, so the backend work is workflow-heavy and integration-heavy: you will develop REST APIs consumed by a Next.js frontend, implement durable multi-step business processes as Temporal workflows, build worker services for asynchronous and scheduled processing, and write the integration services that publish and consume events across system boundaries.

You will work as part of a dedicated, cross-functional scrum team that operates as an embedded extension of the client's engineering organization. The team includes business analysis and QA capability and owns assigned product services end-to-end - from refinement through development, testing, documentation, and release readiness. You will work directly in the client's repositories, follow their established architecture and engineering standards, and deliver in small, reviewable increments.

The data layer spans a PostgreSQL transactional model and a ClickHouse analytics store, with authorization enforced through Keycloak and OpenFGA - a real requirement in a multi-tenant product where an administrator in one school division must never see another's data. The platform is moving from pilot deployments toward general availability, so this is a role for a senior engineer who cares about correctness in distributed systems - idempotency, retries, and what happens when the third call fails - and who is ready to own significant slices of the platform with minimal supervision.

Key Responsibilities:

Developing and maintaining .NET Core REST APIs, including versioning, validation, error semantics, and Swagger/OpenAPI documentation

Building worker services for background, scheduled, and queue-driven asynchronous processing

Writing integration services that publish and consume events over pub/sub, against clearly defined message contracts

Modelling and querying relational data in PostgreSQL using Entity Framework Core, including migrations and query performance tuning

Building and maintaining API calls into ClickHouse

Enforcing authorization in application code against OpenFGA policies, and integrating with Keycloak for OAuth 2.0 / OpenID Connect authentication and SSO

Producing technical analysis and implementation plans for significant changes, and delivering work in small, reviewable merge requests

Writing unit, integration, and API tests, and contributing to the Playwright end-to-end suite where backend behaviour is under test

Participating in code review, responding to CodeRabbit findings, and keeping GitLab CI/CD pipelines green

Instrumenting services with logging, metrics, and tracing to support production diagnosis

Participating in refinement, planning, review, and retrospective as a member of a self-directed scrum team, and raising missing business decisions early

Taking ownership of feature areas end to end, from technical design through release and support

Maintaining technical implementation and API documentation as part of the definition of done, not after it

Resolving defects and supporting post-release stabilization of recently delivered functionality

Mentoring less experienced engineers through code review and pairing

What we are looking for

Must-Have:

At least 5-7 years of professional backend development experience with C# and .NET in production environments

Strong command of .NET Core, ASP.NET Core Web API, and Entity Framework Core

Demonstrated experience building RESTful APIs consumed by real frontend or third-party clients

Solid relational data modelling and SQL skills in PostgreSQL or an equivalent RDBMS, including query performance tuning

Practical experience with asynchronous processing - background workers, message queues, or scheduled jobs

Working understanding of async/await in .NET and the failure modes that come with it

Understanding of event-driven and pub/sub patterns, including at-least-once delivery and idempotent consumers

Experience integrating with an identity provider using OAuth 2.0 and OpenID Connect

Comfortable working inside an existing codebase and an established set of engineering standards, rather than setting your own

Disciplined approach to automated testing across unit, integration, and API layers

Understanding of what makes automated tests durable - avoiding hard-coded waits, brittle selectors, shared test state, and environment-specific assumptions

Comfortable working in a Git-based workflow with CI/CD and peer code review

Must be located in Vancouver, British Columbia, Canada

Technologies

Languages/Frameworks: C#, .NET Core, ASP.NET Core, Entity Framework Core

APIs: REST, OpenAPI/Swagger, API versioning

Workflow and Async: Temporal workflows, worker services, asynchronous processing, event-driven pub/sub, integration services

Databases: PostgreSQL, ClickHouse, EF Core migrations, query optimization

Identity and Authorization: Keycloak, OpenFGA, OAuth 2.0, OpenID Connect, role- and policy-based authorization

Testing: xUnit/NUnit, Moq, Testcontainers, unit, integration and API testing, Playwright end-to-end testing

Build/Deploy/Tooling: GitLab, GitLab CI/CD, CodeRabbit automated code review, Docker, Jira, Confluence

Nice-to-Have:

Exposure to ClickHouse or another columnar/OLAP store for reporting workloads

Familiarity with fine-grained authorization models (OpenFGA, Zanzibar-style ReBAC)

Hands-on Temporal experience, including workflow versioning and testing strategies

Working knowledge of TypeScript and React, enough to trace an issue across the stack

Experience with distributed tracing and structured observability (OpenTelemetry)

Familiarity with Domain-Driven Design and CQRS patterns

SaaS product delivery experience, particularly through a pilot-to-GA transition

Experience with Canadian public-sector or education data privacy requirements (PIPEDA, provincial FIPPA), including data residency considerations

Experience in a consulting or client-facing delivery environment

Who you are

You are a careful engineer who thinks about failure modes before writing the happy path, and who leaves code easier to change than you found it.

You ask questions early, communicate clearly when something is off track, and take testing seriously rather than treating it as a step after the work.

You treat a feature as incomplete until it is tested, documented, and supportable - finishing the code is the middle of the job, not the end.

Thank you for your interest in a career with Appnovation Technologies! Please note that only those selected for an interview will be contacted.

At Appnovation, we recognize that diverse teams are the strongest teams. Diversity, Equity & Inclusion is not only something that we embrace - we celebrate it! We are proud to be an Equal Opportunity Employer and we encourage applicants from all backgrounds, lived experiences and industries to apply. Come join us at Appnovation, and learn more about how we stay true to our company values as we build better lives through better digital.

Accommodations are available upon request throughout the recruitment process.

Original posting on Appnovation's site ↗

Listed on hirly, a job board. hirly is not the employer: Appnovation is hiring for this role.

Browse similar roles

Want this one?

Upload your resume and hirly rewrites it for this job and writes the cover letter — in about thirty seconds, before you sign up.

Tailor my resume for this job