Last month I was invited by CodeOp to give a technical introduction to geocoding and Nominatim to their students. This talk is now available online.
The talk gave a short introduction of the OpenStreetMap project and the open-source universe that has developed around it. It then went on to look into the specifics of Nominatim. It discussed the general architecture of the software and the design decisions behind it, as well as the selected challenges of searching through a huge geographical database. There were also some insights into practical aspects of open-source development and advice on how to get involved.
Watch Finding places: an introduction to Nominatim on YouTube.