Facilitating the spread of knowledge and innovation in professional software development



Choose your language

InfoQ Homepage Go Language Content on InfoQ

  • Go Gets Fuzz Testing Support in Beta

    The Go team has announced fuzzing support is now available for beta testing. The main goal of the project is to create a unified and end-to-end experience for developers and users of the language, including robust module support, integration with the go command, and new compiler instrumentation.

  • Slack Details Its New Role Management Architecture

    Slack recently posted a detailed description of the software architecture of its new role management system. Slack needed to build a system that was more flexible than the one it previously had. It created a custom containerized Go-based permission service that integrates with its existing systems over gRPC. As a result, its customers' admins now have granular control over what their users can do.

  • CDK for Terraform Adds Go Support and Improves Asset Construction

    Hashicorp recently released version 0.4 of their CDK for Terraform. The CDK allows for writing Terraform configurations in a number of programming languages including C#, Python, TypeScripts, and Java. This release adds experimental support for using Go to write Terraform configurations. Also included are enhanced support for Terraform modules and asset construction.

  • Uber Reveals Its API Gateway's Architecture

    Uber recently detailed the architecture of its internally built API gateway. It described how independent layered components handle each request in the gateway, with each layer being responsible for a different facet of the request lifecycle. A combination of YAML and Apache Thrift defines the gateway configuration, and a code-generated artifact in Go makes up the gateway implementation.

  • Content-Aware Image Resizing in Go and JavaScript

    Oleksii Trekhleb, software engineer at Uber, recently explored the use of dynamic programming to speed up a CPU-intensive content-aware image resizing algorithm. Developers may use content-aware resizing to fit images into a variety of enclosing contexts (e.g., screen form factors, responsive layout container) while preserving the image’s key features.

  • Distributed Application Runtime (Dapr) v1.0 Announced

    The Distributed Application Runtime (Dapr) team announced today that Dapr v1.0 is now available and is considered production-ready. Dapr is an open-source runtime that allows developers to build resilient, microservices-based applications that run on the cloud and edge. With the v1.0 release, developers can deploy Dapr applications to Kubernetes clusters in production scenarios.

  • Using Go in Native macOS Apps with MacDriver

    MacDriver is a recent project aiming to enable interoperability between Go and Objective-C. This will make it possible to write macOS, and potentially iOS apps using Go, as well as reuse Go code in macOS apps written in Objective-C or Swift. InfoQ has taken the chance to speak with MacDriver creator Jeff Lindsay.

  • Generics Enter Go Change Proposal Process

    Generics, one of the features more frequently requested by Go developers, are making their way into the language based on a draft design that has been evolving for the last couple of years and is now entering the language change proposal process.

  • Medium Describes "Rex" - a Go-Based Recommendation Service

    In a recent blog post, Medium describes how it built a recommendation service named "Rex." The original recommendation service was part of the Node.js monolith, and it could only rank 150 stories. However, Medium wanted this service to rank hundreds of thousands of stories per user in under a second. So, they decided to build an entirely new, separate service using Go.

  • Organizing Information about APIs with Google Registry API

    Google Registry API aims to allow developers to organize information about APIs by uploading and sharing machine-readable descriptions of the APIs they use in development.

  • Go 1.16 Will Support Register-Based Calling Convention

    The Go team is working to implement a minimum viable register-based calling convention in Go 1.16. This change could provide 5-10% throughput improvement, according to the Google Go team, while keeping backward compatibility for code using Go current stack-based calling convention.

  • Go 1.15 Improves the Go Linker, Small Object Allocation, and More

    The latest release of the Go language, Go 1.15, focuses on improving the toolchain, runtime, and core libraries. Besides improving the linker and allocation for small objects, Go 1.15 deprecates X.509 CommonName, supports a new embedded tzdata package, and more.

  • Johnny Boursiquot on Serverless Go and SREs as "Diplomats"

    In a recent InfoQ podcast, Johnny Boursiquot, site reliability engineer at Heroku, discussed a range of topics that included: why Go is a useful language for building Function-as-a-Service (FaaS) style applications; how Heroku implements the role of site reliability engineer (SRE); and why the ability to teach is such a valuable skill.

  • Go as a Scripting Language

    Go's growing adoption as a programming language that can be used to create high-performance networked and concurrent systems has been fueling developer interest in its use as a scripting language. While Go is not currently ready out of the box to be used as a replacement for bash or python, this can be done with a little effort.

  • TinyGo Aims to Bring Go to the Internet of Things

    Google-sponsored TinyGo is a new LLVM-based Go compiler to make it possible to run Go programs on microcontrollers, including the Arduino Uno and the BBC micro.bit, as well as modern browsers using Web Assembly.


Is your profile up-to-date? Please take a moment to review and update.

Note: If updating/changing your email, a validation request will be sent

Company name:
Company role:
Company size:
You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.