Aperio

Full Stack Developer

Hybrid — Victoria, BC · Full-time, 40 hours per week · $30 per hour

About the role

You would be the engineer on a small team, working across the web app people see and the service behind it. Aperio is early, so the work is broad: you would build features from the database up to the page rather than pick up tickets in one layer.

What you would do

  • Build features end to end — the Next.js and TypeScript web app, the FastAPI service behind it, and the PostgreSQL schema underneath.
  • Own a change all the way through: schema migration, implementation, review, deploy, and whatever it does in production afterwards.
  • Keep the platform healthy — deployments, database migrations, backups, and the occasional production problem.
  • Work directly with whoever is writing the course content and turn what they need into product. On a team this size that is a conversation, not a ticket queue.
  • Write code the next person can read. We would rather have a straightforward solution than a clever one.

What we're looking for

  • At least 2 years of professional, full-time software development experience.
  • Comfortable on both sides of a web product: a modern React framework (we use Next.js with the App Router) and a Python web framework (we use FastAPI).
  • Solid with relational databases — schema design, SQL, and migrations. We use PostgreSQL with SQLAlchemy and Alembic.
  • You have taken something to production and kept it running, so you know how deployments, environment configuration, and failures actually behave.
  • Able to work independently on a small team — and to say so when you think something is a bad idea.
  • Legally entitled to work in Canada.

How to apply

Email your application to [email protected]. Both a resume and a cover letter are required — an application without them cannot be considered. Send the cover letter as a PDF attachment or written in the body of the email, whichever you prefer.

Please use the subject line Application — [Role] — [Your name] so we can find it.

We appreciate the time it takes to apply. Only candidates selected for an interview will be contacted.

If you need an accommodation at any point in the hiring process, say so in your email and we will arrange it.

← All open positions