We review the Dirac formalism for dealing with constraints in a canonical Hamiltonian formulation and discuss gauge freedom and display constraints for gauge theories in a general context. We introduce the Dirac bracket and show that it provides a consistent method to remove any gauge freedom present. We discuss stability in evolution of gauge theories and show that fixing all gauge freedom is sufficient to ensure well-posedness for a large class of gauge theories. Electrodynamics provides examples of the methods outlined for general gauge theories. Future work will apply the formalism, and results derived here, to General Relativity.