Loading...

Embracing the burrito: How we signal affirmation at BrainGu

2 min read

In the early days of BrainGu, we were working on our first government contract, and in the process of developing and establishing our remote team communications protocols. We discovered a gap in our methods. We didn’t have a non-intrusive way to acknowledge a message. If someone were to reply to a comment with “Got it,” or “Roger,” or any variation a notification would be sent out to everyone associated with that message, which was quite unnecessary.

The solution was of course to add an emoji to a message indicating read and received. This left a clear visible indicator that the message had been read by the intended recipient, without sending out a cascade of notifications.

The obvious ones like :thumbs-up: 👍 were used at first, but those took too long to find, remember this was in the before times, long before your favorite and most frequently used emojis would get automatically stored at the top. So, the :burrito: 🌯 was born. Why? No one really knows, but everyone loves burritos, so it stuck and became the BrainGu universal symbol for “I’ve seen this.” Soon the use of the burrito started to spill out from BrainGu Slack channels into our customer chat services and was being used on those teams as well, by both BrainGu employees and their counterparts that worked for our partners.

In the spirit of BrainGu’s philosophy of driving customer journeys from Automation to Innovation, our own Brent Johnson uttered those famous last words, “Why stop there?” And went onto develop the now-defunct, Botrito. (Side note: developed might be a slight exaggeration, he spent a few minutes creating this automation.) The Botrito’s sole purpose was to automatically add emojis to slack messages.

Like all language, our BrainGu-isms have also evolved. From simply indicating “I’ve seen this,” to being used as a symbol for celebrating good news. Whether that good news is work-related, “Hey, I just got a promotion!” or personal, “Hey, I just got engaged!” We’ve also kicked our emoji game up a notch, including a :party-burrito: :party-Kubernetes: and so many Star Wars themed ones.

More on the Botrito

Why was the Botrito created? Truthfully, it made Brent Johnson laugh.

				
import time
from slackclient import SlackClient
 
#Put the OATH token here or do a get_env as in the post mentioned above.
slack_client = SlackClient('SOMETHING')
 
#Target's user ID in slack.  Code below shows how to get all.
someone_id = ''
 
# starterbot's user ID in Slack: value is assigned after the bot starts up
starterbot_id = None
 
# constants
RTM_READ_DELAY = 1 # 1 second delay between reading from RTM
 
def add_reaction(channel, ts, emoji):
    slack_client.api_call(
        "reactions.add",
        channel=channel,
        name=emoji,
        timestamp=ts
    )
 
def parse_bot_commands(slack_events):
    for event in slack_events:
        if event["type"] == "message" and not "subtype" in event:
            if event['user'] == someone_id:
               add_reaction(event['channel'], event['ts'], 'burrito')
 
if __name__ == "__main__":
    if slack_client.rtm_connect(with_team_state=False):
        print("Starter Bot connected and running!")
        # Read bot's user ID by calling Web API method `auth.test`
        starterbot_id = slack_client.api_call("auth.test")["user_id"]
 
#uncomment these to print a list of all available users and their IDs.
        #users = slack_client.api_call("users.list")
        #for usr in users['members']:
        #    print usr['profile']['display_name'], usr['id']
 
        while True:
            parse_bot_commands(slack_client.rtm_read())
            time.sleep(RTM_READ_DELAY)
    else:
        print("Connection failed. Exception traceback printed above.")			
				
			 

Who Is BrainGu?

BrainGu is a cutting-edge software innovation lab that dreams of, incubates, and scales technology that is dedicated to advancing our customers' mission. For us, developing software is job number one. We combine critical analysis, creativity, and technology to solve problems. Our goal is to develop mission-critical solutions built on the latest DevSecOps & Cloud Native innovations.

The solutions we build and deploy improve outcomes for the operators and end-users by automating the most time-consuming and error-prone aspects of their workflows. Our customers realize the kinds of change that finish tasks in days, not weeks, at a volume of thousands, not hundreds.

We focus on clean and well-documented interfaces for both humans and machines. Our data-centric approach to optimizing artificial intelligence and machine learning through well-defined schemas allows efficient reuse of components across highly scalable technology stacks.

About Us