Jamie Tanna | Software Engineer

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

 Article

Generating Go code from JSON Schema documents (25 mins read).

Featured image for sharing metadata for article

Looking at a couple of common libraries for generating Go structs from JSON Schema documents.

Thu, 05 Jun 2025 20:38 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go #json-schema.

 Article

Creating cross-compiled Docker images from Go binaries (4 mins read).

Featured image for sharing metadata for article

How to create a (Docker) container image that is cross-compiled for different architectures, and includes a Go binary that is also cross-compiled.

Wed, 04 Jun 2025 10:28 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go #docker.

 Article

Accessing your Renovate Dependency Dashboard, without GitHub/GitLab Issues enabled (3 mins read).

Featured image for sharing metadata for article

Releasing a proof-of-concept to render Dependency Dashboards for repositories that don't have issues enabled, as long as you have a Renovate Report.

Fri, 30 May 2025 18:35 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #renovate.

 Article

Generating a Renovate Report from someone else's repo (1 mins read).

Featured image for sharing metadata for article

How to get a Renovate Report - with full metadata - from any arbitrary repository.

Fri, 30 May 2025 18:35 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #renovate.

 Article

Checking the digest for a Docker image, using crane (2 mins read).

How to get a Docker image digest, using the crane CLI tool.

Wed, 28 May 2025 18:09 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #docker #containers.

 Article

What's the difference between Renovate's depName and packageName? (3 mins read).

Featured image for sharing metadata for article

What the differences are, and where you may want to use one or the other.

Wed, 21 May 2025 10:47 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #renovate.

 Article

My experience as a maintainer (8 mins read).

A guest post for opensource.org, about my experience as a maintainer, as part of 2025's Maintainer Month.

Tue, 20 May 2025 21:09 by Jamie Tanna's profile image Jamie Tanna . #open-source #maintainer-month.

 Article

Creating nested fenced code blocks with Hugo (1 mins read).

Featured image for sharing metadata for article

How to write a Markdown file with a fenced code block, which includes another code block inside it.

Mon, 19 May 2025 16:30 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #hugo.

 Article

Taking more control over your Cobra CLI documentation (2 mins read).

Featured image for sharing metadata for article

Releasing a library to manage the generation of Cobra CLI documentation using text/templates.

Mon, 19 May 2025 16:30 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go.

 Article

Setting up SSH key signing with Git (1 mins read).

Featured image for sharing metadata for article

How to sign your Git commits, using SSH keys.

Mon, 19 May 2025 15:34 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #git.

 Article

Improving the experience of browsing Renovate debug logs (4 mins read).

Featured image for sharing metadata for article

Creating a Terminal User Interface (TUI) application to improve the debugging experience with Renovate's debug logs.

Sun, 18 May 2025 18:19 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #renovate #go #ai.

 Article

Looking back at oapi-codegen's last year (6 mins read).

Featured image for sharing metadata for article

A recap of oapi-codegen's last year, in light of it being Maintainer Month, and continuing to ask for sponsorship.

Thu, 15 May 2025 09:29 by Jamie Tanna's profile image Jamie Tanna . #open-source #oapi-codegen.

 Article

Overriding a Gradle project property which has . and _ characters, without modifying the buildscript (4 mins read).

Featured image for sharing metadata for article

How to use GRADLE_OPTS to safely override a Gradle property (with special characters in its name) without modifying the buildscript.

Wed, 14 May 2025 07:55 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #gradle #renovate.

 Article

How to set up the 'Follow' button on LinkedIn (1 mins read).

How to allow others to follow you on LinkedIn.

Tue, 13 May 2025 12:59 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #linkedin.

 Article

Migrating secrets between two Vault instances (1 mins read).

Featured image for sharing metadata for article

How to copy secrets from one Vault instance to another, reducing the risk of the secrets being stored on disk for too long.

Tue, 13 May 2025 09:26 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #vault.

 Article

Using type assertions in Go with concrete types (2 mins read).

Featured image for sharing metadata for article

How to perform a type assertion on a type in Go that isn't an interface.

Sat, 10 May 2025 14:58 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go.

 Article

Getting Renovate to provide a changelog for digest updates to packages (on GitHub.com) (2 mins read).

Featured image for sharing metadata for article

How to use the new templated changelogUrl functionality to provide more actionable changelogs for digest updates to i.e. GitHub Actions and other digest-pinned dependencies (in this example, on GitHub.com).

Thu, 08 May 2025 11:48 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #renovate.

 Article

Tricking oapi-codegen into working with OpenAPI 3.1 specs (7 mins read).

Featured image for sharing metadata for article

How to get oapi-codegen to interact with OpenAPI 3.1 specs, until it supports OpenAPI 3.1.

Sun, 04 May 2025 19:29 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #oapi-codegen #openapi #go.

 Article

Gotcha: docker inspect can lie about the architecture of an image (3 mins read).

How incorrectly wiring up your Docker multi-platform builds may lead to docker inspect lying about the architecture of said image.

Fri, 25 Apr 2025 22:01 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #docker.

 Article

Rendering diffs for Go's testable examples (3 mins read).

Featured image for sharing metadata for article

A somewhat hacky solution for providing rich diffs for expected-vs-actual comparisons for testable examples in Go.

Thu, 24 Apr 2025 18:12 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go #ruby.

 Article

Authoring Markdown externally and pasting the 'pretty' output into Slack (on Linux) (3 mins read).

How to use xclip to copy the rendered representation of Markdown into a rich-text form into Slack.

Sat, 19 Apr 2025 12:04 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #slack #markdown #linux.

 Article

Things I've learned about building + delivering software for other engineers while working in Engineering Productivity (17 mins read).

13 lessons I've learned about building software for (internal teams of) software engineers.

Thu, 17 Apr 2025 17:37 by Jamie Tanna's profile image Jamie Tanna . #developer-experience #elastic #deliveroo #capital-one #platform-engineering.

 Article

Properly patching packages: persistently producing patches for published projects, particularly practically prevented by patch-package policy (10 mins read).

Featured image for sharing metadata for article

How to use patch-package to modify NPM dependencies, for instance when you're distributing an executable and you want to patch something you rely upon, without relying upon postinstall scripts.

Sat, 12 Apr 2025 21:36 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #nodejs #npm #dependency-management-data.

 Article

Automagically migrating golangci-lint configuration to v2 with Renovate (2 mins read).

Featured image for sharing metadata for article

How to get Renovate PRs that update both the version of golangci-lint to v2, and runs the golangci-lint migrate command for you.

Thu, 10 Apr 2025 10:29 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #renovate #go.

 Article

I'm on Fallthrough: APIs: Design Imperfectly, Improve Relentlessly (2 mins read).

Featured image for sharing metadata for article

Announcing my appearance as a guest co-host on Fallthrough, talking about APIs and how to build them.

Mon, 07 Apr 2025 17:26 by Jamie Tanna's profile image Jamie Tanna . #podcast #go #api.

 Article

Logging into Hashicorp Vault via a GitHub token in the environment (1 mins read).

How to more easily log into Vault with a GitHub token, without having to enter it interactively.

Fri, 28 Mar 2025 12:35 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #vault #github.

 Article

Performing group_concat queries over distinct values, with a custom delimiter, with SQLite (2 mins read).

Featured image for sharing metadata for article

How to avoid SQLite's DISTINCT aggregates must have exactly one argument error when performing a group_concat(distinct ...) with a custom delimiter.

Tue, 25 Mar 2025 11:56 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #sqlite.

 Article

Updating apk add definitions in Dockerfiles (3 mins read).

Featured image for sharing metadata for article

How to use Renovate's Custom Regex manager to extract apk add definitions in a Dockerfile, to allow managing (un)pinned packages.

Mon, 24 Mar 2025 21:36 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #renovate.

 Article

I'm on Fallthrough: An Exploration of APIs, Versioning, & HTTP (1 mins read).

Featured image for sharing metadata for article

Announcing my appearance as a guest on Fallthrough, talking about APIs, versioning, documentation, and more.

Mon, 10 Mar 2025 13:23 by Jamie Tanna's profile image Jamie Tanna . #podcast #go #api.

 Article

Creating single-purpose RSS feeds with Hugo (2 mins read).

Featured image for sharing metadata for article

How to create a new RSS feed in Hugo for a single page's updates.

Sun, 02 Mar 2025 19:46 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #hugo.

 Article

Creating a test harness for validating Renovate Custom Datasource configuration (4 mins read).

Featured image for sharing metadata for article

How to set up a test harness to make it eaiser to modify scary looking JSONata transformations in your Renovate configuration.

Sat, 01 Mar 2025 12:25 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #renovate.

 Article

Product requirements for a "fund your dependency tree" service (12 mins read).

Thinking about what functionality I would want as a funder, or a fundee, for a "fund your dependency tree" service.

Thu, 20 Feb 2025 17:55 by Jamie Tanna's profile image Jamie Tanna . #open-source.

 Article

I'm on Fallthrough: Patching Problems with Persnickety Proxies Purveyed by Paternalistic Princes (2 mins read).

Featured image for sharing metadata for article

Announcing my appearance as a guest host on Fallthrough, discussing the Go module proxy, pondering 'is Go dead?' and whether the Go team at Google have our best interests at heart.

Mon, 17 Feb 2025 13:40 by Jamie Tanna's profile image Jamie Tanna . #podcast #go.

 Article

Go 1.24's omitzero is another one of the best additions to the ecosystem in years (4 mins read).

Featured image for sharing metadata for article

Why I'm very excited about the JSON tag, omitzero, landing in Go 1.24.

Wed, 12 Feb 2025 10:04 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go.

 Article

Celebrating dependency-management-data's second birthday (7 mins read).

Featured image for sharing metadata for article

Reflecting on the last year of the project.

Thu, 06 Feb 2025 09:02 by Jamie Tanna's profile image Jamie Tanna . #dependency-management-data.

 Article

Go 1.24's go tool is one of the best additions to the ecosystem in years (8 mins read).

Featured image for sharing metadata for article

Why I'm very excited about go tool landing in Go 1.24.

Mon, 27 Jan 2025 11:27 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go.

 Article

Getting access to rich-text data from the clipboard (on Linux) (1 mins read).

How to use xclip to retrieve rich-text output from the clipboard.

Sun, 26 Jan 2025 20:19 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #linux #command-line.

 Article

Why is zsh no longer storing history? (1 mins read).

Spoiler: you may be missing both HISTSIZE and SAVEHIST variables.

Wed, 22 Jan 2025 20:56 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #zsh.

 Article

Accessing private Go modules in a Docker container (3 mins read).

Featured image for sharing metadata for article

How to use a Personal Access Token or SSH to access a private Go module, from a Docker container.

Tue, 14 Jan 2025 12:34 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go #docker.

 Article

Getting all comments from a given user on a GitHub Discussion (2 mins read).

Featured image for sharing metadata for article

How to use the GitHub GraphQL API to retrieve all comments from top-level or reply comments on a GitHub Discussion.

Wed, 08 Jan 2025 21:08 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #github #graphql.

 Article

What level of access do I have on that GitHub repository? (2 mins read).

Featured image for sharing metadata for article

How to check, via the GitHub API, what access a given user has on a repository.

Thu, 02 Jan 2025 17:18 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #github.

 Article

Blocking 'Similar' and 'Because you like ...' suggestions on reddit with uBlock Origin (1 mins read).

Featured image for sharing metadata for article

How to use uBlock Origin to remove reddit's suggestions in your home feed.

Tue, 17 Dec 2024 12:31 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #reddit #ublock-origin.

 Article

You can now resolve remote presets when using Renovate's local platform in renovate-graph (2 mins read).

Featured image for sharing metadata for article

Announcing a new release of renovate-graph, which can now follow github> and local> presets.

Thu, 12 Dec 2024 10:42 by Jamie Tanna's profile image Jamie Tanna . #renovate #dependency-management-data.

 Article

Some mixed thoughts on The Changelog Podcast Universe (3 mins read).

Featured image for sharing metadata for article

Some reflections on the bittersweet news about the The Changelog Podcast Universe.

Sun, 08 Dec 2024 21:35 by Jamie Tanna's profile image Jamie Tanna . #podcast.

 Article

Creating renovate-packagedata-diff to diff Renovate package data dumps (3 mins read).

Featured image for sharing metadata for article

Announcing the release of renovate-packagedata-diff which makes it possible to provide a semantic diff between different Renovate package data dumps.

Sun, 08 Dec 2024 17:47 by Jamie Tanna's profile image Jamie Tanna . #renovate #dependency-management-data.

 Article

Some useful SQL(ite) tips I've learned (5 mins read).

Featured image for sharing metadata for article

A collection of SQLite snippets I've picked up recently to improve my queries.

Thu, 05 Dec 2024 09:57 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #sqlite.

 Article

I'm a recipient of the 2024 October Engineering Monthly Award Recognition at Elastic (1 mins read).

Featured image for sharing metadata for article

Announcing winning the 2024 October Engineering Monthly Award Recognition at Elastic.

Fri, 29 Nov 2024 16:46 by Jamie Tanna's profile image Jamie Tanna . #job #career #elastic.

 Article

Gotcha: PersistentPostRunE only runs on successful commands in Cobra (3 mins read).

Featured image for sharing metadata for article

A possible gotcha when using Cobra to perform cleanup in a PersistentPostRunE.

Fri, 29 Nov 2024 10:19 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go.

 Article

Creating a Neovim plugin for my standup updates (3 mins read).

Featured image for sharing metadata for article

Documenting some of my thoughts about writing a (Python) Neovim plugin.

Sun, 24 Nov 2024 20:34 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #neovim #agile #python.

 Article

The joy of an asynchronous, always updating standup (5 mins read).

Featured image for sharing metadata for article

Describing how my team does standups across a globally distributed team.

Sun, 24 Nov 2024 18:35 by Jamie Tanna's profile image Jamie Tanna . #agile #scrum #elastic #adhd.

You're currently viewing page 1 of 17, of 831 posts.

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..