Link: Making a Language

A series that teaches you how to make a functional programming language. It includes many different components, including type checking, name resolution, and running an LSP.