software engineer
Over a week ago, I was trying to top-up my Skype Credits but I can't find that option anymore. Then I saw this news. It's their product, it's their decision, but I just want to say, it used to be a really good product. Skype brings a lot of good memories of the early days of online work.
https://www.youtube.com/watch?v=tsUyjzRIU9w - play it, thank me later.
My take on this. We have been in this situation as well, we rebuilt a project formerly built by another team.
1. First, get the database design right, simplify it as much as possible, and consider that you are going to migrate data from the old design to the new design too. Chances are that some of the old structure might not be needed anymore. Work with your client to determine which tables or fields you can already remove. Also, for data that is not expected to be frequently searched or retrieved through complex queries, considering organizing those in JSON format.
2. Do not code right away. Do a very thorough plan of all the controllers and models you need, and review functions that will be reusable, especially in the models; do the same thing for helpers. You mentioned that it was built by a founder without formal training. There’s a good chance a big part of the code does not follow SOLID principles. Your ultimate goal in this planning is to reduce duplicate functions and make it easy to write test cases for your code, both in the BE and FE.
3. For complex or big features, regardless of your team’s experience, I would encourage you to still use flowcharts. Finalize the logic first before coding. You may find logics that can be simplified or is critical to your database design if you do this.
4. Implement TDD, then configure your CI pipeline to automatically trigger test cases and block merging if a single test case fails. This will instill discipline in your team and reduce the number of bugs.
I don't know if it's an option for you to switch to another language. If it's an option, use TypeScript. Strict typing helps early detection of errors caused by incorrect types or accessing missing properties.
This project is an enhanced reader for Ycombinator Hacker News: https://news.ycombinator.com/.
The interface also allow to comment, post and interact with the original HN platform. Credentials are stored locally and are never sent to any server, you can check the source code here: https://github.com/GabrielePicco/hacker-news-rich.
For suggestions and features requests you can write me here: gabrielepicco.github.io