I found these posts particularly helpful:

https://stats.stackexchange.com/questions/46151/how-to-derive-the-least-square-estimator-for-multiple-linear-regression

https://stats.stackexchange.com/questions/134282/relationship-between-svd-and-pca-how-to-use-svd-to-perform-pca

http://www.math.miami.edu/~armstrong/210sp13/HW7notes.pdf

If $X$ is an $n \times p$ matrix then the matrix $(X^TX)^{-1}X^T$ defines a *projection* onto the column space of $X$.  Intuitively, you have an overdetermined system of equations, but still want to use it to define a linear map $\mathbb{R}^p \rightarrow \mathbb{R}$ that will map $X$ to something resembling $y$.  So we settle for sending $X$ to the closest thing to $y$ that we can be expressed as a linear combination of your features (the columns of $X$).  

As far as an interpretation of $(X^TX)^{-1}$, I don't have an amazing answer yet.
I know you can think of $(X^TX)$ as basically being the covariance matrix of the dataset.