Skip to content

03Service record

Experience

Roles, in reverse chronological order. The full version lives on the resume page.

  1. 01Jul 2026 → Present

    AI Engineer Intern

    Gestalt CommunicationsOakville, Ontario

    • Built a pipeline ingesting United Nations procurement notices and awards to surface bidding opportunities relevant to Gestalt's services, backfilling 280k+ records on a rate limited PostgreSQL job queue.
    • Extended it with a document pipeline: attachment retrieval, PDF/DOCX extraction, Document AI OCR fallback for scanned files, sentence aware chunking, and Vertex AI embeddings stored in pgvector.
    • Persisted document text and chunks in transactional checkpoints before embedding, so failed embedding stages resume without repeating extraction or chunking.
    • Provisioned Terraform managed GCP infrastructure spanning Cloud Run Jobs, Cloud SQL, a versioned GCS archive, workload scoped IAM, Secret Manager and monitoring alerts.
    • Configured CI with PostgreSQL integration tests covering concurrent job claims, expired lease recovery and duplicate free record versioning, alongside lint and type checks.
    • Python
    • PostgreSQL
    • pgvector
    • GCP
    • Terraform
  2. 02Sep 2025 → May 2026

    Software Engineer Intern

    Swish SolarWaterloo, Ontario

    • Sole engineer on a Python pipeline converting solar SCADA and weather exports into monthly performance and data health PDFs, built to replace manual reporting.
    • Built Isolation Forest anomaly detection on interval performance ratio, power residual and AC/DC efficiency features rather than raw power output, to cut false positives from normal sunrise and sunset dips.
    • Added rule based fault categories, severity and recommended actions so operators know what to act on, and grouped consecutive zero output daylight intervals into events for reporting.
    • Python
    • pandas
    • scikit-learn