Serial entrepreneur and founder of two SaaS productivity apps, Project Bubble and HourStack. Co-founder of Invoiceable and Uniteable. Launched ten startups with three exits. Over fifteen years experience in web applications.
In my experience the hardest thing facing a CTO is the very nature of the ever-changing world of web applications. In other words, stuff changes real fast!
We started prototyping an MVP back in November 2015, and now since we've been looking to pivot, we've found that we're approaching our stack very differently. Frameworks have been updated, some drastically, some open source software we used is now deprecated and non-supported, other software we built our app upon has shown to not be scalable enough, and so on.
One has to just make a decision to commit to their stack and work with it, or (if absolutely necessary) make sure that the application you are building is built in such a way that you can still take it apart and put it back together again on a different stack – which we did actually.
For me personally, I like to make sure that the application is well documented from the beginning and designed first on paper (or online sketches), with a database structure clearly defined, routes documented, and the flow of the user experienced explained in human-readable text. If that is done well, then changes to the stack will have a lesser impact on the path to your MVP.
I've found that the most important thing to do is get a relationship with a business banker. We use Wells Fargo, and maybe I just got lucky, but I managed to find a business banker who I connected with really well and he was able to coach me through everything. Also their phone support has been very good, so on the whole I can recommend Wells Fargo.
Getting the bank account actually set up is very easy, and the business banker will recommend the right plan for you based on your needs as a startup. It only took an hour or so to actually get the account set up, and that part was easy.
The hard part used to be getting a merchant account, and then finding a payment gateway, and then connecting that with a billing system etc, but now that problem has been solved thanks to Stripe. I recently launched a startup that had a full subscription system built upon Stripe and was able to take payments within just a couple of days thanks to Stripe's amazing portal, documentation, and the many open source libraries that connect you to their API.
I hope that helps.