Time is of the greatest essence for any Startup. Specifically, for the software product based start-ups, the development time is the biggest time involved in starting the real business. Well by real business, I mean getting the product ready for the market.
The essential is to have the least possible development time and the best possible output. How to make this possible is the real game?
I am the CTO at a budding start-up “GrownOut” and having built the product from ground zero to the stage when we have a good client base today; my biggest learning has been the 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 this remember to follow these steps:
1. There will be multiple iterations(in our case 4) of the product. And by iterations I mean your products Alpha version, then Beta, Zeta till Omega. So don’t worry and keep evolving.
2. But more importantly, this means the development cycle had to be really short in order to achieve the product market fit at the earliest.
3. The Biggest learning for us is choosing the right technologies and frameworks can only make it possible to complete 4 iterations in just 1 year.
I know you will be curious to know what technologies are we using for providing the best user experience, and also satiating the hunger for knowledge of our developers. The technologies which we use have in a way help maintain a happy team and also build a low cost effective model with least development time.
Product technology should evolve faster than the consumer behaviour
Let’s get to the technologies
1. Meteor.js (framework built on node.js)
2. 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.
3. 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.
OfCourse that’s a lot of data crunching to do before providing relevant results, which becomes even harder if we are searching on a data of 50 million profiles. Once again to mention user experience is very important, hence we can’t make our users wait for this search.
Using ElasticSearch we achieved all the 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.
4. 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 seamlesslyin the product is what saved us more miles on the time to go live.
[About the author : Harsimran Walia is CTO & Co-founder at GrownOut , a startup in referral hiring space]