Skip to content

Open nowPosted 69 days ago

Backend Developer (.NET)

Appnovation Technologies36 open roles

Where
Vancouver
Get the CV for this job

From $25 per CV, paid once. No subscription.

Your applicationOpen nowBackend Developer (.NET)Appnovation Technologies · Vancouver
  1. YouYes, apply to this one.

  2. CV RocketCV written for this posting.

  3. 25 readersRecruiter, hiring manager, skeptic. Round after round.

  4. CV RocketApplied on Appnovation Technologies's own form.

The reply lands in your private mailbox

3×more interviews than doing it yourself with ChatGPT.

The clock on this job

Early applications get read.

13.3% of postings close within 7 days. Measured by our own scanner across the market. Appnovation Technologies postings stay open a median of 30 days.

Share of postings closed within
  1. 2.1%1 day
  2. 4.6%3 days
  3. 13.3%7 days
  4. 21.3%14 days
  5. 35.7%30 days
  6. 59.1%60 days
This job: posted 69 days ago

Appnovation Technologies median: 30 days open

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.

From $25, paid onceGet the CV for this job

What happens when you press

One press. We do the rest.

  1. A CV for this posting

    Written against Appnovation Technologies's own wording, from every piece of relevant proof in your profile.

  2. 25 readers review it

    Recruiter, hiring manager, skeptic and more read every draft, round after round. You get the best round.

    The review screen in CV Rocket: how each CV was read, round by round.
  3. We apply on Appnovation Technologies's form

    Our application engine gets through the hardest forms there are. Where a question needs you, AI suggests the best answer. Don't want us applying from our IP addresses? Use our Chrome extension: we apply straight from your own browser.

    An application in CV Rocket: every answer filled in on the employer's form.
  4. Every reply, sorted

    Appnovation Technologies's answer lands in your private mailbox, and we classify it on arrival: interview, question, rejection.

    The CV Rocket inbox: each employer reply classified as an interview, an action or a rejection.
  5. Reply with AI

    AI helps you write the email, checks it and sends it. We show you whether the recruiter read it.

  6. The interview in your calendar

    Full integration with your calendar. The invitation goes straight in.

    An interview invitation in the CV Rocket inbox, added to the candidate's calendar.
Get the CV for this job

From $25 per CV, paid once. No subscription.

Why it works

3×

more interviews than doing it yourself with ChatGPT.

ChatGPT writes a CV and never learns what happened to it. We see every reply. For each CV we know:

  • How it was written, and how the review scored it
  • When we applied, and how long after the posting went up
  • Which posting, which company, which city
  • Who got the interview, and who heard nothing

That is how we know which CVs get called.

Get the CV for this job

From $25 per CV, paid once. No subscription.

The numbers game

More applications. More interviews.

Every application goes out with its own CV, written for that posting and paid once. Send enough of them and the law of large numbers finds you the job.

By hand5–10
With CV Rocket100
applications a day

Before you press

Straight answers

Get the CV for this job

From $25 per CV, paid once. No subscription.

What if my background isn't good enough?

We make the most of the background you have. The CV uses every piece of relevant proof your profile holds, and one of the 25 readers reads your whole profile and flags what the CV left out.

Do you really apply for me?

Yes, on the employer's own form, the hardest ones included. Where a question needs you, you answer it right there and AI suggests the best answer. Don't want us applying from our IP addresses? Use our Chrome extension: we apply straight from your own browser.

Is it a subscription?

No. You pay once per CV, from $25. Every application goes out with its own CV, written for that posting.

One job. One CV.
Paid once.

Pick the posting you want. We write for it, apply for you and catch the reply.

Get the CV for this job

From $25 per CV, paid once. No subscription.