Screenshot of Tangle
Dates: September 2021 - present Launched: October 2022 Technology: Unity, C#, Docker Team: The lovely folks at absurd:joy Inc. (approx. 20 people) My role: Mid-level engineer. Networked data synch between Unity client and backend infrastructure. UI implementation.

Tangle is a remote collaboration application that leverages the Unity game engine to create a playful, human-first environment for highly collaborative creative teams (e.g. game studios). What sets Tangle apart is its expressive, avatar-first approach and its ambient "din".

Depending on a given company's policy, many remote collaboration applications can make meetings feel awkward as the presenters speak to a wall of empty black squares or the audience awkwardly sits with their cameras on trying not to look bored. Tangle's avatar system allows listeners to leave their camera off but quickly and easily express verbal and non-verbal responses (e.g. head nodding, surprise) using their mouse and simple keyboard shortcuts.

Even when not actively in a meeting, Tangle users can control the "din" volume of their virtual office. The app allows users to modulate how loudly or quietly they want nearby office conversations to sound. Thus Tangle users can stay "plugged in" to their virtual office by serendipitously joining relevant conversations, they can completely tune out all noise and get focused work done, or they can simply use the sound of background chatter as a coffee-shop style atmosphere.

When I joined the Tangle team in late 2021, I became responsible for the networked data flows between the frontend Unity client and the backend database infrastructure; keeping states synchronized between clients, managing network packet flight times and reconciliation schemes, data versioning and backwards compatibility, and so on.

As a go-between data wrangler, I regularly collaborated with frontend and backend engineerings, UX designers, artists, and QA staff. I also worked with my engineering peers to introduce serveral coding practice improvements at the company, including running automated testing workshops and pushing for more testable code where appropriate, pushing for discriminated union-based error handling over exception throwing (leading to better sad-path control flow and code readability), as well as planning and executing a whole-codebase overhaul of our dependency injection architecture.

One of the most enjoyable aspects of working on Tangle were periodic experimental/prototyping initiatives (e.g. when researching alternative tech stacks or data transmission formats. Here, I would have the opportunity to lead small teams and mentor junior colleagues via pair programming, code reviews, and tutorials.

Tangle's playful style bringing people together