2013 in review:
The year opened with the launch of our new platform and we saw increased traffic and product engagement. From a smaller x to 1,40,000 users/month, we figured it was time for us to bring about a few changes on the technical front and this is an account of what we did.
1. Moving to a Cloud IDE.
We work with a pretty diverse technical team of experienced individuals and of course interns, in which everyone comes with varied level of experience and abilities. This makes collaborating a task.
We wanted to manage and collaborate effectively while coding, so that learning and productivity go hand in hand and we do not waste time. Out came a quick solution – Cloud IDE.
Even though CloudIDE as a concept is fairly new, it has tremendous advantages if used and implemented correctly. After going through a lot of Cloud IDEs we settled for Cloud9. Cloud9 is easily one of the most stable environments, with great collaboration tool and an easy workspace setup.
We started using Cloud IDE , c9.io as our first step to implement a continuous delivery model. Collaborating on code, doing peer code reviews and managing build became lot more easier with this implementation.
We’re still in the early days of implementation, but the results have started to show. Late night work from home with code security and peer involvement is a luxury that we can now afford : )
2. Leveraging multiple data stores:
Our data storage stack now includes a MySQL server, MongoDb and Redis. While MySQL saves our key entity data and master tables, MongoDb stores the transient data like user activity details, profile scores, gamification badges etc, thus giving us a faster I/O.
Redis is used as an in-memory key value store and also backs our FAYE implementation of Nodejs.
Working with real-time and detailed data has never been so much fun. We now crawl through the web, collect relevant data for our applications, which are in stealth development, which is becoming exciting by the day.
3.Opening up our Restful Services.
In most of the cases, an API is created and opened for third party integration. We wanted to hire interns who can work on our code and modules very quickly and possibly build applications on top of our stack. Solution – APIs.
We built our set of core APIs which any new member of our team, especially the interns, could use to implement new features on the platform. This provides a layer of abstraction and in combination with a Cloud IDE helps us achieve faster results.
Although still in a very nascent stage, we are trying to open up more and let people build on our platform.
As a start-up and relatively small team of technologists, we are by default, agile. All of us are full stack specialist so we don the hat of a developer, designer, architect, tester, DB admin, system admin, almost synchronously.
However to bring a little more order to the chaos we formally implemented scrum practices for our product development and enhancement, which led us to saving a lot of time and effort. Suddenly industry acronyms like DRY and KISS started to make sense. We started to ship our products at a faster rate.
Its was an uphill task to implement these practices in our environment, where our idea muscles are worked upon almost constantly. We took small steps, did week long hackathons (read: sprints) and moved code to production. Very soon we could see that scrum was working for us.
We might not have a fully detailed product backlog for the next 6 months, but as long as we have it for even a sprint we are happy!
5. Developing a native Android app and going responsive.
Our Android device user base on the website increased from 5% to 12% in a matter of six months. which led us to targeting that demographic more seriously. This gave birth to our Android app giving students the opportunity to search and apply for jobs from their device,giving us a significant jump in user engagement statistics in a span of 6 months since the app was launched.
The other end of the product i.e the employer site was made completely responsive.
Some other stuff we worked upon.
We fought downtime, site speed, scalability (read:memory management) amongst some other day to day issues. We completely moved our hosting from VPS to Amazon EC2. Implemented site wide feeds, crawled GBs of data from the web and most importantly gamified our user experience.
What to expect in 2014?
We are implementing a continuous delivery pipeline at Letsintern to improvise our existing DevOps. Data science and engineering will also be at the core of our focus. It might take us deep into handling what is controversially referred to as Big Data.
There is a lot of firefighting in store for us. With increasing traffic and engagement on the site, our code and architecture scalability will be tested, we just need to be 8 hours ahead.