Jamie Tanna | Software Engineer

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

 Article

Getting a --version flag for Cobra CLIs in Go (2 mins read).

Featured image for sharing metadata for article

How to get Cobra to provide a --version flag.

Sat, 27 May 2023 10:57 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go #goreleaser.

 Article

Performing downtime-inducing AWS RDS changes with no downtime☆ (2 mins read).

Featured image for sharing metadata for article

How to limit your downtime to seconds, instead of minutes, when performing downtime-inducing changes with AWS RDS.

Tue, 23 May 2023 21:33 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #aws #databases.

 Article

The Lazy engineer's guide to running your Go web application to AWS Lambda (4 mins read).

Featured image for sharing metadata for article

How to take a Go web application and move it to AWS Lambda with two lines of code.

Sun, 21 May 2023 21:54 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #aws-lambda #go.

 Article

Which OS and CPU architecture is this binary compiled for? (4 mins read).

Featured image for sharing metadata for article

How to use Go to parse an arbitrary executable to work out the Operating System and CPU architecture it's compiled for.

Mon, 15 May 2023 10:44 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go.

 Article

Creating an HTTP 404 handler for Go net/http servers (2 mins read).

Featured image for sharing metadata for article

How to add a catch-all 404 handler when writing HTTP servers with Go's net/http server.

Thu, 11 May 2023 21:45 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go.

 Article

Serving the current directory over HTTP with Go (1 mins read).

Featured image for sharing metadata for article

How to use Go's standard library to serve the current directory over HTTP.

Tue, 02 May 2023 16:41 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go.

 Article

Getting the commit author details for a GitHub App account (1 mins read).

How to retrieve the git commit author details for a given GitHub App.

Thu, 20 Apr 2023 07:38 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #github.

 Article

Generating Equal methods for Go structs with goderive (3 mins read).

Featured image for sharing metadata for article

How to use goderive to generate an Equal method between structs, so you don't have to.

Mon, 27 Mar 2023 20:52 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go.

 Article

Checking if files are synced between repos with GitHub Actions (2 mins read).

Creating a GitHub Action workflow to indicate when vendored files are out-of-sync between GitHub repos.

Thu, 23 Mar 2023 21:12 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #github #github-actions.

 Article

I don't think I want my next promotion (yet) (5 mins read).

Taking a second to pause and think about what Staff Engineer means to me, and why (right now) I may be looking to stay happy at Senior Engineer.

Wed, 22 Mar 2023 09:26 by Jamie Tanna's profile image Jamie Tanna . #job #career #roodundancies #deliveroo #adhd.

 Article

Working out which Docker namespaces and images you most depend on (2 mins read).

Featured image for sharing metadata for article

How to use dependency-management-data to visualise the most popular Docker namespaces and images you depend on.

Wed, 15 Mar 2023 21:44 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #docker #dependency-management-data.

 Article

Querying JSON with SQLite (1 mins read).

Featured image for sharing metadata for article

How to use json_each and json_extract to query a JSON field in SQLite.

Mon, 13 Mar 2023 21:43 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #sqlite #json.

 Article

Dynamically retrieving the version of a Node.JS/Typescript dependency, at runtime (1 mins read).

How to retrieve metadata about packages that are depended on at runtime.

Sun, 12 Mar 2023 11:21 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #nodejs #typescript.

 Article

Automating boilerplate/scaffolding code with custom code generation in Go, with jen (3 mins read).

Featured image for sharing metadata for article

How to generate Go code using github.com/dave/jennifer.

Sat, 11 Mar 2023 22:11 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go.

 Article

Debugging HTTP Client requests with Go (2 mins read).

Featured image for sharing metadata for article

How to add debug logging to http.Client in Go.

Sat, 11 Mar 2023 10:08 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go.

 Article

Who do these Twilio credentials belong to? (2 mins read).

How to work out whether arbitrary Twilio credentials are valid, and if so, what type they are.

Wed, 08 Mar 2023 20:23 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #twilio.

 Article

Getting a --version flag for Cobra CLIs in Go, built with GoReleaser (2 mins read).

Featured image for sharing metadata for article

How to get Cobra to provide a --version flag when using GoReleaser.

Mon, 27 Feb 2023 17:19 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #go #goreleaser.

 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.

You're currently viewing page 5 of 17, of 850 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..