We have never thought twice about building internal tools here at Semantics3. Thanks to our engineering roots (all three of our founders are engineers), we have always believed that an investment in tooling (and by extension the productivity of engineers) will pay dividends in the long run. Also, while dealing with distributed systems at the scale that we do, a developer toolset that is easily and uniformly accessible by everyone in the team, becomes inevitable. We are always looking for newer ways to extend this toolset so that we can do our day-to-day chores in a quicker, less error-prone and a more efficient (and possibly more fun?) manner. To that end, allow me to introduce you to our latest creation — Watty (@wyw)!


Watty is a Hubot customized to improve the productivity of our team.

Originally built by the folks at GitHub, the Hubot project has now taken a life of its own with hundreds of community-written scripts available that provide additional functionality. Through the Slack adapter, Watty has become an integral member of our team who is always (no DnD hours unlike us humans) just a DM away.

In this post, I describe some of Watty’s current capabilities. If you are interested in running your own Chat bot, check out the incredibly helpful Hubot docs.

automating build and deploy

Building and deployment can be greatly simplified (à la ChatOps). For example, this very blog is brought to the Internet by Watty:

build text to life
ready to roll

Of course, with great power comes great responsibility, so restrictions can be built in to prevent mischief:

nice try

If you would like to know more about how a Hubot can be integrated into your team’s development workflow, I recommend taking a look at atmos/hubot-deploy which teaches a Hubot the GitHub Flow.

consolidating information

We are big fans of Stripe here and use it for all our payment-handling needs. They have a Slack app but we realized that we needed more control while reporting Stripe events.

By allowing Stripe webhooks to be sent to Watty, we are now able to present our Stripe activity with a little more class!

notifications simplified
yes, classy

monitoring vendors

As our flagship product is an API, we understand the importance of maintaining uptime. We also know that outages do happen from time to time — so it pays to keep track of the third-party services that we depend on & raise alerts when things go wrong.

By periodically listening to various status pages around the Internet, we try to make sure that we are always on top of events that concern us.

time to go out and play

and just because we can

volunteer as tribute