Currently I have one full time job and in my free time I am working on two StartUps. One of them is based in US and the second one is in Slovakia. Both are the same size (3 - 5 people), main project is a web application, but the approach is different.
During one of the first meetings with the CEO of the US startup, he mention he wants a product (application) to be of very good quality. We also mentioned Steve Jobs and his demand for perfection. That means everything has to work perfectly, but more important, it has to be a complete product with everything (users, administration, payment system, ...). I did not know anything about startups or how to run a company. When I look back now I can say that this was a big mistake.
Reason? We spend so much time polishing the product, adding new features, etc that to this day, it is not live. The pace is almost zero, not to mention other things.
On the other side, the Slovak startup went live as soon as possible, although there were bugs. We took part in Google for Startups Academy and presented it in front of investors. All this motivated involved people to work even more.
I joined the US startup like 3 years ago and they already had some working prototype. I didn't know much about the technology behind, or which services (servers, mail, etc) are they using. My work was to create an Android application and I did not dig into other things. That changed a couple of weeks ago, when we had a fight about the costs.
Deal was, we will have shares in exchange for work and until we earn enough money, everything will be payed by CEO. We didn't even know how much it is.
That was the time when I found out, we are using AWS, Shopify, Box, Unbouce and other services. That is realy a lot of money for something, that is not live yet.
Of course it is cool to work with new technologies. I would love to try AI / ML but that doesn't mean I will use them in my next project. Everyone should be able to defend his own decisions. If I want to use AWS for a high demand API, it is fine. But if I used it for a page no one knows about and I pay for it couple of hundreds a month it is at least weird (and waste of money).
Slovak startup is using shared PHP server for tens of euros a year. Of course, the application is ready to be used on better solution when the load is too big to be handled by this one. The team was not that experienced, so we chose some well known frameworks and libraries. This allowed us to move really fast and be able to adapt to new requirements.
Lately, the backend was changed to GraphQL step by step and the admin part is running on React and Relay. So we got there anyway.
Everyone has his / her own opinion about what is good code and bad code. When you want to make a proof of concept that something can work, probably you don't care about it. And it is totally ok.
Is it ok if we are talking about MVP (Minimum Viable Product)? My view here is clear. I am building a company that should grow, last long and be successful. Therefore the code should reflect this.
We had a team member who was working hard, did a lot of functionality, but nobody understands the code. Once he came to a meeting and said, his wife is pregnant and he is not interested in the project anymore. Half of the app was running his code and now it is just black box with no maintainer.
Be careful what your colleagues are doing and don't be afraid to share the knowledge. It is not good to be the only one to know things (or to have such a guy in the team). You never know what happens next.
P.S.: we had to delete the whole thing and forget we had it.
I can only recommend you to try and run your own company. It is a great experience!
Wow. It really sounds like the Slovak startup has a bright future.