diff --git a/kolla/hacking/__init__.py b/kolla/hacking/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/kolla/hacking/checks.py b/kolla/hacking/checks.py
new file mode 100644
index 0000000000000000000000000000000000000000..5a86fe57164ede078ce3e6191916694fae0da90d
--- /dev/null
+++ b/kolla/hacking/checks.py
@@ -0,0 +1,26 @@
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import re
+
+
+mutable_default_args = re.compile(r"^\s*def .+\((.+=\{\}|.+=\[\])")
+
+
+def no_mutable_default_args(logical_line):
+    msg = "N301: Method's default argument shouldn't be mutable!"
+    if mutable_default_args.match(logical_line):
+        yield (0, msg)
+
+
+def factory(register):
+    register(no_mutable_default_args)
diff --git a/tox.ini b/tox.ini
index 828cf2961e3b0bb962797c9865617f3e96f41f51..1f0c237e5a2757bd5dcb92d155e04bc24957e097 100644
--- a/tox.ini
+++ b/tox.ini
@@ -130,3 +130,6 @@ commands=
 [flake8]
 show-source = True
 exclude=.eggs,.git,.tox,doc
+
+[hacking]
+local-check-factory = kolla.hacking.checks.factory