diff --git a/.circleci/config.yml b/.circleci/config.yml
index 05448e8b09b6815e72d84cdb1a7c5cd081c21151..98d0520753715b70e1be7e53c1ba482b587d8c41 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -31,11 +31,25 @@ jobs:
 
       - "checkout"
 
+      - restore_cache:
+          # Read about caching dependencies: https://circleci.com/docs/2.0/caching/
+          name: "Restore Cached Dependencies"
+          keys:
+            - paymentserver-v1-{{ checksum "stack.yaml" }}-{{ checksum "PaymentServer.cabal" }}
+            - paymentserver-v1-{{ checksum "stack.yaml" }}
+
       - run:
           name: "Run Tests"
           command: |
             nix-shell shell.nix --run "stack test --no-terminal --coverage"
 
+      - save_cache:
+          name: "Cache Dependencies"
+          key: paymentserver-v1-{{ checksum "stack.yaml" }}-{{ checksum "PaymentServer.cabal" }}
+          paths:
+            - "/root/.stack"
+            - ".stack-work"
+
 workflows:
   version: 2
   everything: