Billions of them and being that small, I'm amazed it works!
You get hardware to work. Then try size/cost reducing the hardware, with software or error checking taking up the slack.
Then when you get good at it, make it cheaper and/or smaller and start the whole cycle over again.