Bilingual Name Manager
InternalAn internal bilingual Python tool that validates geographic names and coordinates against authoritative records, developed with DFO clients from requirements through training.

The problem
Geographic-name validation requires more than a text match: a record's coordinates, language, and authoritative identity matter too. DFO clients needed a repeatable way to check that information while reducing manual work.
What I built
- Authoritative record checks. I architected a modular Python tool integrating the Geographical Names Board of Canada API with bilingual validation and geospatial matching.
- Concurrent validation workflows. Multithreaded processing supports checks across names, coordinates, languages, and source records.
- Delivery with a three-person team. I led requirements discussions, client demonstrations, deployment, training, and support so the validation tool could become part of the team's working process.
Why I built it this way
- Combine names with location and language. Text alone is insufficient for geographic records. Geospatial matching and bilingual rules give validation the context needed to distinguish candidates.
- Use an authoritative reference. The API integration anchors checks to recognized geographic-name records, making the reference behind each validation explicit.
- Refine the workflow with clients. Requirements, demonstrations, and training were part of development. Direct feedback helped align the tool with the records and processes staff actually needed to validate.
What I learned
I practiced leading a small team, integrating a public-record API, and translating client requirements into a usable validation workflow. Delivery includes helping people adopt the tool and supporting the process after deployment.
Evidence & current limits
CHS Atlantic reported that one process fell from two weeks to a few hours. That report applies to that workflow rather than every validation task. Source, operational records, and interface screenshots remain internal to DFO.