Inc42 Daily Brief
Stay Ahead With Daily News & Analysis on India’s Tech & Startup Economy
Time is of the greatest essence for any Startup. Specifically, for the software product based startups, the development time is most crucial and consuming before the ‘real business’ takes off. By Real Business I mean getting the product ready for the market. The best win-win situation is spending least possible development time and achieving the best possible output. How to make this possible is the real game?
I am the CTO at a budding startup – “GrownOut”, and have built the product from ground zero to the stage where we have a good client base today; my biggest learning has been that product technology should evolve faster than the consumer behaviour.
GrownOut is also a Startup!
We at GrownOut do not compromise with user experience, which means, we strive to produce the best possible output. For us in the B2B market, getting that product market-fit was really important. To achieve that, one needs to keep the following points in mind:
- There will be multiple iterations (in our case 4) of the product. And by iterations I mean, developing your products Alpha version, then Beta, Zeta till Omega. So don’t worry and keep evolving.
- But more importantly, this means the development cycle has to be really short in order to make the product market-fit at the earliest.
- Choosing the right technologies and frameworks is crucial to complete 4 iterations in just 1 year.
I know your curiosity has been aroused and you would want to know what technologies we had used/using to provide the best user experience, and to satiate the hunger for knowledge of our developers. The technologies which we use have in a way helped maintain a happy team and also build a low cost effective model in the minimum possible development time.
Let’s get to the technologies
- Meteor.js (framework built on node.js)
Say bye-bye to all the ajax for providing real-time updates to the user with no wait for loading of pages. Meteor lets you create a single page application by writing javascript only on a client side and least code just to get data from 3rd party API and security validations. With almost NO SERVER code, it automatically cuts the dev time to 50%.
It excites me to proclaim that the learning curve of Meteor is the lowest (if you already know real asynchronous javascript) compared to any other web framework. We were ready to develop the product in meteor after self-learning it for just 2 days and getting better while working on it.
- MongoDB (highly scalable and performant no-SQL database)
Meteor binds seamlessly with MongoDB. GrownOut relies heavily on big data, therefore scaling a database for maximum throughput ( IOPS ) is very important in order to process large amounts of data in a minimum timeframe. The usage of MongoDB reduced our data analysis time 3-fold from a traditional DB.
- Elasticsearch (recruitment is all about search)
The candidate search implemented is not a simple keyword search but goes deeper by looking into a company’s employees to understand what the job requirement really is. Based on the analysis, we filter through immense data to find candidates in fractions of a second. The search utilises various parameters in a profile with different boosting, to come up with an order of relevant people based on our patent pending technology. Of course that entails lot of data crunching before we can provide relevant results, which becomes even harder if we are searching on a dataset of 50 million profiles. Once again keeping in mind the user experience, we can’t make our users wait for this search.
Using ElasticSearch we achieved all these calculations in milliseconds by tweaking Elasticsearch and optimising it for our use case. Although this would also be possible by using textual search from MongoDB combined with some science in python, but the time would drastically increase.
- Memcached (simple in memory key-value store)
Best user experience means a user gets what he desires without a wait, and using Memcached for caching made it humanly possible. We tried using Redis but the performance of Memcached is almost 2 times better. Reducing a lot of admin and setup efforts and making it run seamlessly in the product is what saved us more miles on the time to go live.
As i said earlier, to ensure success, product technology should evolve faster than the consumer behaviour. Evolving technology is not always about upgrading to higher technology, but it is your informed choice of the best suited technology for your product. So if you are startup, and that too a software product based one, you must have a clear vision of the end product, keeping the consumers in mind, a single-minded approach to restrict development time to the minimum, adopt the best available technology suited specifically for your product, and adapt all along the way.
{{#name}}{{name}}{{/name}}{{^name}}-{{/name}}
{{#description}}{{description}}...{{/description}}{{^description}}-{{/description}}
Note: We at Inc42 take our ethics very seriously. More information about it can be found here.