Object hydration looks too simple to optimize.

That was my assumption when the mapper I was using in one of my projects turned out to be dog slow.

I didn’t know much about hydrators or mappers at the time. From the outside, the job seemed simple: take an array and call a few public methods on an object. It looked like a small enough problem to solve myself.

I kept adding whatever my project needed. Eventually the workaround became a library, even if I was its only user. Once it solved my problem, I stopped working on it, and it sat in a private repository and rotted.

Recently, I picked it up again and started benchmarking choices I had made by intuition. I kept finding things to improve, and performance soon became the project.