Jamie Tanna | Software Engineer

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

 Article

Using JitPack to Install Gradle Plugins from Git Sources (2 mins read).

Featured image for sharing metadata for article

How to use JitPack to use an unreleased Gradle plugin from a Git repo in your Gradle projects.

Wed, 27 Oct 2021 11:37 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #gradle #java #jitpack.

 Article

Listing Which GitHub Pull Requests are in a Project (2 mins read).

Featured image for sharing metadata for article

How to list the PRs inside a Project on Github, for example, via a Ruby client.

Tue, 26 Oct 2021 09:20 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #github #github-projects #ruby.

 Article

Things I Learned Migrating My Personal APIs To Kubernetes (10 mins read).

Featured image for sharing metadata for article

What I learned while migrating from a number of Java applications on Virtual Private Servers (VPS) to a Kubernetes cluster.

Mon, 25 Oct 2021 14:47 by Jamie Tanna's profile image Jamie Tanna . #kubernetes #personal-infrastructure #sysadmin #java #spring-boot.

 Article

Updating a Secret in Kubernetes with the Java Client (3 mins read).

Featured image for sharing metadata for article

How to use the Kubernetes Java SDK to patch a secret through Kubernetes' secrets API.

Sat, 23 Oct 2021 19:23 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #kubernetes #java.

 Article

How to Undo a git push --force (5 mins read).

Featured image for sharing metadata for article

How to recover from a force push with Git.

Sat, 23 Oct 2021 10:26 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #git.

 Article

Debugging Middleman Code With Middleman's Logger (1 mins read).

Featured image for sharing metadata for article

How to diagnose issues in Middleman, using logging output.

Fri, 22 Oct 2021 08:55 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #middleman.

 Article

Lightweight and Powerful Dependency Injection for JVM-based Applications with Dagger (7 mins read).

How and why you should be using Dagger for your dependency injection.

Tue, 19 Oct 2021 09:35 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #java #aws-lambda #dagger.

 Article

Implementing IndieAuth Server Metadata (2 mins read).

Announcing support for OAuth Server Metadata on my IndieAuth Server.

Fri, 15 Oct 2021 22:35 by Jamie Tanna's profile image Jamie Tanna . #www.jvt.me #indieauth.jvt.me #indieauth #oauth2 #oidc.

 Article

Announcing a Service for Creating an iCalendar feed for event RSVPs: rsvp-calendar.tanna.dev (2 mins read).

Creating a shared service to allow creating iCalendar feeds for tracking what events you're attending.

Fri, 15 Oct 2021 15:00 by Jamie Tanna's profile image Jamie Tanna . #calendar #indieweb #rsvp-calendar.tanna.dev #architect-framework.

 Article

"I Thought You'd Be Paid More" - What I Learnt From Posting My Salary Publicly (3 mins read).

Featured image for sharing metadata for article

A writeup of my lightning talk at Tech Nottingham about my salary post.

Wed, 13 Oct 2021 14:34 by Jamie Tanna's profile image Jamie Tanna . #salary #job #public-speaking #talk #tech-nottingham.

 Article

Testing Data Serialisation/Deserialization in Java (with Jackson) (4 mins read).

Featured image for sharing metadata for article

How to validate your JSON types correctly serialise/deserialise.

Sat, 02 Oct 2021 22:00 by Jamie Tanna's profile image Jamie Tanna . #java #testing #jackson #blogumentation.

 Article

Setting up fluentd to Parse Nested JSON from Docker (2 mins read).

How to configure fluentd to parse the inner JSON from a log message as JSON, for use with structured logging.

Wed, 29 Sep 2021 18:29 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #fluentd #logs #docker #kubernetes #logz.io.

 Article

Tips for Reducing Dependency Upgrade Toil with Renovate (5 mins read).

Featured image for sharing metadata for article

Some tips I've picked up while working with Renovate to keep my projects up-to-date.

Sun, 26 Sep 2021 18:21 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #renovate #open-source #security.

 Article

Packaging Wiremock Extensions into the Standalone Server Runner (2 mins read).

Featured image for sharing metadata for article

How to use Gradle to package a standalone JAR for Wiremock, including any extensions needed.

Sun, 12 Sep 2021 17:58 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #java #gradle #wiremock.

 Article

Testing Java Callbacks with Mockito (1 mins read).

Featured image for sharing metadata for article

How to test invoking a real callback in a Java project, as a unit test.

Fri, 10 Sep 2021 16:04 by Jamie Tanna's profile image Jamie Tanna . #java #mockito #blogumentation.

 Article

Providing a Public Salary History Page (2 mins read).

Publishing my salary and compensation history for public use.

Thu, 09 Sep 2021 10:59 by Jamie Tanna's profile image Jamie Tanna . #salary #job.

 Article

Releasing a Java Library for Gherkin Formatting (4 mins read).

Featured image for sharing metadata for article

Announcing the release of a Java library that can pretty-format a Gherkin feature file.

Tue, 07 Sep 2021 09:15 by Jamie Tanna's profile image Jamie Tanna . #java #gherkin-formatter #cucumber.

 Article

Pushing Back to Git In a Jenkins Multibranch Pipeline (1 mins read).

Featured image for sharing metadata for article

How to push back to a Git repo using a Jenkins multibranch pipeline.

Mon, 06 Sep 2021 10:00 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #jenkins #git.

 Article

Using Bill of Materials to Simplify Dependency Management (3 mins read).

Featured image for sharing metadata for article

Producing a Bill of Materials to simplify dependency management for Java projects.

Sat, 28 Aug 2021 21:37 by Jamie Tanna's profile image Jamie Tanna . #java #blogumentation #gradle #maven.

 Article

Making Your Gherkin Scenarios Written Using Human-Readable Language (4 mins read).

Featured image for sharing metadata for article

A lukewarm take about why you should use natural language, so someone not-as-technical can read it and still derive value.

Tue, 24 Aug 2021 22:40 by Jamie Tanna's profile image Jamie Tanna . #software-testing #cucumber #communication.

 Article

I'm Joining the Cabinet Office (5 mins read).

Featured image for sharing metadata for article

Announcing my move into the Central Digital and Data Office (CDDO) as a Tech Lead.

Thu, 19 Aug 2021 09:36 by Jamie Tanna's profile image Jamie Tanna . #personal #job #announcement #capital-one #cddo.

 Article

Using Abstract Test Classes To Reduce Duplication in Java (4 mins read).

Featured image for sharing metadata for article

How to use Java's abstract classes to reduce duplication of code across unit tests with common functionality.

Wed, 11 Aug 2021 17:28 by Jamie Tanna's profile image Jamie Tanna . #java #junit5 #testing.

 Article

Introducing a Microformats API for Books: books-mf2.fly.dev (2 mins read).

Featured image for sharing metadata for article

Announcing the Microformats translation layer for book data.

Sun, 01 Aug 2021 13:42 by Jamie Tanna's profile image Jamie Tanna . #microformats #micropub #reading #books-mf2.

 Article

Encoding Strings for Embedding in JSON with Ruby on the Command-Line (1 mins read).

Featured image for sharing metadata for article

How to easily convert a string to a format that can be used as a value for JSON strings.

Thu, 29 Jul 2021 22:36 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #json #ruby #command-line.

 Article

Programatically Comparing Versions Using Chef's Versioning Schemes (1 mins read).

Featured image for sharing metadata for article

How to use Chef's versioning classes to determine whether a version constraint is matched.

Thu, 15 Jul 2021 20:48 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef #ruby.

 Article

Parsing Encoded JSON Strings on the Command-Line with Ruby (1 mins read).

Featured image for sharing metadata for article

How to decode an encoded JSON string.

Mon, 28 Jun 2021 19:12 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #command-line #json #ruby.

 Article

Testing that your Spring Boot Application Context is Correctly Configured (2 mins read).

Featured image for sharing metadata for article

How to improve the tests you've got to validate that Spring Boot's context is set up correctly.

Fri, 25 Jun 2021 09:09 by Jamie Tanna's profile image Jamie Tanna . #java #spring-boot #testing.

 Article

Decrypting Encrypted JSON Web Tokens (JWE) with Ruby (1 mins read).

Featured image for sharing metadata for article

How to use Ruby to decrypt encrypted JSON Web Token objects.

Tue, 22 Jun 2021 22:18 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #ruby #jwt.

 Article

Running Multiple JDK Versions with the Gradle Toolchains Configuration (2 mins read).

Featured image for sharing metadata for article

How to use the Gradle's toolchain configuration to configure multiple JDKs on your machine.

Wed, 09 Jun 2021 09:04 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #java #gradle.

 Article

Testing Data Serialisation/Deserialization using JsonTest with Spring Boot (3 mins read).

Featured image for sharing metadata for article

How to use the @JsonTest test type in Spring Boot to validate your JSON types correctly serialise/deserialise.

Wed, 02 Jun 2021 09:21 by Jamie Tanna's profile image Jamie Tanna . #java #testing #spring-boot #blogumentation.

 Article

Default Your Tests to run in Parallel (2 mins read).

Discussing the benefits you can achieve by having parallel-by-default.

Tue, 01 Jun 2021 14:50 by Jamie Tanna's profile image Jamie Tanna . #software-quality #software-testing #quality-engineering #testing.

 Article

Writing Better Wiremock Stubs (3 mins read).

Featured image for sharing metadata for article

How to improve the specificity of Wiremock tests to allow for not clobbering other scenarios, and enabling scalable test runs.

Tue, 01 Jun 2021 14:50 by Jamie Tanna's profile image Jamie Tanna . #software-quality #software-testing #quality-engineering #testing #wiremock.

 Article

Writing Better Tests (1 mins read).

Announcing a new series of posts about improving the way we write tests.

Mon, 31 May 2021 22:04 by Jamie Tanna's profile image Jamie Tanna . #software-quality #software-testing #quality-engineering #testing.

 Article

Migrating Your Spring Boot Application to use Structured Logging (6 mins read).

Featured image for sharing metadata for article

How to make your Spring Boot services more supportable by migrating to JSON-emitting structured logging.

Mon, 31 May 2021 21:09 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #spring #spring-boot #java #slf4j #logs.

 Article

Avoiding NoClassDefFoundError errors when using slf4j-test with Logback and Maven (2 mins read).

Featured image for sharing metadata for article

How to exclude Logback from the classpath when testing your logs using slf4j-test and Maven.

Sat, 29 May 2021 15:44 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #testing #java #slf4j.

 Article

Marking up my Curriculum Vitae with Microformats2 (2 mins read).

Featured image for sharing metadata for article

Creating a public, metadata-rich Curriculum Vitae / Resume for myself at https://hire.jvt.me.

Tue, 25 May 2021 10:11 by Jamie Tanna's profile image Jamie Tanna . #microformats #cv #interviewing #hire.jvt.me.

 Article

Configuring a Jenkins Multibranch Pipeline to Specify the Trust Permissions with Job DSL (1 mins read).

Featured image for sharing metadata for article

How to specify the trust permissions for a GitHub project on a Jenkins Multibranch pipeline, when using Job DSL.

Mon, 10 May 2021 15:49 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #jenkins #job-dsl.

 Article

Features I Want In My Social Reader (6 mins read).

What sort of functionality do I want in my social reader, so I can follow awesome people's thoughts more easily?

Sat, 01 May 2021 15:12 by Jamie Tanna's profile image Jamie Tanna . #indieweb #microsub #feed #social-media.

 Article

How to get a field with Reflection in Java (1 mins read).

Featured image for sharing metadata for article

How to use Java's Reflection to get access to a private of a class.

Thu, 29 Apr 2021 19:16 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #java.

 Article

Server-less Wiremock, or Using Wiremock Without an HTTP Server (3 mins read).

Featured image for sharing metadata for article

How to match Wiremock's stubs without running an HTTP Server.

Thu, 29 Apr 2021 18:51 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #java #testing #wiremock.

 Article

Adding API Versioning to your Environment-Agnostic Functional Acceptance Tests (6 mins read).

Featured image for sharing metadata for article

How to adapt the Proxy pattern to allow for testing against a versioned API.

Wed, 28 Apr 2021 18:59 by Jamie Tanna's profile image Jamie Tanna . #java #testing #testing #software-testing #cucumber #software-quality #quality-engineering.

 Article

Building a Multibranch Pipeline on a Schedule (2 mins read).

Featured image for sharing metadata for article

A more convenient solution for setting up periodic rebuilds of certain branches in a Jenkins Multibranch pipelines.

Mon, 26 Apr 2021 09:12 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #jenkins #job-dsl.

 Article

Disabling a Multibranch Pipeline using Job DSL (1 mins read).

Featured image for sharing metadata for article

How to disable all branches of a MultibranchWorkflowJob with Jenkins Job DSL.

Sat, 24 Apr 2021 19:44 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #jenkins #job-dsl.

 Article

Uploading Community Cookbooks from Supermarket to Chef Server (1 mins read).

Featured image for sharing metadata for article

How to upload a given community cookbook from Chef Supermarket to Chef Server, using Berkshelf.

Mon, 19 Apr 2021 09:02 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef #berkshelf.

 Article

Constructing an Ordered Dependency Graph for Chef Cookbooks, using Berkshelf (3 mins read).

Featured image for sharing metadata for article

How to create a dependency graph for a given cookbook's dependencies to understand the order to install them in.

Sun, 18 Apr 2021 11:51 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef #berkshelf #ruby.

 Article

Using Dynamically Generated Non-AWS Owned SSH Keys with Test Kitchen on EC2 (3 mins read).

Featured image for sharing metadata for article

How to set up kitchen-ec2 to use an SSH key that isn't available in AWS by amending the user-data of the created EC2 instance.

Fri, 16 Apr 2021 17:21 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef #test-kitchen #aws #ssh.

 Article

Waiting for SSH service on Test Kitchen with the Docker driver (1 mins read).

Featured image for sharing metadata for article

How to resolve Waiting for SSH service when running kitchen-docker.

Wed, 07 Apr 2021 17:09 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef #test-kitchen #docker.

 Article

Setting up a Test Environment for Job DSL Projects (6 mins read).

Featured image for sharing metadata for article

How to tweak your Job DSL configuration to allow working with test environments, to validate jobs configure correctly.

Tue, 06 Apr 2021 09:43 by Jamie Tanna's profile image Jamie Tanna . #jenkins #job-dsl.

 Article

Working with a Git remote's default branch, using origin/HEAD (2 mins read).

Featured image for sharing metadata for article

How to interact with the default branch for a remote repo, as well as update it if needed.

Wed, 31 Mar 2021 19:15 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #git.

 Article

Better Chef Reporting for Automated Pipelines (1 mins read).

Featured image for sharing metadata for article

How to get better machine-parseable reports for your Chef Pipelines.

Mon, 29 Mar 2021 19:39 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef #jenkins #test-kitchen #rubocop #cookstyle #rspec.

You're currently viewing page 9 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..