Inspiration - As a Product Manager, the informal communications around the office are often the most important. A little of bit knowledge here and there can save a lot of work later on. There is also the simple fact that sitting at your computer all day while at home disconnects you from your peers.
What it does - it connects a users microphone to an audio bridge for their work team, however it connects your speaker with every audio bridge in the company. The volume of each audio bridge is set in proportion to the interdependence of your team and each other team, meaning you hear more from the teams you depend upon, and less from those teams that are peripheral. It also give visibility of people within the company to facilitate personal communications, just as an office environment would.
How I built it - I put an audio bridge on a raspberry pi that I have in my living room. I then wrote a PHP backend to handle user authentication and information regarding their team and inter-team config. Then a flutter frontend to put a GUI around it all so that the user experience could be clean and simple and not be as formal as an audio or video conference call would normally be.
Challenges I ran into - one of the volunteers that I was relying on decided to leave, so I had to learn PHP sufficiently to get the backend done, and the audio side of things was new to me.
Accomplishments that I'm proud of - I managed to get a reasonably serviceable UI and UX completed much faster than I thought I would, particularly as the backend side was totally new for me.
What I learned - audio can be really complex. I experimented with binaural channels for a bit as I wanted to create a spacial sound capability. This would be good enough that you could logically position people at 'desks' around you, then you would hear the sound coming from that direction. And I learned that I do not know enough to do that within the confines of this project. :-)
What's next for watercooler - The UI needs a polish. The audio side still has some more to do, however I think that would mostly be solved by not using a Raspberry Pi.... maybe get it so that it works for a small company and see if they will use it.
ffmpeg, flutter, linux, php