We are just going to talk about things which we learned during our development of InterviewParrot. One of our engineers is remotely located and in startup when you want to move fast that could be challenging.
We primarily use java, python and google cloud in our development. Some of our developers use Ubuntu and others use Mac OS.
Challenge with Database
If you are using mysql database locally for testing. Getting consistency into dataset can be huge challenge. As not every developers have access to the same data in tables. We had been facing lot of issues with this and we have to write code and helpers to populate the data in DB for specific feature. Its the nature of our application which creates this problem for us. We need to keep the metadata of question in DB, and when ever we are launching a new set of features we need to make sure every developer is working with same set of questions. During the same time We were moving to NOSQL options as lot of our data was not relational in nature. We ended up with Google FireStore and for our blessing in disguise its solved lot of the data population problem for testing as well. Though it was what we didn't intended but an outcome which was kind of bonus for us.
Challenge with JDK version and dependency versions
Though we have very well documented steps for our dependency and setup. Still we use to run into platform specific version updates as different developers are using different OS. To solve this we completely use docker to launch all our app and its dependencies. We migrated to using docker-compose for our local developments.
There are the containers which we launch
- InterviewParrot Core app
In a startup you have to move fast and developers productivity is key to that. If you are wasting lot of time in setup of local environment then think about where you are wasting most of your energy and try to simplify that.