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:
- We want to diversify tools and workflows based on personal and team preferences to be productive.
- 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.
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.
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 send
- sends the bday card to the bday person as a direct message in Slack. -
/bday celebrate
- triggers a bday message for the bday person. To be used in the#general
channel.
/demo
This command will add an event to the demo calendar that the /diff
outcome will then highlight.
/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.
/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.
/pipeline
- Data pipeline commands (currently checks capacity)
This commands taps into our AWS Data Pipeline to see its current capacity.
/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.