Programmer Analyst I

University of British ColumbiaVancouver, BC
CA$6,950 - CA$9,993Onsite

About The Position

The Programmer Analyst I supports the Learning Technology Hub with the design, development, and support of learning technology solutions for campus-wide teaching & learning activities. The Programmer Analyst I focuses on smaller software modules and system-to-system integrations as well as contributing to larger software systems available throughout the university. This role contributes to AI-powered and data-driven learning-technology solutions — including building platforms and shared services that other teams and developers build on, as well as retrieval-augmented generation (RAG) chatbots and conversational assistants, agentic AI tools and workflows, cloud-hosted services, and data pipelines and analytics — in support of UBC’s role in the responsible use of Artificial Intelligence in education. We are looking for a curious, self-directed developer who takes initiative, learns new tools quickly, and is comfortable working at the frontier of rapidly evolving AI technology.

Requirements

  • Undergraduate degree in a relevant discipline.
  • Minimum of three years of related experience, or the equivalent combination of education and experience.
  • Willingness to respect diverse perspectives, including perspectives in conflict with one’s own
  • Demonstrates a commitment to enhancing one’s own awareness, knowledge, and skills related to equity, diversity, and inclusion
  • Cloud computing — building, deploying, and managing solutions using cloud-managed services (e.g. AWS, Azure, GCP) and containerized applications (Docker, Kubernetes).
  • Data lake / data analytics infrastructure — building data pipelines (ETL/ELT), integrating datasets from multiple sources, and producing analytics-ready datasets; working with relational databases, including data cleaning and analyzing complex data structures.
  • AI / ML — applying Generative AI and Large Language Models, with specific interest in retrieval-augmented generation (RAG), chatbots / conversational assistants, agentic AI tools and workflows, building or consuming APIs for RAG, and the Model Context Protocol (MCP).
  • Data governance — implementing access controls and row-level security (RLS), and applying data privacy/security practices.

Nice To Haves

  • Experience with AWS and its managed services (e.g. Lambda, ECS/EKS, S3, RDS), including deploying and operating cloud-hosted solutions. AWS is the primary environment for our platforms and services.
  • Experience with full-stack development.
  • Experience with Python and/or TypeScript. We are otherwise fairly language-agnostic and like to see experience across other languages (e.g. Rust).
  • Experience with version control (Git) and CI/CD pipelines.
  • Fluency with modern development approaches, including the use of AI.
  • A curious, self-starting disposition — proactively explores new tools, builds prototypes and proofs of concept, and is comfortable with the ambiguity of emerging technology.
  • Effective problem-solving skills.
  • Excellent written and verbal communication skills.
  • Hands-on experience across more than one of the four focus areas listed under Required Qualifications.
  • Experience in a mixed software development and software maintenance role.
  • Experience building integrations with SAML, LTI, and APIs.
  • Experience with CI/CD tools (e.g. GitHub Actions, AWS CodePipeline).
  • Demonstrated ability to explain complex concepts in layman’s language.

Responsibilities

  • Programs solutions based on core teaching and learning applications; advises programmers developing faculty and/or department specific modules; advises through face-to-face interaction, virtual, phone and email/ticketing system.
  • Manages projects to implement learning technology solutions in cloud environments.
  • Builds and maintains platforms and shared services — reusable infrastructure, developer tooling, and self-service capabilities — that enable teams across UBC to build and deploy learning technology solutions.
  • Builds and integrates APIs and services, including APIs that power retrieval-augmented generation (RAG), chatbots and conversational assistants, and Model Context Protocol (MCP) tools/servers, to extend UBC’s teaching and learning ecosystem.
  • Designs and builds agentic AI tools and workflows and adopts AI-assisted development tooling to accelerate delivery, applying the responsible use of Generative AI and Large Language Models.
  • Contributes to data pipelines and data-lake / analytics infrastructure — ingestion, ETL/ELT, and producing analytics-ready datasets that support reporting and AI/ML use cases.
  • Implements data-governance controls, including row-level security (RLS) and access controls, consistent with University privacy and security policy.
  • Evaluates functional requirements and system features of UBC’s enterprise teaching and learning platforms.
  • Designs solutions to extend system capabilities and develop integrations for tools into UBC’s teaching and learning ecosystem.
  • Provides technical guidance to developers’ community at UBC including providing proactive recommendations in an agile manner.
  • Implements the latest standards in accessibility, security, privacy, equity and in other areas as regulated by University policies.
  • Documents code for internal and Open Source distribution and creates user manuals and documentation for end users.
  • Works collaboratively, as part of an Agile software development and learning technology operations team.
  • Designs, develops, tests, maintains, and supports enterprise learning technology solutions in support of faculty teaching and learning goals.
  • Participates in team practices including refinement, estimation, and planning.
  • Conducts demos of features and fixes for faculty and other campus stakeholders.
  • Contributes to documenting our processes, designs, and guidelines.
  • Supports continuous improvement activities.
  • Programs software applications and services.
  • Conducts testing and debugging to ensure application meets specifications.
  • Prepares programming documentation for supported programs.
  • Supports software development lifecycle, and applies and follows appropriate programming/development methodologies and best practices.
  • Integrates applications with UBC Campus Wide Login systems using Shibboleth as well as Learning Management Systems using LTI and APIs.
  • Maintains appropriate professional designations and up-to-date knowledge of current information technology techniques and tools.
  • Participates in project planning and implementation.
  • Builds and maintains good working relationships and collaborates with others to achieve client objectives.
  • Performs other related duties as required.
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service