Jamie Tanna | Software Engineer

  • /now
  • Blog
  • Popular Posts
  • Archives
  • Search
  • Salary History
  • Open Source Projects I Maintain
  • Support Me
  • Hire Me (CV/Resume)

 Article

Cross-compiling a CGO project using Goreleaser (2 mins read).

Featured image for sharing metadata for article

How to use goreleaser-cross to cross-compile a Go command-line tool.

Fri, 24 Feb 2023 21:28 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go #goreleaser #gitlab-ci.

 Article

Introducing dmd, a command-line tool for Dependency Management Data (DMD) (2 mins read).

Featured image for sharing metadata for article

Introducing a command-line tool for better interacting with databases for managing dependency management data.

Mon, 20 Feb 2023 21:56 by Jamie Tanna's profile image Jamie Tanna . #dependency-management-data #announcement #go.

 Article

Getting a GitHub App installation token on the command-line (2 mins read).

How to get a GitHub App installation token (using Typescript) for a given installation.

Sat, 11 Feb 2023 21:42 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #typescript #github.

 Article

Passing a private key as an environment variable (1 mins read).

How to convert a PEM-encoded private key in a form to be stored in an environment variable.

Sat, 11 Feb 2023 21:21 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #shell #certificates.

 Article

Listing the status of your branch protection in GitHub (1 mins read).

Featured image for sharing metadata for article

Creating a command-line Go tool to list the branch protection status of your repositories.

Fri, 03 Feb 2023 17:16 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #github.

 Article

Getting comfortable with the lack of privacy with my Week Notes (6 mins read).

Looking back at a few years of writing week notes publicly, and how I approach privacy around what I (want to) write in them.

Wed, 01 Feb 2023 19:39 by Jamie Tanna's profile image Jamie Tanna . #blogging #privacy #www.jvt.me.

 Article

Determining missing translation keys from gettext .po files (1 mins read).

Creating a Go command to check for missing translation keys across gettext .po files.

Wed, 01 Feb 2023 09:40 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go.

 Article

Setting up default Renovate configuration while allowing overriding of that configuration (2 mins read).

Featured image for sharing metadata for article

How to run Renovate to provide some defaults for repos that aren't opted-in, as well as allowing repos to opt-in.

Mon, 30 Jan 2023 09:41 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #renovate.

 Article

Does this Slack Webhook still work? (1 mins read).

How to check if a Slack Webhook is still active.

Mon, 23 Jan 2023 14:04 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #slack.

 Article

Who does this NPM token belong to? (2 mins read).

Featured image for sharing metadata for article

How to work out whether an arbitrary NPM token is valid, and if so, which user account it belongs to.

Mon, 23 Jan 2023 11:44 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #nodejs.

 Article

Performing bulk changes across Git(Hub) Repos with Turbolift and Microplane (4 mins read).

Using Turbolift and Microplane to enact changes across many Git(Hub) repositories.

Sat, 21 Jan 2023 15:14 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #git #github #turbolift #microplane #automation.

 Article

Automagically determining which AWS Lambda runtimes are deprecated or end-of-life (2 mins read).

Featured image for sharing metadata for article

Introducing a tool that can list AWS Lambda functions and whether their runtimes are approaching or past deprecation/end-of-life dates.

Fri, 13 Jan 2023 11:59 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #aws-lambda.

 Article

Who do these AWS credentials belong to? (1 mins read).

Featured image for sharing metadata for article

How to work out whether arbitrary AWS credentials are valid, and if so, what account/role/user they're bound to.

Mon, 09 Jan 2023 11:37 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #aws.

 Article

What I learned rebuilding our CI/CD pipelines for Chef Cookbooks (22 mins read).

Featured image for sharing metadata for article

How a focus on developer experience and user needs helped us rebuild (Capital One's) CI/CD pipelines for Chef cookbooks the right way.

Mon, 09 Jan 2023 09:30 by Jamie Tanna's profile image Jamie Tanna . #chef #capital-one #jenkins #job-dsl #developer-experience.

 Article

Listing secrets stored in CircleCI (1 mins read).

Featured image for sharing metadata for article

How to list all the secrets in your CircleCI organisation.

Fri, 06 Jan 2023 09:36 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #circleci #go.

 Article

Enabling/Disabling GitHub Issues via the GitHub API (1 mins read).

Featured image for sharing metadata for article

How to use the GitHub API to update whether Issues are enabled on a given repo or not.

Tue, 03 Jan 2023 17:58 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #github.

 Article

Using Renovate to manage updates to go install commands (1 mins read).

Featured image for sharing metadata for article

How to run Renovate to manage dependency version updates for cases where you're go installing them.

Tue, 20 Dec 2022 09:40 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #renovate #go.

 Article

Using Renovate to manage updates to golangci-lint versions (1 mins read).

Featured image for sharing metadata for article

How to run Renovate to manage your golangci-lint dependency versions, using the official installation script.

Thu, 15 Dec 2022 21:44 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #renovate #go.

 Article

Performing arbitrary executions with Renovate (2 mins read).

Featured image for sharing metadata for article

How to run Renovate for one-off package upgrades, rather than using it for longer term maintenance.

Mon, 12 Dec 2022 21:27 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #renovate #open-source #security #typescript.

 Article

Getting diagnosed with ADHD (10 mins read).

Looking back at the process to get diagnosed with ADHD.

Fri, 09 Dec 2022 10:12 by Jamie Tanna's profile image Jamie Tanna . #personal #adhd #autism #neurodiversity.

 Article

Prefilling OAuth2 scopes for GitHub Personal Access Tokens (1 mins read).

Featured image for sharing metadata for article

How to make it easier to set up your OAuth2 scopes on a Personal Access Token with GitHub.

Sun, 04 Dec 2022 21:34 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #github #oauth2.

 Article

Prefilling OAuth2 scopes for GitLab Personal Access Tokens (1 mins read).

Featured image for sharing metadata for article

How to make it easier to set up your OAuth2 scopes on a Personal Access Token with GitLab.

Sun, 04 Dec 2022 21:34 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #gitlab #oauth2.

 Article

Performing AND conditionals in HAProxy (1 mins read).

Featured image for sharing metadata for article

How to string multiple conditions together in HAProxy to perform an AND.

Thu, 10 Nov 2022 12:52 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #haproxy.

 Article

Creating a JSON Patch endpoint in Go (2 mins read).

Featured image for sharing metadata for article

How to create a server-side JSON Patch API endpoint in Go.

Wed, 09 Nov 2022 15:39 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #api #json-patch.

 Article

Extracting the dependency tree from Renovate for given repositories (4 mins read).

Featured image for sharing metadata for article

Creating a (hacky) solution to retrieve the dependency graph from Renovate for a set of repositories.

Tue, 01 Nov 2022 17:03 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #renovate #open-source #security #typescript #dependency-management-data.

 Article

Listing all GitHub repositories in a GitHub Organisation (3 mins read).

Featured image for sharing metadata for article

How to use the GraphQL API to list all the repositories that can be found in a given GitHub organisation.

Wed, 26 Oct 2022 14:21 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #github #graphql.

 Article

'Should I be able to learn how to be more productive at work?' (3 mins read).

Looking at whether learning how to be more productive, during work hours, is a reasonable thing to do.

Sat, 22 Oct 2022 10:10 by Jamie Tanna's profile image Jamie Tanna . #career #productivity.

 Article

Does the tech industry thrive on free work? (6 mins read).

Thinking about how there are subtle expectations to work on your career outside of tech, and how it's not necessarily great.

Sat, 22 Oct 2022 09:38 by Jamie Tanna's profile image Jamie Tanna . #career #job #adhd #open-source #mental-health.

 Article

Retrofitting OpenAPI documentation to your Rails codebase (12 mins read).

Featured image for sharing metadata for article

How to take a Rails codebase and introduce OpenAPI documentation and contract tests, in a test-driven manner.

Thu, 20 Oct 2022 14:52 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #ruby #rails #rspec #openapi #testing #contract-testing #tdd.

 Article

Phew, that's a lot of traffic πŸ˜… What happens when a blog post goes viral? (5 mins read).

Featured image for sharing metadata for article

Looking at some of the things that happen when my posts have gone viral, from how much traffic it brings, to the various sources of traffic.

Fri, 14 Oct 2022 17:13 by Jamie Tanna's profile image Jamie Tanna . #blogging #analytics.

 Article

I've got ADHD (4 mins read).

Announcing my recent diagnosis with ADHD Inattentive Type.

Tue, 04 Oct 2022 09:29 by Jamie Tanna's profile image Jamie Tanna . #personal #adhd #neurodiversity.

 Article

Analysing our dependency trees to determine where we should send Open Source contributions for Hacktoberfest (8 mins read).

Featured image for sharing metadata for article

How we (at Deliveroo) are using GitHub Advanced Security's dependency scanning functionality to determine what our most popular dependencies are, and whether we can find any Open Source contributions for the month of Hacktoberfest.

Thu, 29 Sep 2022 13:10 by Jamie Tanna's profile image Jamie Tanna . #deliveroo #open-source #hacktoberfest.

 Article

Lessons learned since posting my salary history publicly (8 mins read).

What I've learned in the year since posting my salary history publicly.

Wed, 21 Sep 2022 09:13 by Jamie Tanna's profile image Jamie Tanna . #salary #job #capital-one #cddo #deliveroo.

 Article

Gotcha: testable examples in Go need an output comment (2 mins read).

Featured image for sharing metadata for article

Beware that your Go Example tests may not actually be running.

Tue, 30 Aug 2022 09:20 by Jamie Tanna's profile image Jamie Tanna . #go #testing #blogumentation.

 Article

Introducing the tidied tool, to more easily check whether go mod tidy has been run (2 mins read).

Featured image for sharing metadata for article

Why I've created a command-line application called tidied to check go mod tidy has been run.

Thu, 18 Aug 2022 10:08 by Jamie Tanna's profile image Jamie Tanna . #go.

 Article

Converting HTTP requests to Wiremock stubs, with Go (2 mins read).

Featured image for sharing metadata for article

How to take an HTTP request and convert it into a Wiremock JSON mapping, on the command-line, in Go.

Fri, 12 Aug 2022 17:17 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #testing #go #wiremock.

 Article

The first script I write in a new job: gg (2 mins read).

Why writing a script to easily git clone repos is my first step as a new starter.

Fri, 12 Aug 2022 16:25 by Jamie Tanna's profile image Jamie Tanna . #automation #scripting.

 Article

Learning a new language, or how I gained familiarity with Go (10 mins read).

Featured image for sharing metadata for article

How I've eased into a new language, Go, as a Senior Software Engineer, and some initial thoughts on the language.

Fri, 12 Aug 2022 15:58 by Jamie Tanna's profile image Jamie Tanna . #go.

 Article

Releasing a set of test cases for Content Negotiation (2 mins read).

Introducing a repo for test cases to validate how you're performing server-driven content negotiation.

Sun, 07 Aug 2022 21:13 by Jamie Tanna's profile image Jamie Tanna . #content-negotiation.

 Article

Releasing a Go library for content-type negotiation (2 mins read).

Featured image for sharing metadata for article

Introducing a new Go library for performing server-driven content negotiation.

Fri, 05 Aug 2022 09:28 by Jamie Tanna's profile image Jamie Tanna . #go #content-negotiation.

 Article

Using generics to get a pointer to any type, in Go (1 mins read).

Featured image for sharing metadata for article

How to use Go generics to create a helper method for getting a pointer to any type.

Fri, 29 Jul 2022 16:21 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go.

 Article

Optional configuration for configuring Go code (2 mins read).

Featured image for sharing metadata for article

How to use optional types to allow configuring your library's Go code.

Fri, 22 Jul 2022 16:55 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go.

 Article

Building a Go RESTful API with design-first OpenAPI contracts (6 mins read).

Featured image for sharing metadata for article

How to use oapi-codegen to generate an RESTful API using design-first OpenAPI and code generation.

Tue, 12 Jul 2022 15:54 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #openapi #go #api.

 Article

Pointing to a fork of a Go module (1 mins read).

Featured image for sharing metadata for article

How to pin your Go modules to a given fork of a repository.

Thu, 07 Jul 2022 09:51 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go.

 Article

Running Go tests in Parallel (2 mins read).

Featured image for sharing metadata for article

How to get Go tests to run in parallel for speed.

Fri, 01 Jul 2022 16:52 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go #testing.

 Article

Ignoring slow-running tests in Go (1 mins read).

Featured image for sharing metadata for article

How to use Go's -short testing mode to avoid running slower tests.

Fri, 01 Jul 2022 16:23 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go #testing.

 Article

Shipping services more quickly with design-first OpenAPI contracts (8 mins read).

Featured image for sharing metadata for article

How using OpenAPI has led to being able to ship a new service more effectively, by removing the need to write scaffolding, and instead focus on the business logic.

Mon, 27 Jun 2022 16:27 by Jamie Tanna's profile image Jamie Tanna . #deliveroo #openapi #go #api.

 Article

Automating boilerplate/scaffolding code with custom code generation in Go (4 mins read).

Featured image for sharing metadata for article

How to use Go's code generation tooling to add custom code generation to your project.

Sun, 26 Jun 2022 08:39 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go.

 Article

Describing a multi-value querystring parameter in OpenAPI (1 mins read).

Featured image for sharing metadata for article

How to define a querystring parameter that has multiple values, in OpenAPI.

Wed, 22 Jun 2022 18:24 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #openapi #api #json-patch.

 Article

Stubbing out the Go http.Client to test an HTTP HandlerFunc (2 mins read).

Featured image for sharing metadata for article

How to write a unit test to validate your router's HTTP handlers work, by stubbing out the http.Client implementation.

Wed, 22 Jun 2022 09:27 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go.

You're currently viewing page 5 of 17, of 833 posts.

Go to the previous page

Go to the next page

Other links that may be of interest:

  • /slashes
  • Follow This Blog (i.e. via RSS feed)
  • Talks
  • Blogroll
  • Why is my site www.jvt.me?
  • Archives
  • Post Visualisation
  • Manual of Me
  • Typography
  • My name and pronounciation
  • RSVPs
  • Links
  • Post by Kind

This site is part of an IndieWeb Webring πŸ•ΈπŸ’

  • Previous site
  • Next site

Want to get in touch? Drop me an email at  hi@jamietanna.co.uk. I try to get back to everything, if I don't reply in a couple of weeks, feel free to give me a nudge!

You can also check out a list of all the places /elsewhere you can find me.

© 2025 Jamie Tanna. Post content and code snippets licensing is detailed on respective pages, otherwise default to Creative Commons Attribution Non Commercial Share Alike 4.0 International and Apache License 2.0.
Site design released under the MIT License.
Proudly hosted on AWS using S3 + CloudFront, deployed by GitLab CI, and generated by 4a2feb8ddf on Sat, 18 Apr 2020 14:40:29 +0100..