Skip to main content

Staff Software Engineer · AI/ML Systems · Platform Engineering

AI systems
for RBC's
call centre.

I build LLM ensemble labelling pipelines, fine-tune embedding models, and run intent classification on CPU-only infrastructure. I have been at RBC since 2017, from intern to Staff Engineer.

At RBC
8+ yrs
IC track
Intern to Staff
Current focus
AI / ML
Statistics
University of Toronto

About

At RBC since 2017. I started as an intern and I am now a Staff Software Engineer.

I joined RBC in 2017 as an intern, straight out of a Statistics degree, wanting to see how software actually runs in production. I stayed. Since then I have worked on developer tooling and ChatOps, site reliability and chaos engineering, security platforms, and most recently AI systems.

Right now I own the intent detection and classification models for the bank's call-centre platform: labelling, training, and inference. The work covers LLM ensemble labelling pipelines, knowledge distillation for embedding models, and a real-time classifier that labels calls as they progress, served on CPU-only infrastructure. Most of the effort goes into making research techniques hold up under real production constraints.

My background is a Statistics degree from the University of Toronto, so I tend to reach for the data before the opinion. I want to understand why a model behaves the way it does, not just whether it clears a benchmark.

Outside work I run a homelab, tinker with networking, and build small things to test ideas.

K-M Samiul Haque, Staff Software Engineer
Samiul Haque Staff Software Engineer · RBC

Professional Experience

7 roles

Staff Software Engineer , AI Advice Centre

Royal Bank of Canada Toronto, ON

AI / MLBackend
  • Own the intent detection and classification models for the bank's call-centre platform: labelling, training, and inference over live call transcripts from AWS Transcribe, across thousands of daily banking calls.
  • Built an LLM ensemble labelling pipeline (GPT-4o mini, GPT-4.1 mini, GPT-5 mini) with consensus voting and escalation to larger thinking models for tie-breaks, to generate training labels for fine-tuning.
  • Ran a knowledge distillation workflow using the ensemble as teacher to fine-tune Arctic Embed 2.0 Large into a domain student model for banking intent semantics.
  • Built the continuous training pipeline on S3 and Apache Airflow: dataset ingestion, retraining, evaluation, and deployment to OpenShift.
  • Benchmarked SVM (RBF), logistic regression, SetFit (head and full fine-tune), centroid, and fine-tuned Arctic Embed classifiers for production intent classification.
  • Served Arctic Embed 2.0 Large with ONNX Runtime on CPU-only OpenShift, tuned with AVX-512 and related flags (no VNNI), inside a Spring Boot service on Java 25 that handles thousands of concurrent advisor and client conversations in real time.
  • Trained a class-balanced logistic-regression head on the ensemble-labelled data to classify caller intent live as each conversation progresses, reaching up to 85% accuracy.
Stack Java 25 · Spring Boot · Python · ONNX Runtime · Arctic Embed 2.0 Large · AVX-512 · scikit-learn · SetFit · SVM · GPT-4/4o/5 · Claude · S3 · Apache Airflow · OpenShift · AWS Transcribe/Bedrock

Staff Software Engineer , Vulnerability Management Group (VMG)

Royal Bank of Canada Toronto, ON

SecurityBackend
  • Built a centralized web platform for vulnerability triage and exemption services across RBC subsidiaries in Canada, the US, and the UK.
  • Built data ingestion pipelines pulling Snyk, NexusIQ, Kenna, Tenable, and Aqua feeds into a single Snowflake warehouse.
  • Delivered the full stack: React and Tailwind front end, FastAPI services, Snowflake, Redis, and SQL Server, deployed on OpenShift.
Stack React · Tailwind · FastAPI · Python · Snowflake · Redis · SQL Server · OpenShift · Snyk · NexusIQ · Kenna · Tenable · Aqua · Recorded Future

Lead Software Engineer , SRE & Chaos Engineering

Royal Bank of Canada Toronto, ON

SREDevOps
  • Automated large-scale chaos experiments on VMs and Kubernetes namespaces across AKS, OpenShift, and VMware using the Tanium and Gremlin APIs, cutting experiment setup time by 90%.
  • Built SRE data enrichment pipelines across PagerDuty, ServiceNow, and the ELK Stack, cutting mean time to detect by 30%.
  • Built observability data pipelines in Python and Pandas over Oracle, SQL Server, and PostgreSQL to feed internal monitoring dashboards.
Stack Python · Go · Tanium API · Gremlin API · Elasticsearch · PagerDuty · ServiceNow · Pandas · PostgreSQL · SQL Server · Oracle DB · OpenShift · AKS

Senior Software Developer , Developer Experience & OSPO

Royal Bank of Canada Toronto, ON

BackendDevOps
  • Built an mTLS API gateway connecting Slack apps to internal banking services using Go, Apache APISIX, HashiCorp Vault, Apigee, the GitHub API, Elasticsearch, and Nginx on OpenShift. It enabled ChatOps workflows that saved teams hundreds of hours a week.
  • Built a bulk employee onboarding service that cut provisioning from hours to minutes using Go, Gin, PingFederate SSO, and ServiceNow on OpenShift.
  • Built a metrics pipeline tracking open-source and innersource artifact reuse across the org, with executive dashboards on Logstash, Kibana, Elasticsearch, Redis, and NexusIQ.
  • Wrote innersource SDKs and templates in Python and Go that cut Slackbot onboarding from two weeks to two days for 15+ teams.
Stack Go · Gin · Apache APISIX · Apigee · HashiCorp Vault · Nginx · GitHub API · Elasticsearch · Logstash · Kibana · Redis · NexusIQ · Artifactory · PingFederate · Java · Python · OpenShift

Software Developer , Developer Experience

Royal Bank of Canada Toronto, ON

Backend
  • Built an internal Stack Overflow style Q&A platform with gamification. It lifted the answered-question rate by 25% and connected developers across different lines of business.
  • Built a production WebSocket Slackbot pub-sub framework in Go and RabbitMQ that scales horizontally without duplicating messages.
Stack Java · Spring Boot · Elasticsearch · MariaDB · PingFederate · PCF · Golang · RabbitMQ

Software Engineering Intern , 3 terms (QE, Dev, SRE)

Royal Bank of Canada Toronto, ON

AI / MLDevOps
  • Built a Slackbot ChatOps pipeline that saved 20+ engineer-hours per microservice each week using Python, MongoDB, Redis, Rasa NLU, Docker, and OpenShift.
  • Built an ML-based SRE pipeline that improved app resilience and cut recovery toil using Elasticsearch, Logstash, Kafka, and IBM CDP.
  • Built an automation test portal that cut test execution time by 80%, saving over $100k a year.
  • Built a private incident war room on a Raspberry Pi with Python, Snips, PagerDuty, Moogsoft, and ServiceNow that surfaced fixes from similar past incidents.
Stack Python · Java · MongoDB · Redis · RASA NLU · Docker · Kubernetes · OpenShift · IBM UDeploy · Logstash · Kafka · Ansible · Dynatrace · ServiceNow · Moogsoft · Elasticsearch

Full-Stack Developer , Contract

University of Toronto Remote

Backend
  • Built a web app for the History Department to track course enrollment trends using Django, Bootstrap, Redis, jQuery, Nginx, Chart.js, and PostgreSQL.
Stack Django · Bootstrap · Redis · jQuery · Nginx · Chart.js · PostgreSQL
"Most of my work is making research techniques survive real production constraints. That is the part I find interesting."
What I care about

Featured Projects

6 projects

Production Systems Internal · Sanitized

  • Up to 85% accuracy
  • Thousands of live conversations
  • CPU-only, AVX-512

Live Intent Classifier

Ensemble-labelled, CPU-served

An LLM ensemble labelling pipeline (GPT-4o mini, GPT-4.1 mini, GPT-5 mini with consensus voting) labels call data, which trains a class-balanced logistic-regression head over Arctic Embed 2.0 Large embeddings. Served with ONNX Runtime on CPU-only OpenShift (AVX-512, no VNNI) in a Spring Boot service on Java 25, classifying caller intent in real time as the conversation progresses.

Java 25Spring BootONNX RuntimeArctic Embed 2.0 Largescikit-learnOpenShift
  • Canada · US · UK
  • Snowflake warehouse
  • Five scanner feeds

Vulnerability Triage Platform

Multi-subsidiary security data pipeline

Centralized platform for vulnerability triage and exemption services across RBC subsidiaries in Canada, the US, and the UK. Ingests Snyk, NexusIQ, Kenna, Tenable, and Aqua into a Snowflake warehouse with triage dashboards.

ReactFastAPISnowflakeRedisPythonOpenShift
  • 90% faster setup
  • AKS · OpenShift · VMware
  • Self-service scheduling

Chaos Engineering Platform

Automated resilience testing

Automated large-scale chaos experiments across AKS, OpenShift, and VMware clusters using the Tanium and Gremlin APIs. Gives teams self-service chaos scheduling for VM and Kubernetes workloads.

PythonGoTanium APIGremlinKubernetesAKS

Open Source & Hackathons

MirrML

ML clothing style classifier · UofTHacksIV

Flask app on the Clarifai image recognition API. Classifies clothing style (business, casual, evening) with a neural network trained on scraped image data, then matches users with friends who dress similarly.

LendR

NFC micro-lending app · TD Finhacks

Android app that uses NFC for social micro-financing. A Karma system rewards on-time repayment; negative karma lowers borrowing limits. The backend tracks transactions and karma ratings.

HackTheValley API

Event Management API

Production event management API for HackTheValley, a University of Toronto hackathon. Built with Go for high performance and deployed for the annual event.

Career so far

From intern to Staff Engineer. Eight years at RBC so far.

  1. Staff Software Engineer, AI Advice Centre

    LLM ensemble labelling, knowledge distillation, embedding fine-tuning

  2. Staff Software Engineer, Vulnerability Management Group

    Centralized vulnerability triage and exemption platform

  3. Lead Software Engineer, SRE & Chaos

    Chaos automation and SRE enrichment pipelines

  4. Senior Software Developer, Developer Experience

    ChatOps, mTLS gateway, innersource SDKs

  5. Software Developer, Developer Experience

    Internal Q&A platform and Slackbot pub-sub framework

  6. Software Engineering Intern

    ChatOps automation and ML-based SRE pipeline

Technical Skills

10 categories

AI / ML Systems

  • LLM Ensemble Labelling
  • Knowledge Distillation
  • Arctic Embed 2.0
  • Embedding Fine-tuning
  • ONNX Runtime
  • SetFit
  • SVM (RBF)
  • Intent Classification
  • Semantic Clustering
  • RAG
  • Prompt Engineering
  • RASA NLU
  • Clarifai

Languages

  • Python
  • Java
  • Go (Golang)
  • JavaScript
  • TypeScript
  • SQL
  • Shell/Bash
  • C
  • C++
  • Ruby

MLOps & Data Pipelines

  • Apache Airflow
  • S3 Data Pipelines
  • Continuous Training
  • Model Evaluation
  • Snowflake
  • Apache Kafka

Cloud & Containers

  • OpenShift (OCP)
  • Kubernetes
  • Docker
  • Azure AKS
  • AWS (Transcribe, Bedrock, S3)
  • PCF

Frameworks

  • Spring Boot
  • FastAPI
  • Flask
  • Django
  • React
  • Gin
  • ASP.NET Core
  • RabbitMQ

Databases

  • PostgreSQL
  • SQL Server
  • Elasticsearch
  • MongoDB
  • Redis
  • MariaDB
  • MySQL
  • Oracle DB

DevOps & CI/CD

  • GitHub Actions
  • Jenkins
  • Ansible
  • HashiCorp Vault
  • Artifactory
  • SonarQube
  • IBM UDeploy
  • Git

SRE & Observability

  • Gremlin
  • Tanium
  • PagerDuty
  • ServiceNow
  • ELK Stack
  • Prometheus
  • Grafana
  • Moogsoft
  • Dynatrace

Security

  • Snyk
  • NexusIQ
  • Kenna
  • Tenable
  • Aqua
  • Recorded Future
  • mTLS
  • PingFederate

AI Dev Tools

  • Claude
  • ChatGPT / GPT-4o
  • GitHub Copilot
  • Cursor

Education

Honours B.Sc. Statistics

University of Toronto

Toronto, ON

Statistics major. Double minor in Geographic Information Systems (GIS) and Psychology.

Activities AMACSS (Director of IT), Computer Science Enrichment Club (SRE), Women in Computer Science, Statistics & Mathematics (Web Developer)

Volunteering

3 organizations

Web Developer

Women in Computer Science, Statistics & Mathematics (WiCSM)

Built and maintained the group's website. The group advocates for gender diversity in STEM at the University of Toronto.

Get in Touch

Let's work together
or just say hello.

If you're hiring, building AI or ML systems, or just want to talk shop, my inbox is open.