Engineering: Go

Engineering

How a Go Program Compiles down to Machine Code

Here at Stream, we use Go extensively, and it has drastically improved our productivity. We have also found that by using Go, the speed is outstanding and since we started using it, we have implemented mission-critical portions of our stack, such as our in-house storage engine powered by gRPC, Raft,…

Engineering

Go 1.11 Rocket Tutorial

This tutorial combines two of my favorite things, the Go programming language and images of SpaceX rocket launches. With Go rapidly picking up adoption in the developer community, its becoming one of the leading languages for building backend systems. Go’s performance is similar to Java and C++, yet…

Engineering

Fixing the billion dollar mistake in Go by borrowing from Rust

panic: runtime error: invalid memory address or nil pointer dereference If you ever used Go, you probably saw this error at least once. Somewhere a nil pointer or nil interface was passed to a function that doesn’t handle nil. In all cases this is a programming error, either the function should hand…

Engineering

Go Client Now Available

Go is one of the fastest growing languages around. We ourselves use it extensively inside the Stream API service. Support for Go was added almost two years ago by MrHenry and HyperWorks, which open-sourced a Go client. We are proud to announce that starting today, we are releasing our official Go AP…

Engineering

Why we switched from Python to Go

Updated May 14th 2019 to better reflect improvements to Go in the last 2 years (package management, better performance, faster compile times and a more mature ecosystem) Switching to a new language is always a big step, especially when only one of your team members has prior experience with that lan…

Engineering

Testing Go at Stream

Stream’s API is used in production by more than 500 companies and 200 million end users. While we like to move fast, we definitely don’t like to break things. An extensive test infrastructure enables us to move quickly and deploy code with confidence. A solid testing workflow is essential to stay pr…

Engineering

Building a Performant API using Go and Cassandra

Introduction Software performance is critical to a SaaS company like Stream and while the majority of our infrastructure is written in Python, we are actively porting portions of our code base to Go. Stream is an API for building scalable feeds and now handles over 20 billion feed updates a month. W…