Projects

Software, AV automation, and infrastructure, from problem to outcome.

Case studies

Technical details, decisions, and results.

Ongoing

Televic CoCon Client

An asynchronous, typed Python client for the documented Televic CoCon REST API.

Author — developed for 3P Technologies S.r.l.

Problem
Provide one asynchronous interface for sending CoCon commands and receiving notifications without repeating transport logic in every application.
Approach
Long polling and command dispatch run independently, so incoming notifications do not block outgoing commands. Supported payloads become typed dataclasses, while retries, reconnection, and re-subscription stay inside the client.
Contribution
Built the asynchronous client, typed notification parser, and connection and command handling.
Outcome
A published library used internally as the foundation for CoCon Vote Monitor.

One boundary for CoCon

I built the client so application code can work with commands and typed events instead of managing long polling, retries, and reconnections itself. Its async with API handles setup and teardown, while subscriptions and callbacks keep notification handling straightforward.

The notification registry keeps support for new payload types in one place, and restored subscriptions let applications continue after a connection interruption. The same client later became the foundation for CoCon Vote Monitor.

Technology

Python · asyncio · aiohttp · Typed dataclasses · REST/JSON

Attribution

Developed for 3P Technologies S.r.l., which holds the copyright. Available under LGPL-3.0-or-later or a commercial licence. CoCon and related trademarks belong to Televic Conference NV; the project is independent and not affiliated with Televic.

Ongoing

CoCon Vote Monitor

A live browser view of meeting state and voting results received from a Televic CoCon system.

Author — developed for 3P Technologies S.r.l.

Problem
Provide a clear browser view of the current meeting, agenda item, and voting results.
Approach
The application keeps meeting and voting state on the server and sends a complete snapshot to each newly connected display. WebSockets carry subsequent updates, and the standard view can open the browser print flow when voting closes.
Contribution
Built the web application, mapped CoCon notifications into page state, and added live updates for connected browsers.
Outcome
A public, configurable application that displays meeting state, agenda item, per-delegate results, and aggregate counts.

A live view of each vote

I built the monitor as a focused companion to cocon_client. Keeping the current state on the server means a newly connected display immediately receives the full meeting and voting view; existing displays stay current through WebSocket updates instead of polling or refreshing the page.

When voting closes, the standard view can open the browser print flow automatically. /noautoprint keeps the same live view without triggering it.

Technology

Python · Starlette · Uvicorn · WebSocket · cocon_client

Attribution

Developed for 3P Technologies S.r.l., which holds the copyright. Released under AGPL-3.0-or-later. CoCon and related trademarks belong to Televic Conference NV.

08/2024–ongoing

Conference-space AV integration

Integration and configuration of AV and control systems for a multi-space renovation at the major international institution in Geneva.

System Integrator & Quality Manager — project assignment for 3P Audiovisual SAGL

Problem
Make several AV and building-control systems work together consistently across a multi-year conference renovation.
Approach
Work through requirements directly with the customer, check the boundaries between subsystems, configure and test devices room by room, and coordinate control changes with the main automation developer.
Contribution
Lead system integration, discuss requirements and possible changes with the customer, and configure, test, and commission the audio, video, camera, KNX, and control systems.
Outcome
Five of seven planned environments have been configured, tested, and placed into operation; remaining work is ongoing.

Integration at conference scale

Across seven conference environments, the project covers nearly 5,000 devices and conference positions: around 1,700 delegate and microphone positions, approximately 2,800 listening units, more than 300 AV-over-IP endpoints, and dozens of controlled cameras.

I work directly with the customer on requirements and possible changes, coordinate the interfaces between systems, and handle the detailed device configuration, testing, and commissioning. Five of the seven planned environments are in operation, with the remaining work still under way.

I work alongside the senior automation developer, who owns the main control-code implementation. My software contribution consists of the smaller changes needed during integration; most of my work is system integration, device configuration, quality checks, and commissioning.

Technology

AMX NetLinx · AV control systems · Networked audio and video · Camera control · KNX

Attribution

Project assignment supporting 3P Audiovisual SAGL while employed by 3P Technologies S.r.l., in collaboration with the senior automation developer.

Command palette

Navigation

6 destinations available.

Keyboard shortcuts

Global shortcuts are disabled while you type in a field. Every action remains available through ordinary controls and links.

Alt+P
Open the command palette
Alt+T
Cycle theme: auto, dark, bright
Alt+H
Open or close this help
Esc
Close the active window