Projects
I have a few projects currently out and running in the wild:
- Marie: A modular group management bot written in Python. Has now been replaced by Rose. Over 5 million users at time of sunsetting. Source
- Rose: A scalable, golang based group management bot. Essentially a fully concurrent, re-engineered version of Marie, learning from all my previous mistakes. Used by over 780 million users in more than 17 million chats, and still growing! Docs website can be found here.
- Believable Bots: A SaaS platform for running custom “white label” instances of Rose (mentioned above). This is my first attempt at a business, and learning lots of valuable things from it! The overall platform is built with react, typescript, golang, postgres, kubernetes, argocd, and the kubeprom monitoring stack, on top of DigitalOcean’s kubernetes offering.
Running these bots have taught me a large number of technical skills which I’ve been able to reuse in my professional life, such as:
- Operating production virtual and baremetal machines.
- Running baremetal kubernetes clusters. This is where all my non-critical infrastructure lives.
- The value of monitoring, alerts, metrics, and dashboards. I host my own kubeprom stack, scraping both my SaaS and Rose, and building dashboards to ensure things are working as expected.
- Using gitops workflows to ensure consistency of various clusters and simplify rollout pipelines.
- The use of CI to test, enforce codestyles (through common linters), and find common errors (with various static checks).
- Operating under cost constraints; up until recently, all my monthly costs were covered by donations.
Along with technical skills, these projects have also taught me how to interact with large communities, providing support and help to anyone who would like to make use of the bots.
Other projects that I am/have worked can be found here:
- https://github.com/PaulSonOfLars/gotgbot -> an open-source go wrapper around telegram’s bot api. Entirely auto-generated from the telegram bot API docs. This is the library used by Rose, and is under constant development.
- https://github.com/PaulSonOfLars/tgbot -> a (deprecated) modular group management bot for telegram, built in python. ( This is the code for Marie, mentioned above)
- https://github.com/PaulSonOfLars/gotg_md2html -> a golang based markdown to HTML converter compatible with telegram’s markdown, allowing for easy extension.
A few group projects I’ve worked on:
- https://github.com/PaulSonOfLars/ImperialDefense -> baremetal tower defense game on raspberry pi
- https://github.com/PhoneMapWebApps -> a university side project where a team of friends and I attempted to recreate a seti@home clone aimed at mobile phones.
- https://github.com/WhiteboardLiveCoding -> another university project, where we created a web app capable of transcribing handwritten python code to a file and executing it. Built with an aim to be language agnostic, but only every implemented python.
And finally, some hackathon projects:
- https://github.com/PaulSonOfLars/quakespasm -> ICHack 2017: port of quake to oculus rift
- https://github.com/ICHack18 -> ICHack 2018: created a “safespace” for sensitive internet users to censor particular images from their browsing. Used Microsofts’ image recognition api to power a chrome extension with a docker based go backend.
- https://github.com/bluff-kerfuffler -> ICHack 2019: created a Cisco webex bot to allow for biometric authentication in sensitive chats. Powered by AimBrain’s authentication API.