The hardest single part of building a software system is deciding precisely what to build.
Every challenge is an opportunity to learn and improve.