One thing I'll say, if you're talking about a SaaS app and not something on the battlefield of big-time consumer SEO (which I also have some experience with as an engineer), it starts with crafting your website copy to address both prospective users and Googlebot. Iterate on it and continue improving. The text on your page matters.
Here are a few technical tips:
1. Many engineers do things like add ajax endpoints to robots.txt. Don't do this. Google can read many dynamic pages but not if you block them from loading the ajax requests.
2. That, and other issues, are uncovered by using the google webmaster tools. They will rank issues that are affecting your crawl.
3. In my experience, server rendered content still out-performs client rendered content. Server-render if SEO is a priority.
4. Duplicate content causes SEO problems and can be subtle. You can have an SRP like /catalog/results that can also be accessed when using your next-page/prev-page links as /catalog/results/1. That is a duplicate page.
Generally, though, I don't feel qualified to give much SEO advice without my own survivorship bias. Also, I would like to be doing so much better than we are, and continue to work for it.