I really enjoyed this author's "Complex Text Handling in WebKit" series from a few years back. They're spread over several months on the blog, so here are the direct links to each part, if anyone is interested:
Part 1: Encoding Systems, Code Points, and Code Units <https://litherum.blogspot.com/2013/11/complex-text-handling-...>
Part 2: Fonts <https://litherum.blogspot.com/2013/11/complex-text-handling-...>
Part 3: Codepoint to Glyph Mapping <https://litherum.blogspot.com/2014/02/complex-text-handling-...>
Part 4: Line Breaking <https://litherum.blogspot.com/2014/04/complex-text-handling-...>
Part 5: Bidirectional Processing <https://litherum.blogspot.com/2014/11/complex-text-handling-...>
Part 6: Run Layout <https://litherum.blogspot.com/2014/11/complex-text-handling-...>
Part 7: Width Calculations <https://litherum.blogspot.com/2014/11/complex-text-handling-...>