Tait Hoyem
Backend and systems software engineer
tait@tait.tech | tait.tech | github.com/TTWNO
Summary
Software engineer with five years of experience across Rust, Python, and JavaScript, working on everything from low-level systems and async services to Django web backends. I maintain open-source accessibility infrastructure that other projects build on, including a pure-Rust AT-SPI2 implementation used by AccessKit and the Odilia screen reader.
Technical Skills
- Languages
- Rust, C/C++, Python, JavaScript/TypeScript, PHP, SQL
- Backend and frameworks
- Django, Flask, Tornado (Python); Axum, Tokio, proc-macro (Rust); WordPress (PHP)
- Systems
- Async and concurrent code, D-Bus IPC, protocol design, caching and performance work, CI/CD, automated testing (unittest, Selenium), OCR
- Web and markup
- HTML, CSS, jQuery, MathML, LaTeX
- Tools and practice
- Git, Semantic Versioning, WCAG 2.1 AA
- Spoken languages
- English (native), Mandarin Chinese (novice)
Experience
CNIB Access Labs, Accessibility Engineer (2025-present)
- Build internal tools in Kotlin and Python.
- Wrote an automated pipeline that generates WCAG-compliant PDFs, replacing a manual process.
- Audit web and native applications for accessibility problems and fix the issues found.
Bytetools Technologies Inc., Founder and Lead Developer (2020-present)
- Run a small software and services company; built several Django web apps, including an accessible invoicing system and a custom job-scheduling system.
- Wrote OCR-based tools in Rust that turn printed diagrams into tactile, Braille-labelled graphics and structured text.
- Managed a team of ten contractors transcribing STEM course material (CS, UX, Linguistics) for two Canadian universities.
University of Lethbridge, Research Assistant (2025)
- Wrote Python pipelines to automate ingest and transcription of non-standard Blackfoot script.
- Scripted Tesseract OCR to convert scanned documents into machine-readable text.
- Produced a single searchable corpus for use on the web and in a database.
GNOME Foundation, Software Developer (2023-2024)
- Worked on a Wayland compositor API for capturing keyboard input on behalf of assistive technologies.
- Helped define how compositors pass key events to screen readers.
- Contributed all work upstream under the GPL.
National Network for Equitable Library Service (NNELS), Accessibility Tester (2023-2024)
- Tested websites, web apps, and internal software used by public libraries for problems affecting screen reader users.
- Wrote detailed defect reports and re-tested fixes across multiple cycles.
- Covered software from libraries and their partner organizations.
Oxfam Canada, Accessibility Consultant (2022-2023)
- Brought the main WordPress site up to WCAG 2.1 AA, editing HTML, CSS, and PHP.
- Modified existing WordPress plugins so they worked for screen reader users.
- Worked with external auditors and in-house developers over Git, documenting each change.
Southern Alberta Institute of Technology (SAIT), Instructor (2022-2023)
- Taught web development (PHP, JavaScript, SQL) for five semesters.
- Wrote lecture material and assignments covering both server-side and client-side work.
- Mentored students through full-stack projects.
Large Canadian University, Alternate-Format Transcriber (2021-2022)
- Produced accessible versions of complex, interactive diagrams for a blind student.
- Covered material from Linguistics, Computer Science, and User Experience courses.
- Converted visual content into formats that work with a screen reader.
Zone4 Systems Inc., Software Developer (2021)
- Wrote CI test automation with Python unittest and Selenium for international race-timing software.
- Caught several show-stopping bugs in CI before release, saving tens of hours of event downtime.
- Added features in JavaScript and Python (Tornado); collaborated over Bitbucket.
Selected Projects
atspi (Rust, async, D-Bus)
Primary maintainer of atspi, a pure-Rust implementation of AT-SPI2, the main accessibility API on Linux. A custom caching layer produced a measured 350% performance improvement over the first release, with over 1000 tests and CI coverage checks. AccessKit, the cross-platform accessibility layer behind toolkits like Bevy, egui, and Slint, builds on it.
Odilia (Rust, Tokio)
Core contributor to Odilia, a fast screen reader for the Linux desktop built on AT-SPI2 over D-Bus. The design is distributed and asynchronous, with custom caching and performance work. Built with an international team over Git.
Lichess screen-reader support (TypeScript)
Added board navigation to lichess.org's NVUI screen-reader mode. Blind players can move around the board by keyboard, jump between pieces with letter keys, hear audio cues, and handle pawn promotion. Merged upstream.
spiel and ssip-client-async (Rust)
Implementations of two text-to-speech transport protocols: the Spiel D-Bus speech provider and an async SSIP client. Both drive speech output from assistive software.
Semantigram
An experimental system for sharing visual data between sighted and blind collaborators through shared semantics.
Simple Markdown Editor (JavaScript, KaTeX)
A browser-based, offline-capable Markdown and math editor that outputs accessible MathML.
Education
BSc, Computer Science, University of Lethbridge (2023-2026)
Research in embedded text-to-speech, human-computer interaction, and accessibility systems.
Diploma, Information Technology, SAIT (2019-2021)
Object-oriented, full-stack software development.