04 Sep
|
Appnovation
|
Vancouver
04 Sep
Appnovation
Vancouver
Who you are
- 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 workplace-specific assumptions
- Comfortable working in a Git-based workflow with CI/CD and peer code review
- Must be located in British Columbia, Canada
- 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
- Hands-on Temporal experience, including workflow versioning and testing strategies
- Exposure to ClickHouse or another columnar/OLAP store for reporting workloads
- Familiarity with fine-grained authorization models (OpenFGA, Zanzibar-style ReBAC)
- 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 workplace
- 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
What the job involves
- 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
The application process
- Thank you for your interest in a career with Appnovation Technologies! Please note that only those selected for an interview will be contacted
📌 Backend Developer (Vancouver)
🏢 Appnovation
📍 Vancouver