Implementing QuantLib is available as an ebook from Leanpub in a variety of formats suitable for reading on all kinds of computers and tablets. Any feedback, corrections, and criticisms are welcome; my contact information is available in the About page of this blog. The book material was also featured as blog posts, collected on this page.
As I say in its introduction, the book is a report on the design and implementation of QuantLib, alike in spirit—but, hopefully, with less frightening results—to the How I did it book prominently featured in Mel Brooks’ Young Frankenstein (in this case, of course, it would be “how we did it”). If you are, or want to be, a QuantLib user, you will find here useful information on the design of the library that might not be readily apparent when reading the code. If you’re working in quantitative finance, even if not using QuantLib, you can still read it as a field report on the design of a financial library. You will find that it covers issues that you might also face, as well as some possible solutions and their rationale. Based on your constraints, it is possible—even likely—that you will choose other solutions; but you might profit from this discussion just the same.
The book is primarily aimed at users wanting to extend the library with their own instruments or models; if you desire to do so, the description of the available class hierarchies and frameworks will provide you with information about the hooks you need to integrate your code with QuantLib and take advantage of its facilities. If you’re not this kind of user, don’t give up on the book yet; you can find useful information too. However, you might want to look below instead.
QuantLib Python Cookbook
This book, also available from Leanpub, collects updated posts from Goutham Balaraman’s blog and the transcripts of a series of screencasts that I’m publishing on YouTube; you can have a look at them below.
The posts and screencasts use IPython notebooks to showcase features of the library by means of working examples and to provide guidance for its usage.