The official SDKs—Slack Developer Kits—are the best way to get started building on the Slack Platform, whether you are looking to integrate Slack into your existing back office, or build the next great business bot. My team is responsible for documenting and maintaining these tools, as well as promoting these tools to Slack developers.
From its inauguration in January 2016 through August 2016, I organized and ran the premier Slack developer meetup. Each month, Slack HQ would host 50–100 app and bot developers in the San Francisco area for two hours of inspiring talks, networking, and lovely food and drink.
I authored this set of boilerplate code and documentation that make getting started building Slack-powered chatbots simple. The boilerplate code is built on top of BotKit, a Node.js module for building bots, and is designed to flexibly account for various deployment needs and use cases. The documentation is available online, and was previously available in printed form as a booklet that Slack would hand out at Platform events.
Slack messages have many formatting options—this tool makes it easy to preview these options, and make your bot or app’s messages look just so. I was the tech lead on this project, and in addition to implementing the product’s backend, I was responsible for technical decision making and ensuring that the project stayed in-scope and on-schedule.
One strategic focus of the Slack Platform is to be your company’s default identity provider. This product is a first step in that direction by allowing third parties to authenticate users with Slack to log them in. I was the tech lead on this project, and in addition to implementing the product’s backend, I was responsible for architecting the solution, technical decision making, and ensuring that the project stayed in-scope and on-schedule.
Previously, our three mobile clients (iPhone, Android, Windows Phone) were entirely siloed projects. I was given the task of architecting a solution to maximize code-sharing between these three platforms. My solution was a cross-platform library in portable C++11, using djinni to autogenerate the platform-specific bindings. I was the project lead, responsible for architectural and technical decisions, as well as implementation.
In the course of building libslack (see above), I contributed significantly to the djinni project by adding support for C++/Cx bindings to enable building .NET assemblies for use on Windows Phone. (At the moment, my pull request is still under review).
While part of the Calls team (previously Screenhero), I was responsible for integrating the shared C++ library that Calls is built upon into the Mac, Windows, and Linux desktop Slack clients. On Mac, I chose to use XPC Services for maximum isolation and robustness. The Windows and Linux clients, built using Electron, required a set of V8 bindings to the Calls library.