Step by step design of an interior-point solver in self-dual conic optimization