I'm very excited to announce that in September, I'll be joining Mend to work on the Mend Renovate CLI (the Open Source project commonly known as "Renovate") 馃殌 Readers of my blog will be unsurprised that I was ecstatic to get the opportunity to join the team working on Renovate - Renovate is a project I've been working with for about ~6 years, got a tonne of joy out of, kept a load of software up-to-date, had viral blog posts (and many other opportunities to blog) and it built the foundatio...| Jamie Tanna | Software Engineer
I've written before about why I love Renovate for dependency management and some lessons learned self hosting Renovate. One thing I've not yet shared are some top tips for running Renovate "at scale" that I've found useful, in my own personal capacity. This post is primarily aimed to folks who operate Renovate as-a-service for other parts of their organisation, whether that's Mend Renovate CLI (the Open Source project) or Mend Renovate Community Edition or Mend Renovate Enterprise Edition. Th...| Jamie Tanna | Software Engineer
Starting this post as I'm on the way home from a great few days at GopherCon UK, I had a great time. This year's GopherCon UK was a little different than last year's given this year there were "tutorials" as a third session type. GopherCon UK runs both "workshops" and "tutorials" - the former is a pre-conference, all-day training, whereas "tutorials" are during the conference and last 2 hours - in addition to the core "talks" which are 1 hour in length. The introduction of tutorials alongside...| Jamie Tanna | Software Engineer
馃 This post includes some LLM-derived content 馃 I've recently started to use vale for providing some editing improvements on my writing - I'll write up about that at a later point. As part of using Vale, I've had a few cases where Vale has been very angry with some of the pre-written content I'm amending, or on new content. In some of these cases, I'll disable Vale's language server i.e. :LspStop vale_ls Although Vale won't raise new issues, I'll still see all the diagnostic messages th...| Jamie Tanna | Software Engineer
As I'd noted in Creating cross-compiled Docker images from Go binaries, I've been doing some work recently for container image builds. As I'm putting the finishing touches to my talk at GopherCon UK for the end of this week, I'm creating a pre-built container to simplify setup. However, to debug this issue with go install, I found that I needed to be able to run the cross-compiled ARM64 container on my AMD64 machine. I found StereoLabs' blog post useful, and on top of it needed to install the...| Jamie Tanna | Software Engineer
In a couple of weeks I'm speaking at GopherCon UK 2025, where I'll be facilitating a tutorial What story does your dependency tree tell you about your organisation?. (This would also be described as a "workshop", but GopherCon UK runs both "workshops" and "tutorials" - the former is a pre-conference, all-day training, whereas "tutorials" are during the conference and last 2 hours) As I write this post, I'm on my way back from Manchester, where I presented a sneak peek of the tutorial at the M...| Jamie Tanna | Software Engineer
Last night I clicked "mark as used" on one of my tickets in The Trainline app. It was for the first part of a set of advance single tickets, and I wanted to remove the first leg of the journey from the app, so I only had the next day's tickets in the app. I clicked through the warning to say "you can't undo this", not realising until immediately after I clicked it, that it meant the whole journey would be marked as used, not that single leg of the journey. Given this meant I now had no train ...| Jamie Tanna | Software Engineer
When you're working with SQLite, it's possible that you're using the Write Ahead Log (WAL) to improve performance of the database. As part of this, you may notice that your SQLite database goes from a single-file database like dmd.db to a multi-file setup: % ls -lrt dmd.db* ........................ 577536 Jul 29 11:47 dmd.db ........................ 32768 Jul 29 11:51 dmd.db-shm ........................ 646872 Jul 29 11:51 dmd.db-wal This is absolutely fine, and most tools support this. I rec...| Jamie Tanna | Software Engineer
This week I was very excited to be on Changelog + Friends for a Changelog++ subscribers edition of #define, the gameshow all about words. I wasn't quite sure I'd be very good at it, and I think I'll leave y'all listeners to work out if you feel that held true 馃槄 But most importantly, I had a blast, and it was nice to meet some other Changelog++ members, and have a chance to play with Adam and Jerod. Have a listen and let me know what you think! Changelog & Friends 103: #define: props to ast...| Jamie Tanna | Software Engineer
How to use the `tools.go` pattern to source-track your Go tool dependencies, but without polluting your top-level `go.mod`.| Jamie Tanna | Software Engineer
How to use `go install` to install a binary from the version tracked in `go.mod`.| Jamie Tanna | Software Engineer
Some tips for making Renovate work even better when working on a large multi-team monorepo, where each team has different requirements for their Renovate usage.| Jamie Tanna | Software Engineer
An example of how to reduce the size of a Go module's dependencies by taking advanage of Go module pruning.| Jamie Tanna | Software Engineer
Better dependency management for your tools and without needing to `go install` the tools before executing them.| Jamie Tanna | Software Engineer
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.| Jamie Tanna | Software Engineer
Why I'm very excited about `go tool` landing in Go 1.24.| Jamie Tanna | Software Engineer