diff --git a/DEVELOPER.md b/DEVELOPER.md
new file mode 100644
index 00000000..85670772
--- /dev/null
+++ b/DEVELOPER.md
@@ -0,0 +1,87 @@
+# Developer Requirements
+
+* [Terraform (Core)](https://www.terraform.io/downloads.html) - version 1.x or above
+* [Go](https://golang.org/doc/install) version 1.20.x (to run the tests)
+
+## On Windows
+
+If you're on Windows you'll also need:
+
+* [Git Bash for Windows](https://git-scm.com/download/win)
+* [Make for Windows](http://gnuwin32.sourceforge.net/packages/make.htm)
+
+For *GNU32 Make*, make sure its bin path is added to PATH environment variable.
+
+For *Git Bash for Windows*, at the step of "Adjusting your PATH environment", please choose "Use Git and optional Unix tools from Windows Command Prompt".
+
+Or, use [Windows Subsystem for Linux](https://docs.microsoft.com/windows/wsl/install)
+
+### Setup on WSL with Ubuntu 22.04
+
+#### Install Go and Make
+
+1. Run `curl -L https://go.dev/dl/go1.21.0.linux-amd64.tar.gz -o go1.21.0.linux-amd64.tar.gz` (replace with a different version of go if desired)
+2. Run `rm -rf /usr/local/go && tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz`
+3. Run `sudo nano ~/.profile`
+4. Add the following lines at the end of the file:
+```bash
+export PATH=$PATH:/usr/local/go/bin
+export GOPATH=$HOME/go/bin
+export PATH=$PATH:$GOPATH/bin
+```
+5. Type Ctrl + x to save, then enter y and hit enter
+5. Run `source ~/.profile`
+6. Run `sudo apt-get update && apt-get install make`
+
+#### Install Terraform
+
+1. Follow these instructions `https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli`.
+
+#### Setup Project Tools
+
+1. Clone the repository
+2. Navigate to the root of the repository
+3. Run `make tools`
+
+## PR Naming
+
+We have adopted [conventional commit](https://www.conventionalcommits.org/) naming standards for PRs.
+
+E.g.:
+
+```text
+feat(roleassignment)!: add `relative_scope` value.
+^ ^ ^ ^
+| | | |__ Subject
+| |_____ Scope |____ Breaking change flag
+|__________ Type
+```
+
+### Type
+
+The following types are permitted:
+
+* `chore` - Other changes that do not modify src or test files
+* `ci` - changes to the CI system
+* `docs` - documentation only changes
+* `feat` - a new feature (this correlates with `MINOR` in Semantic Versioning)
+* `fix` - a bug fix (this correlates with `PATCH` in Semantic Versioning)
+* `refactor` - a code change that neither fixes a bug or adds a feature
+* `revert` - revert to a previous commit
+* `style` - changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
+* `test` - adding or correcting tests
+
+### Scope (Optional)
+
+The following scopes are permitted:
+
+* resourcegroup - pertaining to the resourcegroup sub-module
+* roleassignment - pertaining to the roleassignment sub-module
+* root - pertaining to the root module
+* subscription - pertaining to the subscription sub-module
+* usermanagedidentity - pertaining to the user-assigned managed identity sub-module
+* virtualnetwork - pertaining to the virtual network sub-module
+
+### Breaking Changes
+
+An exclamation mark `!` is appended to the type/scope of a breaking change PR (this correlates with `MAJOR` in Semantic Versioning).