Articles

The only developer qualification that matters

The only developer qualification that matters

Use your existing experience to build an life of more meaning

Nov 14, 2025Tom Gregory5 min read
Developers who hate networking should try this

Developers who hate networking should try this

How to scale your impact without going to meetups and conferences

Nov 7, 2025Tom Gregory4 min read
If You Can Learn Coding You Can Learn Anything

If You Can Learn Coding You Can Learn Anything

You already know how to do one of the hardest things there is

Sep 26, 2025Tom Gregory3 min read
I Didn’t Enjoy Coding Until I Tried This

I Didn’t Enjoy Coding Until I Tried This

How to add curiosity to your development process

Sep 23, 2025Tom Gregory6 min read
It took TEN coding jobs to learn this hard lesson

It took TEN coding jobs to learn this hard lesson

How I was finally forced into following my own path

Jun 19, 2025Tom Gregory3 min read
How To Build an Effective Buy Button for Your Website

How To Build an Effective Buy Button for Your Website

The 'Buy' button is the most important button on your website. Here's the simplest way to create a visually appealing button so customers can start purchasing your product.

Nov 30, 2024Tom Gregory7 min read
Why I’m Moving My Operations to America

Why I’m Moving My Operations to America

In software, simplicity is key. Follow these five strategies to make sure complexity doesn't sneak in the back door..

Nov 28, 2024Tom Gregory5 min read
I Almost Quit Coding Until I Discovered This

I Almost Quit Coding Until I Discovered This

Why every developer must build their own software project at least once.

Nov 21, 2024Tom Gregory7 min read
Most Developers Can't Build an App in a Month—I Built This One in Just 7 Days

Most Developers Can't Build an App in a Month—I Built This One in Just 7 Days

Ever since I realised I can use existing skills to launch my own software, my mission has been to build as many projects as possible. So I set myself the goal of building project #3 in just 7 days.

Nov 12, 2024Tom Gregory13 min read
Building Software Got So Easy That Anyone Can Do It

Building Software Got So Easy That Anyone Can Do It

Nov 1, 2024Tom Gregory3 min read
How To Deploy Nuxt to AWS Lambda

How To Deploy Nuxt to AWS Lambda

Nuxt's default deployment mode is as a continuously running *Node.js* server. That's a problem for developers who prefer cost-efficient serverless technologies like AWS Lambda.

Oct 29, 2024Tom Gregory11 min read
The Only Time I Ever Received a Cheque From America

The Only Time I Ever Received a Cheque From America

Oct 18, 2024Tom Gregory3 min read
Why Senior Developers Must Write Their Own Rulebook

Why Senior Developers Must Write Their Own Rulebook

Sep 20, 2024Tom Gregory3 min read
The One Thing New Developers Get Wrong About Building Software

The One Thing New Developers Get Wrong About Building Software

Sep 13, 2024Tom Gregory4 min read
Why I Stopped Trying To Be an Expert

Why I Stopped Trying To Be an Expert

Sep 6, 2024Tom Gregory7 min read
How I Pre-Sold 62 Copies of My Ebook Before Writing a Single Word

How I Pre-Sold 62 Copies of My Ebook Before Writing a Single Word

Aug 24, 2024Tom Gregory6 min read
How To Setup Custom A/B Testing in AWS

How To Setup Custom A/B Testing in AWS

Jun 20, 2024Tom Gregory14 min read
Running Java in AWS Lambda

Running Java in AWS Lambda

Apr 29, 2024Tom Gregory11 min read
7 Hidden Spring Boot Features You Need To Enable NOW!

7 Hidden Spring Boot Features You Need To Enable NOW!

Apr 17, 2024Tom Gregory11 min read
Using Gradle Build Scan To Optimise Your Build Process

Using Gradle Build Scan To Optimise Your Build Process

Nov 21, 2023Tom Gregory5 min read
Run Tests in Parallel To Speed Up Your Gradle Build

Run Tests in Parallel To Speed Up Your Gradle Build

When working with slow tests, parallelising them is the first step towards faster builds.

Nov 13, 2023Tom Gregory4 min read
Faster Tests By Disabling Gradle Test Reports

Faster Tests By Disabling Gradle Test Reports

Don't waste any more time waiting for tests to run locally by implementing this quick build script fix.

Nov 8, 2023Tom Gregory5 min read
5 Quotes by Gradle Founder Hans Dockter That'll Change How You Build Software

5 Quotes by Gradle Founder Hans Dockter That'll Change How You Build Software

Hans Dockter quotes that'll open your mind to new ways of building software.

Oct 19, 2023Tom Gregory6 min read
Design Your Own Test Automation Pyramid

Design Your Own Test Automation Pyramid

Everyone wants fast, maintainable tests, so how do you best combine the test pyramid model with the realities of your own project?

Oct 13, 2023Tom Gregory8 min read
Did You Update Yet to Latest Java 21?

Did You Update Yet to Latest Java 21?

Streamline your code with new language features in this latest Java LTS release.

Sep 19, 2023Tom Gregory6 min read
The 5 Step Process To Migrate to the Gradle Kotlin DSL

The 5 Step Process To Migrate to the Gradle Kotlin DSL

Switching your build scripts to Kotlin doesn't have to be hard with this step-by-step process.

Sep 12, 2023Tom Gregory5 min read
Don’t Use Gradle Without Understanding These Kotlin Essentials

Don’t Use Gradle Without Understanding These Kotlin Essentials

Gradle is now Kotlin first, so learn these 5 Kotlin language features to get comfortable in Kotlin build scripts.

Sep 6, 2023Tom Gregory8 min read
Using JUnit 5 With Gradle's Kotlin DSL

Using JUnit 5 With Gradle's Kotlin DSL

Learn this simple build script configuration to run JUnit 5 tests.

Aug 15, 2023Tom Gregory7 min read
10 Reasons Why It’s Still OK To Love Java

10 Reasons Why It’s Still OK To Love Java

After 30 years, Java is still relevant and arguably more useful in many situations than other languages.

Jul 14, 2023Tom Gregory4 min read
Why Can You Write Gradle in 2 Different Languages?

Why Can You Write Gradle in 2 Different Languages?

The very first version of Gradle had build scripts written in the dynamic Groovy language. Why then, years later, did team Gradle add Kotlin as a 2nd option?

May 7, 2023Tom Gregory4 min read
Did you update to Gradle 8 yet?

Did you update to Gradle 8 yet?

Feb 18, 2023Tom Gregory3 min read
The Truth About Being a Digital Nomad

The Truth About Being a Digital Nomad

35 million people now make the most of their location independence as digital nomads. But there are 3 categories of digital nomad, each with its pros and cons. Could one of these lifestyles work for you?

Feb 11, 2023Tom Gregory7 min read
3 Ways To Effectively Manage Gradle Projects in GitHub

3 Ways To Effectively Manage Gradle Projects in GitHub

Jan 7, 2023Tom Gregory6 min read
Gradle vs. npm

Gradle vs. npm

Dec 31, 2022Tom Gregory7 min read
What Java Developers Need To Know About NPM

What Java Developers Need To Know About NPM

For Java devs, npm can be a mystery. Jump in and learn the npm essentials.

Dec 24, 2022Tom Gregory12 min read
13 Key Gradle Fundamentals From A Hello World Project

13 Key Gradle Fundamentals From A Hello World Project

Dec 14, 2022Tom Gregory8 min read
Ultimate CORS Guide for Developers

Ultimate CORS Guide for Developers

Why CORS exists, how it works, and how to use it to properly setup cross-origin requests.

Dec 6, 2022Tom Gregory24 min read
5 Career Pivots Away From Software Development

5 Career Pivots Away From Software Development

Oct 14, 2022Tom Gregory9 min read
13 Simple Ways To Edit Code Faster in IntelliJ IDEA

13 Simple Ways To Edit Code Faster in IntelliJ IDEA

Are you making the most of IntelliJ IDEA for basic code editing? Here are 13 time-saving shortcuts for navigating, highlighting, and moving code.

Aug 28, 2022Tom Gregory5 min read
Which JDK Version and Vendor Should You Use on Your Project?

Which JDK Version and Vendor Should You Use on Your Project?

With so many versions and vendors available, choosing which JDK to use can be confusing. Discover the most important facts to help you decide.

Jul 29, 2022Tom Gregory14 min read
Optional in Java: Everything You Need To Know

Optional in Java: Everything You Need To Know

Learn everything you need to know about Java's Optional: how it works, what problems it helps solve, and when not to use it.

Jul 17, 2022Tom Gregory22 min read
Jar vs. Zip Files: The Key Differences

Jar vs. Zip Files: The Key Differences

Learn everything you need to know about the differences between jar and zip files, with practical tips and examples along the way.

May 15, 2022Tom Gregory8 min read
JDK vs. JRE: The Key Differences

JDK vs. JRE: The Key Differences

Discover why the JDK & JRE exist, their differences & similarities, and practically how to use them.

May 10, 2022Tom Gregory9 min read
JAVA_HOME vs. PATH Environment Variables

JAVA_HOME vs. PATH Environment Variables

Learn what JAVA_HOME and PATH do, when to use them, and how to set them up in Windows.

May 2, 2022Tom Gregory6 min read
10 Best Gradle Plugins for Java Projects

10 Best Gradle Plugins for Java Projects

May 1, 2022Tom Gregory6 min read
Integration Test Code Coverage with SonarQube and Jacoco

Integration Test Code Coverage with SonarQube and Jacoco

Apr 18, 2022Tom Gregory6 min read
How to Deploy Eureka into AWS ECS

How to Deploy Eureka into AWS ECS

Discover how to setup Eureka in AWS ECS following an example project.

Apr 13, 2022Tom Gregory10 min read
The Unknown Maven Repository System Powering Java

The Unknown Maven Repository System Powering Java

There's another side to Maven: a vital repository system serving up dependencies for the millions of daily Java builds.

Apr 7, 2022Tom Gregory7 min read
10 Tips to Use Gradle With IntelliJ IDEA in 2022

10 Tips to Use Gradle With IntelliJ IDEA in 2022

Apr 6, 2022Tom Gregory6 min read
Maven phases vs. goals

Maven phases vs. goals

Apr 1, 2022Tom Gregory8 min read
4 Benefits Of Using Gradle Multi-Project Builds

4 Benefits Of Using Gradle Multi-Project Builds

Mar 1, 2022Tom Gregory9 min read
How to add a Gradle dependency

How to add a Gradle dependency

Jan 14, 2022Tom Gregory6 min read
Gradle assemble task essentials

Gradle assemble task essentials

Jan 13, 2022Tom Gregory4 min read
Gradle check task essentials

Gradle check task essentials

Jan 12, 2022Tom Gregory4 min read
Maven vs. Gradle in-depth comparison

Maven vs. Gradle in-depth comparison

Dec 17, 2021Tom Gregory16 min read
Top 5 Gradle benefits over Maven

Top 5 Gradle benefits over Maven

Dec 13, 2021Tom Gregory10 min read
Jib vs. Spring Boot for building Docker images

Jib vs. Spring Boot for building Docker images

Discover why using a Docker image build tool like Jib or the Spring Boot plugin is a good idea and how to set it up to build your application.

Nov 30, 2021Tom Gregory16 min read
How to build Gradle projects with GitHub Actions

How to build Gradle projects with GitHub Actions

Nov 22, 2021Tom Gregory20 min read
The 6 best Gradle tutorials for beginners

The 6 best Gradle tutorials for beginners

Oct 4, 2021Tom Gregory13 min read
Gradle Tutorial for Complete Beginners

Gradle Tutorial for Complete Beginners

Oct 2, 2021Tom Gregory24 min read
Gradle Build Command

Gradle Build Command

Sep 28, 2021Tom Gregory5 min read
Running integration tests in Gradle

Running integration tests in Gradle

Sep 23, 2021Tom Gregory7 min read
How to Exclude Gradle Dependencies

How to Exclude Gradle Dependencies

Aug 6, 2021Tom Gregory13 min read
5 reasons to switch to the Gradle Kotlin DSL

5 reasons to switch to the Gradle Kotlin DSL

Jul 22, 2021Tom Gregory7 min read
10 Gradle best practices to supercharge your project

10 Gradle best practices to supercharge your project

Jul 7, 2021Tom Gregory13 min read
Gradle Task Inputs and Outputs

Gradle Task Inputs and Outputs

Jul 1, 2021Tom Gregory15 min read
bmuschko Docker Gradle plugin review

bmuschko Docker Gradle plugin review

Jun 15, 2021Tom Gregory11 min read
Using Jenkins and Kaniko to build Docker images in AWS

Using Jenkins and Kaniko to build Docker images in AWS

Learn how to use Kaniko from Jenkins to easily build and push Docker images.

May 22, 2021Tom Gregory13 min read
Deploying Jenkins into AWS ECS using CDK

Deploying Jenkins into AWS ECS using CDK

Learn how to deploy a production-ready Jenkins in a few lines of code using the AWS Cloud Development Kit.

May 3, 2021Tom Gregory10 min read
5 ways to inject secrets from AWS into Jenkins pipelines

5 ways to inject secrets from AWS into Jenkins pipelines

Discover 5 better ways to manage secrets required by your Jenkins jobs.

Apr 26, 2021Tom Gregory8 min read
Top Gradle 7 features & improvements

Top Gradle 7 features & improvements

Apr 16, 2021Tom Gregory8 min read
SonarQube branch analysis

SonarQube branch analysis

Apr 5, 2021Tom Gregory6 min read
View the Gradle Dependency Tree

View the Gradle Dependency Tree

Mar 29, 2021Tom Gregory7 min read
All about the Gradle task graph

All about the Gradle task graph

Mar 22, 2021Tom Gregory8 min read
3 surprising facts about AWS SQS FIFO queues

3 surprising facts about AWS SQS FIFO queues

Discover the 3 most important caveats with SQS FIFO queues.

Mar 8, 2021Tom Gregory9 min read
Running Jenkins slave agents in another VPC using VPC endpoints

Running Jenkins slave agents in another VPC using VPC endpoints

Discover how to use VPC endpoints to enable a Jenkins agent in one VPC to communicate with a Jenkins master in another.

Feb 27, 2021Tom Gregory9 min read
3 options for cross-account VPC access in AWS

3 options for cross-account VPC access in AWS

Feb 15, 2021Tom Gregory19 min read
gradle vs. gradlew - what's the difference?

gradle vs. gradlew - what's the difference?

Feb 6, 2021Tom Gregory4 min read
How and when to use a Prometheus gauge

How and when to use a Prometheus gauge

Feb 5, 2021Tom Gregory6 min read
Integrating AWS CodeBuild into Jenkins pipelines

Integrating AWS CodeBuild into Jenkins pipelines

Discover how to integrate AWS CodeBuild with Jenkins, with full working examples.

Feb 1, 2021Tom Gregory18 min read
5 reasons for developers to get an AWS certification

5 reasons for developers to get an AWS certification

Jan 15, 2021Tom Gregory5 min read
AWS ECS deployments step-by-step

AWS ECS deployments step-by-step

Dec 7, 2020Tom Gregory9 min read
S3 bucket access from the same and another AWS account

S3 bucket access from the same and another AWS account

Nov 30, 2020Tom Gregory16 min read
Jenkins vs. AWS CodeBuild for building Docker applications

Jenkins vs. AWS CodeBuild for building Docker applications

The pros and cons of Jenkins vs. AWS CodeBuild, specifically related to building applications which run in Docker.

Nov 16, 2020Tom Gregory11 min read
Setup Jenkins to assume a role in another AWS account

Setup Jenkins to assume a role in another AWS account

Setup Jenkins to access resources in another AWS account using one of these 4 assume role methods.

Nov 7, 2020Tom Gregory28 min read
AWS Fargate Spot vs. Fargate price comparison

AWS Fargate Spot vs. Fargate price comparison

Nov 2, 2020Tom Gregory9 min read
Add SonarQube quality gates to your Jenkins build pipeline

Add SonarQube quality gates to your Jenkins build pipeline

Learn to add SonarQube analysis and quality gate stages to a Jenkins pipeline.

Oct 19, 2020Tom Gregory8 min read
Setup Spring Boot behind a load balancer using the X-Forwarded headers

Setup Spring Boot behind a load balancer using the X-Forwarded headers

Oct 12, 2020Tom Gregory9 min read
Using Jenkins Configuration as Code to setup AWS slave agents automatically

Using Jenkins Configuration as Code to setup AWS slave agents automatically

Automate your Jenkins cloud configuration setup using Jenkins Configuration as Code.

Oct 5, 2020Tom Gregory14 min read
Running Jenkins jobs in AWS ECS with slave agents

Running Jenkins jobs in AWS ECS with slave agents

Learn how to run Jenkins jobs in slave Fargate containers in AWS ECS.

Sep 29, 2020Tom Gregory17 min read
Anatomy of a Gradle build script: the key to understanding Gradle

Anatomy of a Gradle build script: the key to understanding Gradle

Sep 11, 2020Tom Gregory4 min read
VPCs, subnets, and gateways - fundamentals for working with containers in AWS

VPCs, subnets, and gateways - fundamentals for working with containers in AWS

Aug 31, 2020Tom Gregory13 min read
Deploy your own production-ready Jenkins in AWS ECS

Deploy your own production-ready Jenkins in AWS ECS

Discover all the pieces required to deploy a production-ready Jenkins master into AWS Elastic Container Service. You can take the best parts of the provided CloudFormation template, and apply them to your own setup.

Aug 4, 2020Tom Gregory20 min read
Annotation Processors in Gradle with the annotationProcessor Dependency Configuration

Annotation Processors in Gradle with the annotationProcessor Dependency Configuration

Jun 26, 2020Tom Gregory6 min read
How to update Gradle

How to update Gradle

Jun 17, 2020Tom Gregory3 min read
Prometheus service discovery for AWS ECS

Prometheus service discovery for AWS ECS

Jun 15, 2020Tom Gregory18 min read
Gradle implementation vs. compile dependencies

Gradle implementation vs. compile dependencies

Jun 6, 2020Tom Gregory5 min read
Spring Boot default metrics

Spring Boot default metrics

May 22, 2020Tom Gregory11 min read
Gradle Project Properties Best Practices

Gradle Project Properties Best Practices

May 15, 2020Tom Gregory6 min read
Unleashing the Spring Boot Gradle plugin

Unleashing the Spring Boot Gradle plugin

May 8, 2020Tom Gregory6 min read
AWS SNS for CloudWatch alarm email notifications

AWS SNS for CloudWatch alarm email notifications

May 1, 2020Tom Gregory8 min read
Shipping AWS EC2 logs to CloudWatch with the CloudWatch agent

Shipping AWS EC2 logs to CloudWatch with the CloudWatch agent

Apr 24, 2020Tom Gregory11 min read
Running Docker in Docker on Windows (Linux containers)

Running Docker in Docker on Windows (Linux containers)

Apr 17, 2020Tom Gregory9 min read
When to use an AWS S3 VPC endpoint

When to use an AWS S3 VPC endpoint

Apr 10, 2020Tom Gregory8 min read
Deploying a Spring Boot application into AWS with Jenkins (part 3 of microservice devops series)

Deploying a Spring Boot application into AWS with Jenkins (part 3 of microservice devops series)

How to take a Docker image and deploy it into AWS Elastic Container Service.

Apr 4, 2020Tom Gregory16 min read
Building a Spring Boot application in Docker and  Jenkins (part 2 of microservice devops series)

Building a Spring Boot application in Docker and Jenkins (part 2 of microservice devops series)

How to get a Spring Boot application running in a Docker container.

Mar 29, 2020Tom Gregory13 min read
Building a Spring Boot application in Jenkins (part 1 of microservice devops series)

Building a Spring Boot application in Jenkins (part 1 of microservice devops series)

Create a Spring Boot API application and build it in Jenkins every time a change is pushed.

Mar 22, 2020Tom Gregory14 min read
What's the Gradle Wrapper and Why Use it?

What's the Gradle Wrapper and Why Use it?

Mar 14, 2020Tom Gregory8 min read
How to use Gradle api vs. implementation dependencies with the Java Library plugin

How to use Gradle api vs. implementation dependencies with the Java Library plugin

Feb 29, 2020Tom Gregory11 min read
Introduction to writing Gradle plugins

Introduction to writing Gradle plugins

Feb 21, 2020Tom Gregory12 min read
How to do a Maven to Gradle migration on a Java Spring Boot project

How to do a Maven to Gradle migration on a Java Spring Boot project

Feb 14, 2020Tom Gregory7 min read
When to create different subnets in AWS VPCs

When to create different subnets in AWS VPCs

Jan 24, 2020Tom Gregory7 min read
Recursive AWS Lambda Functions in Node.js JavaScript

Recursive AWS Lambda Functions in Node.js JavaScript

Jan 3, 2020Tom Gregory11 min read
Gradle Lifecycle Evaluation Order For Multi-Project Builds

Gradle Lifecycle Evaluation Order For Multi-Project Builds

Dec 27, 2019Tom Gregory9 min read
How to Measure Code Coverage Using SonarQube and Jacoco

How to Measure Code Coverage Using SonarQube and Jacoco

Dec 13, 2019Tom Gregory8 min read
How To Secure Your Gradle Credentials In Jenkins

How To Secure Your Gradle Credentials In Jenkins

Setup credentials for your private repository using Jenkins credentials, and inject them into your Gradle builds.

Dec 6, 2019Tom Gregory13 min read
The 4 Types Of Prometheus Metrics

The 4 Types Of Prometheus Metrics

Dec 2, 2019Tom Gregory14 min read
7 Things Your Mom Never Told You About Gradle

7 Things Your Mom Never Told You About Gradle

Nov 22, 2019Tom Gregory7 min read
Monitoring A Spring Boot Application, Part 4: Visualisation & Graphing

Monitoring A Spring Boot Application, Part 4: Visualisation & Graphing

Nov 8, 2019Tom Gregory7 min read
Monitoring A Spring Boot Application, Part 3: Rules & Alerting

Monitoring A Spring Boot Application, Part 3: Rules & Alerting

Nov 1, 2019Tom Gregory9 min read
Monitoring A Spring Boot Application, Part 2: Prometheus

Monitoring A Spring Boot Application, Part 2: Prometheus

Oct 25, 2019Tom Gregory7 min read
Monitoring A Spring Boot Application, Part 1: Fundamentals

Monitoring A Spring Boot Application, Part 1: Fundamentals

Oct 17, 2019Tom Gregory6 min read
Creating AWS CloudFormation Resources With The Service Role

Creating AWS CloudFormation Resources With The Service Role

Oct 10, 2019Tom Gregory8 min read
Automating Docker Builds With Gradle

Automating Docker Builds With Gradle

Sep 27, 2019Tom Gregory9 min read