Automation

Over time, we’ve established various workspace automation to boost our productivity and easily access the information we want to learn.

Most automation centers around the following principles:

  1. We want to diversify tools and workflows based on personal and team preferences to be productive.
  2. We need to funnel all the information from various channels back to the most adopted platform (Slack).

Updates

Where can we best capture work progress? We attempt to source them from where work happens.

Our updates project obtains activities from where work happens (GitHub) and where journals are kept (Notion). It then formulates the information into daily updates and weekly digests and sends to dedicated Slack channels for teammates to infer each others’ whereabouts asynchronously.

updates

Release

Based on our git conventions, we have developed a CLI (command-line interface) and an NLP (natural-language-processing) model to formulate release notes based on commit messages automatically.

You can read more about this in our blog post, “Road to Automation: Release Notes.”

commit-watch

Commit-watch is another CLI based on our git practices. The CLI helps us enforce the commit message conventions, which prepares the repository for better release notes materials.

scan-env

Scan-env is a CLI to scan and alert environment variable usages in a git repository.

scan-env

We often use scan-env and other routine CI (continuos-integration) and CD (continuous-deployment) processes to prevent environment variable-related runtime issues.

Legion

Our slash commands automation is driven by the legion project, our group chatbot.

/bday

This command has three variants:

  • /bday sign - sends a bday card link company-wide, excluding the bday person, as a slack direct message. To be used in the #general channel.

    /bday sign /bday sign msg

  • /bday send - sends the bday card to the bday person as a direct message in Slack.

    /bday send /bday send msg

  • /bday celebrate - triggers a bday message for the bday person. To be used in the #general channel.

    /bday celebrate

/demo

This command will add an event to the demo calendar that the /diff outcome will then highlight.

/demo

/diff [product] - Check product deployment difference between stages

This command complements our staged deployment practices for various products (such as front/back-ends of LOCUS and ATOM). It also utilizes the release CLI to classify commits and highlight critical contributors. With this information, the teams know who to approach for release consensus and provide follow-up supports for potential 0-days issues.

/diff

/release <product> [stage] - Release product for deployment to a stage

This command automates the usual tagged release convention based on our git practices, combined with the usage of the release CLI to generate the release notes for the matching deployment.

The command is often paired right after running /diff and gathering consensus and discussions with involved contributors.

/release

/pipeline - Data pipeline commands (currently checks capacity)

This commands taps into our AWS Data Pipeline to see its current capacity.

/pipeline

/food - Suggest restaurants

This commands leverages Yelp APIs to pull information of restaurants near the requested location. By default, it checks for ones near the EQ Works office.

/food