Get insightful engineering articles delivered directly to your inbox.

— 3 minute read

Seattle Go Meetup: Middleware in Go, InVision Rye

I got an opportunity to represent InVision Engineering at the January 2017 Seattle Golang Meetup with a discussion about Middleware in Golang, and our open source project Rye which brings yet another player to the middleware space. The meetup took place on January 10th, in the Tune space which used to be Seattle’s iconic Belltown Billiards. The meetup featured mostly enthusiasts of Go from the greater Seattle area.

Presentation Talks

The first talk that was presented was two representatives from Microsoft discussing Visual Studio Code and the Go plugin. After that, I presented a 35 minute talk that did an overview of what middleware is in modern web applications, how to build your own middleware, overviews of Negroni, Interpose and Alice and a full overview of the Rye middleware we’ve built here at InVision ( The presentation went over how to use Rye to easily grab metrics from your endpoints, support CORS, JWT and CIDR validation in addition to doing Route Logging. The talk was wrapped up with a challenge to the audience to look through the space and make some choices in addition to pushing your own company into open source. The talk was met with some great enthusiasm and some excellent questions. We were able to interact with the community here and it looks like Seattle’s Go enthusiasts are growing and excited about where Golang can take them.

Personal Benefit

Additionally, for a remote worker I was able to meet up with three other teammates face-to-face for the first time! The meetup was a great success and I look forward to seeing InVision getting out in the community and talking about our great engineering and excellent company culture.

InVision is in production with Go APIs that get deployed with Docker and Kubernetes. We have a great engineering culture that is actually doing a bunch of the things that are being talked about as “migration” at other companies. We’re not fully mature yet in all the greatest technologies, but every day we move closer and it’s a great place for a tech career. I’m loving it here.

Personally, it was a chance for me to get an opportunity to practice my presentation skills. If you have the desire to potentially speak at some of the larger conferences, I suggest participating in a local meetup. It affords you the chance to practice those skills and hone them for being an excellent conference speaker. You’ll quickly figure out how to make compelling slides, how to present, what tools you need for an emergency and how to convince the audience of your subject matter. Just do it!

Come Contribute

Finally, I’m really hoping that Rye can become an opportunity for you to bring your ideas and contribute to our project. There are many more middleware additions we could build into Rye with your help! Please come and submit a Pull Request on GitHub of your favorite middleware ideas and we’ll grow the base functionality in the library! We will be gentle! This is a great opportunity to get your first interaction on a public open source project. There are so many simple things you could add to the library in an isolated way. Get your feet wet with open source and even with Golang!

Presentation Media

If you’d like to check out our presentation you can find it here on YouTube.

Additionally, here are the slides on SlideShare.


Have any questions about Rye, InVision, Golang, or any subject, feel free to reach out to me on Twitter. And remember, we’re hiring great engineers!

Cale Hoopes is a Senior Software Engineer, Core Services on the Platform Team at InVision.

Like what you've been reading? Join us and help create the next generation of prototyping and collaboration tools for product design teams around the world. Check out our open positions.