A build may be slow in CircleCI due to a myriad of reasons. Let's look at a workflow example for go-template-example-with-circleci (https://circleci.com/workflow-run/533ee47a-a990-4679-826b-7b24221df2ca):

In particular, notice that the integration job took over a minute to finish and the deploy job took over a minute to finish as well, which is making the build take 3 minutes and 20 seconds to complete. If we click on the integration job, we see the following steps in the job:

Notice here that the npm install took 1 minute and 3 seconds to finish. Let's open up the run step call npm install for further details:

The only dependency we have is for cypress.io, but we are not caching this dependency so it will run this step every time. CircleCI has a way for us to cache our node dependencies by utilizing two field declarations called...