Messenger rules the world. Or does it? What about WhatsApp, Slack, Signal, Skype, Viber, QQ and dozens of others? How to talk to friends who use different IM network and still keep everything in one place?
With this question in mind I started building my own communicator in 2017. Now, it support 20+ different protocols, can communicate with no internet connection, uses custom NoSQL database, synchronization primitives, queuing system, and works reliably even in face of catastrophic failures. Come and see how a home-grown project evolved and allowed me to get tons of experience.