I started by building a basic C++ chess engine, then kept pushing it with minimax, alpha-beta pruning, NMP, LMR, and aspiration windows until it played much stronger and searched much faster.
I put this together with a Raspberry Pi, Flask, OpenCV, and GCP after a break-in. I started with the camera pipeline and then added motion detection, streaming, and cloud pieces to make it useful fast.