I’m a philosopher-engineer experienced in architecting amazing products with successful early-stage startups.
My heart lies in engineering cool products with smart, friendly people. I currently work on Slack’s Platform, leading a brilliant team of developer advocates that build relationships and tools with third-party developers. Throughout my career I have engaged a broad range of technologies: chatbots, webapps, desktop apps, streaming media, embedded hardware, and even the model railroading industry. I’ve proven my grit by achieving my PhD philosophy, and my training in the philosophy of mind and neuroscience informs my work as a chatbot builder. When I am not working, I love traveling, sailing, foreign languages and enjoying all life has to offer with my wife and daughter by my side.
I am currently leading the Developer Tools team within Developer Relations. My team builds and educates our community of developers through workshops and talks, and we craft tools to help developers succeed on the Slack Platform. Our tools to date include open source SDKs, debugging tools, code examples, and tutorials. Prior to working with DevRel, I have worked as an engineer on nearly every part of the Slack technology stack, including the backend and native clients.
I have worked on everything from meddling with mice and USB streams at the kernel level in C, to responsive single-page web apps in JS and Ruby, to business finance, business development, and marketing. As the first employee at this early-stage startup, I had to wear many hats, and be ready to quickly respond to changing needs in a fluid environment.
As the founder and sole employee, I was responsible for all aspects of my own business. In addition to operating and growing the business, I designed, tested, manufactured, marketed, sold, and shipped custom electronics for model railroad applications. When not working on my own products, I also engaged in OEM design consulting for a number of external clients working within the model railroading industry. Finally, I was very active working with the National Model Railroading Association—the industry standards-setting body—in developing a new standard for reliable device networking specifically for model railroads, Layout Command Control.
Slack took to the road in the Spring of 2016 to celebrate both the work we’ve done so far and our best ideas to move forward with the Amazing Teams Tour—an afternoon of talks and inspiration for using and building with Slack. At the Toronto and London stops, I gave the technical keynote, providing an overview of the Slack Platform and live demonstrations showing how easy it is to get started developing Slack Apps.
A philosophy of mind for the chatbot revolution. Complex, intelligent chatbot behavior is easier to achieve than you might think. You don’t have to lean heavily on AI voodoo to create a compelling bot experience. A quick stroll through the history of robotics reveals that we can achieve a great deal, starting from very little. Let’s tear down the roadblocks to creating amazing chat bots by understanding how complexity can arise from simplicity.
A conversational revolution is upon us. More and more services, from Lyft to Skype, are providing a conversational user interface, and using messaging apps as their distribution channels and runtime. In this talk, I demonstrated to web developers how to expose their service as a conversation, demoed a few cool examples, and talked about the Slack platform and the Slack fund. Q&A can be viewed separately here.
Collaborative screensharing places some interesting and unusual constraints on live streaming video. Minimizing latency while maintaining legibility of on-screen text means that buffering video is a non-starter. In this talk with Faraz Khan I walk you through these constraints and explain some of Screenhero’s engineering solutions including our no-buffering approach to rendering streaming video.
A fireside chat with the eFounders community. Quentin Nickmans and I spent an hour in conversation about Slack, the Slack Platform, and the opportunities for the Paris startup community.
A 45 min. hands-on workshop with the Paris startup incubator TheFamily. I demonstrated how to build a working Slack bot from scratch, including the best practices and the mistakes to avoid when building a product on the Slack Platform.
A 3-hour workshop designed to take the novice chatbot builder from zero to savvy. In this workshop, I walk participants through using Botkit and api.ai to build a travel agent bot. To date, I have run this workshop at SAP Innovation Center Silicon Valley and twice at Slack Melbourne.
Building bots for Slack is unlike any other messaging platform out there: Slack is a collaborative multiplayer environment where users care less about quirky endearing personalities and more about getting work done. What are the best practices (and anti-patterns) for building effective Slack chatbots? This session will help you understand how to build Slack bots that users will engage with.
A Mac menubar utility to help you remember to lock your Mac. Deadbolt automatically locks your Mac when you remove a USB device of your choosing such as an iPhone or Yubikey, or you can set a global keyboard shortcut. Deadbolt leverages existing habits (taking your phone with you) to help you remember to keep your machine locked when you step away. Authored in Objective-C.
Just listen to SoundCloud. That’s it.
Invite Statler and Walfdorf, the lovable hecklers from the Muppet Show, to your Slack team. These conceptually simple bots engage each other in dialog to make fun of your posts in Slack. Built with Luna and Engine in modern C++, these bots demonstrate how complex bot behavior can arise from very simple stimulus-response pairings. They also serve as the starting point in an ongoing experiment in bot-to-bot communication.
An embedded HTTP(S) server and web framework in modern C++, Luna is designed to be easy to use and integrate with any C++ project that needs to serve HTTP endpoints. Luna’s core philosophy is that it should be easy to use correctly and difficult to use incorrectly. Of course, it should be robust as well.
Connect your desktop app, backend, or game to Slack. Engine provides a statically typed, reliable, and simple to use C++ interface to Slack’s Web, Real Time, and Events APIs using modern, idiomatic C++.