Exploring function parameter types with Go tooling

I enjoy hacking on Go tooling (Go programs that analyze and manipulate other Go programs), and a few weeks ago an interesting Stack Overflow question caught my attention. Given a function with a parameter of some structure type: func foo(param SomeType) {} How can we examine the...

Pointing to a fork of a Go module

Update 2023-09-20: If you're writing a module that is consumed through go install, check out this separate post to avoid a gotcha. If you're building on top of an Open Source Go library through Go modules, there may be times that you need to use a forked version of the project, s...

Announcing GoReleaser v1.10 — the summer release

Fun fact: it is actually winter now here in Brazil. Regardless, this release is packed with new features, quality-of-life improvements and bug fixes! GoReleaser screenshot Highlights GoReleaser Pro can now skip global after hooks with -skip-after; GoReleaser Pr...

Running Go tests in Parallel

If you're writing software in Go, you're likely to not be hitting any particularly slow tests, as the language and tooling is very efficient. But as written about in Default Your Tests to run in Parallel, I recommend always running in parallel, so you can surface implementation i...

Ignoring slow-running tests in Go

If you're writing software in Go, you're likely to not be hitting any particularly slow tests, as the language and tooling is very efficient. But sometimes there are tests that you don't want to execute when go test is run, for instance if they're full integration/application tes...

Shipping services more quickly with design-first OpenAPI contracts

This article was originally published on the Deliveroo engineering blog. I'm Jamie, and I recently joined the Care Applications team as a Senior Software Engineer. In Care Applications we build and maintain software that connects consumers, riders, restaurants and agents, making...

A limitation on what '<code>go install</code>' can install (as of Go 1.18)

Go programs and Linux glibc versioning

The Maintainers of OSS @ Equinix

A conversation about maintaining OSS and other software-related topics.

Practical Uses Of Blockchain Technology

Introduction A blockchain is an integrated solution of different computer science problems in the form of a single, append-only, publicly available, transparent, and cryptographically auditable database that runs in a distributed and decentralized environment. I’ve heard many t...