I think we are close to having the software engineering ability to create the infrastructure needed to support a self-improving optimization process. The feats of software engineering in the last decade or so seem like strong evidence that we can develop the tools to support mathematical models and methods at a large scale, when we really understand the problem.
What I don't think we are close to understanding is how to actually make practical self-improving optimization processes and especially ones that are actually beneficial, rather than detrimental, for humanity. I feel like we are just getting started on this. If progress is going to be made at the rate that Kurzweil has predicted it is going to take more than just faster processors and better supporting software infrastructure.