Point your AI agent at freehire and let it find you a job.

Get the CLI →

Appnovation

NewBe an early applicant

Backend Developer (.NET)

Posted Updated
Discussion

Summary

Senior backend engineer building .NET Core REST APIs, Temporal workflows, and async worker/event services for a multi-tenant K-12 education SaaS platform, embedded in the client's engineering org. Core stack: C#/.NET, PostgreSQL, ClickHouse, Keycloak/OpenFGA, GitLab CI/CD.

  • 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
  • Developing and maintaining .NET Core REST APIs, including versioning, validation, error semantics, and Swagger/OpenAPI documentation
  • Implementing Temporal workflows and activities for long-running, multi-step business processes with correct retry and compensation behaviour
  • 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 reporting and analytics data paths 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
  • Strong command of .NET Core, ASP.NET Core Web API, and Entity Framework Core
  • At least 5-7 years of professional backend development experience with C# and .NET in production environments
  • Demonstrated experience building RESTful APIs consumed by real frontend or third-party clients
  • Must be located in British Columbia, Canada
  • Experience integrating with an identity provider using OAuth 2.0 and OpenID Connect
  • Comfortable working in a Git-based workflow with CI/CD and peer code review
  • Understanding of event-driven and pub/sub patterns, including at-least-once delivery and idempotent consumers
  • Practical experience with asynchronous processing - background workers, message queues, or scheduled jobs
  • Comfortable working inside an existing codebase and an established set of engineering standards, rather than setting your own
  • Understanding of what makes automated tests durable - avoiding hard-coded waits, brittle selectors, shared test state, and environment-specific assumptions
  • Solid relational data modelling and SQL skills in PostgreSQL or an equivalent RDBMS, including query performance tuning
  • Working understanding of async/await in .NET and the failure modes that come with it
  • Disciplined approach to automated testing across unit, integration, and API layers
  • Languages/Frameworks: C#, .NET Core, ASP.NET Core, Entity Framework Core
  • Databases: PostgreSQL, ClickHouse, EF Core migrations, query optimization
  • Testing: xUnit/NUnit, Moq, Testcontainers, unit, integration and API testing, Playwright end-to-end testing
  • Identity and Authorization: Keycloak, OpenFGA, OAuth 2.0, OpenID Connect, role- and policy-based authorization
  • Workflow and Async: Temporal workflows, worker services, asynchronous processing, event-driven pub/sub, integration services
  • APIs: REST, OpenAPI/Swagger, API versioning
  • Build/Deploy/Tooling: GitLab, GitLab CI/CD, CodeRabbit automated code review, Docker, Jira, Confluence
  • 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
  • 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
  • Hands-on Temporal experience, including workflow versioning and testing strategies
  • Exposure to ClickHouse or another columnar/OLAP store for reporting workloads
  • Working knowledge of TypeScript and React, enough to trace an issue across the stack
  • Familiarity with fine-grained authorization models (OpenFGA, Zanzibar-style ReBAC)
  • Familiarity with Domain-Driven Design and CQRS patterns
  • Experience with distributed tracing and structured observability (OpenTelemetry)
  • 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
  • Thank you for your interest in a career with Appnovation Technologies! Please note that only those selected for an interview will be contacted

Skills

Apply

See also

Backend jobs by country — openings, pay and top skills →

Tailor your CV for this role?

We couldn't check your fit for this role — add a CV to your profile to see it next time.