---
title: TeraGo
type: experience
description: Software Engineering Intern at TeraGo, May to Aug 2026: an outage-email parser on a local LLM, Channel Finder, and a Copilot Studio agent.
tags: [internship, local-llm, rf-planning]
related: [index.md, ../projects/index.md, ../skills.md]
id: terago
dates: "May 2026 to Aug 2026"
role: contributor
updated: 2026-10-16
---
Dates: May 2026 to Aug 2026
Role: Software Engineering Intern
Location: Markham, ON
test cases: 760
Summary: Built a working outage-email parser: a local LLM on Ollama reads providers' non-standard outage emails and opens Jira issues. It works end to end, but TeraGo hasn't deployed it yet; they've started revisiting it. Also wrote Channel Finder, a Python tool that shortlists clear RF channels from MapInfo spectrum records, validated on 760 test cases, and deployed a Copilot Studio agent that answers engineers' RF questions.

# TeraGo

TeraGo is a Canadian provider of cloud, colocation and connectivity services for businesses.

This was internal work, so there's no code or screenshots here.

## tl;dr

- An outage-email parser in Python: a local LLM on Ollama reads provider outage emails and opens Jira issues. It works end to end; TeraGo hasn't deployed it yet.
- Channel Finder, an RF tool that shortlists clear channels, validated on 760 test cases.
- A Copilot Studio agent that answers engineers' RF questions from SharePoint documents.
- A proposal for a self-hosted LLM platform to cut per-user Copilot licensing costs.

## The problems

- Providers send outage notices in non-standard formats.
- Picking a clear frequency for a PMP or P2P link means checking candidates against MapInfo spectrum records.
- The answers to engineers' RF questions sit in SharePoint documents.
- Copilot is licensed per user.

## What I built

> **Outage emails to Jira (working, not deployed).** Reads the mailbox through Microsoft Graph, has a local LLM on Ollama pull out the key details, and opens a Jira issue. It works end to end, but TeraGo hasn't put it into use yet. They've started revisiting it.

> **Channel Finder.** An explainable RF decision-support tool in Python. It checks candidate frequencies against MapInfo spectrum records and shortlists clear ones for PMP and P2P links. Shipped as a CLI and a web UI.

> **Copilot Studio agent.** Answers engineers' RF questions from SharePoint documents.

> **Self-hosted LLM proposal.** LibreChat with SharePoint and Jira integrations, to cut per-user Copilot licensing costs.

## How it works

Outage-email parser:

```diagram
alt: The mailbox is read through Microsoft Graph, a local model on Ollama pulls out the key details, and a Jira issue is opened.
mailbox ─► Microsoft Graph ─► local LLM (Ollama) ─► Jira issue
```

Channel Finder:

```diagram
alt: A link type and candidate frequencies are checked against MapInfo spectrum records, producing a shortlist of clear frequencies.
link type + candidates ─► check against spectrum records
                       ─► shortlist of clear frequencies
```

## Models and cost

- The parser runs a local model on Ollama, so emails are processed locally, with no per-call API cost.
- The LibreChat proposal moves chat to a self-hosted platform instead of per-user Copilot licences.

## Results

- Outage-email parser: works end to end, not deployed yet.
- Channel Finder validated on 760 test cases, shipped as a CLI and a web UI.
- Copilot Studio agent deployed for engineers.
