VyirTech Instrumentation Platform
One monorepo, one framework, every instrument — the codebase that lets a one-person engineering org ship like a team.
Every instrument at Vyir — beam profiler, spectral scanner, IR characterization benches, motion systems — runs on a single instrumentation monorepo that I designed and own. It grew out of the R&D data-acquisition platform I built earlier at the company (the one that cut a ~3-hour core analysis loop down to ~5 minutes), and it standardizes how software here is built, tested, and shipped.
The interesting part isn’t any one app; it’s the shared skeleton underneath them:
- A common application framework — acquisition pipelines with fail-open observers, focused controllers instead of god-objects, typed configuration, and a unified on-disk run layout so every instrument’s data is organized the same way.
- Hardware abstraction with mock devices. Each app talks to spectrometers, cameras, stages, and DAQs through ports, and every port has a device-true mock — so the full stack runs headless on any machine, and apps only ever control locally connected hardware.
- Real quality gates: linting, strict typing, architecture boundaries enforced by import rules (UI can’t leak into core), and per-app test suites with coverage floors, all running in Windows CI.
- Per-app packaging with pinned, reproducible environments — validated “frozen” instruments stay exactly as validated while active apps keep moving.
The platform is currently mid-way through a greenfield re-architecture: each legacy app is being rebuilt on the shared framework, one at a time, with an adversarial review gate before each port is accepted.
Built with Python, PyQt6, pyqtgraph, NumPy, and Pydantic. Source is private.