Archive for the ‘Real Time Programming’ Category

The technology stack powering the on demand applications

Uber and Ola have given rise to a slew of Ondemand applications which claim themselves to be Uber/Ola of X. Some of the verticals where these applications have found their usability include but not limited to taxi, transportation, Logistics, Home Services, Health apps and so on. In this blog we will go deeper into the various components and technology involved in on Demand Apps. Components Involved in Building and On Demand App In most of the cases there are 3 components involved in building an On-Demand App:
  • A cloud backend for Data Interaction APIs and live dispatch of Jobs
  • An Android/iOS App user to make a job(e.g book a ride with Uber/Ola)
  • An app with the drivers to receive the jobs created by the users and attend to them.
  Lets analyze each of these components in detail and how one can go around building each of them. Web Backend Web Backend is the most critical part of the On Demand applications because backend is what powers both the consumer and the driver apps. The web backend must meet the following requirements for a successful implementation:
  • A Light footprint to dispatch the jobs on fly.
  • A Good dispatch components to maximize the efficiency of the field workers(drivers in case of uber).
  • A Socket connectivity to enable the jobs dispatch and job information to the user.
  • A Good structure for a flexible and structured development
  We have recently worked on Bodhik¬†which is an Ondemand Application for Financial Advisory Services.

Hiring a Nodejs Developer and our expertise with Node.js

As the time tells, Node.js is the latest hit number on the market. People are trying to adopt the technology for the latest web products and ventures. The demand for the developers skilled with node.js is increasing much more rapidly than the number of node.js developers available on the block. To complicate the situation further, there are many a developers who say that they know node.js but they actually know only HTTP programming and can’t drive the actual horsepower out of the node.js(The problem common to all technologies afaik). This makes it a real task for someone looking to hire a team of node.js developers or node.js freelancer. I will try here to make this task easier by putting together a few points which you should consider while hiring a node.js developer. Make sure that You and Your Developer Understand that why are you using Node.js Well, its pretty easy to get carried away with the new technology but nodejs is very much different from PHP,Python or Ruby in terms of how its intended to be used. As Node.js official site quotes Node.js is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. What this means is that nodejs is meant for Event driven programming and this is what it does the best. Ofcourse, we can use it for normal HTTP applications as well but using node.js for normal HTTP applications will definitely prove to be an overkill and definitely would be a dragon to maintain in long run. Therefore, nodejs is well suited for the kind of applications that require realtime interaction between the users. The examples include but not limited to Facebook Ticker, Chat Application, Online HTML5 Games or any other application that requires realtime events to be pushed to the clients. In more technical words, node.js is very well suited for long polling kind of applications which require very less CPU cycles and hence supports very high number of concurrent connections. The developer must understand what a realtime programming is and should not confuse it with AJAX. Experience with Nodejs Development Since Node.js development is relatively new in the market, its very hard to find developers experienced than a particular number of years in Node.js development. Infact, Node.js has come into limelight for not more than 2 years at the time of this writing so its almost impossible to find the developer having experience more than this number. Its pretty easy to find a Node.js developer with decent amount of hands-on experience though. However, Node.js is a javascript based framework so make sure that developer is having a decent amount of javascript experience otherwise he wont be able to cop up with the problems along the way. Experience with Node.js frameworks like Express, Connect and Geddy is more than welcome since frameworks enable rapid development. Experience with or other frameworks enabling too/fro communication with the node.js servers using HTML5 Websockets / Flash also comes in handy. The developer’s public commits on github or contributions on other coding portals can also give quite a healthy idea of what to expect. If you are looking for a Nodejs team, Please ensure that you check the credentials of each of the developers in your team. Databases with Node.js development Since Node.js works the best for long polling scenarios, it becomes sometimes imperative to use a NOSQL database like Redis, Mongo, CoucheDB etc with Node.js(I know it can be debated on a separate thread .. :)), its anyways a good idea to hire a developer having experience with one or all of them. Security Securing a nodejs application can get really tricky. Since Node.js is javascript based, the developer must be aware of javascript vulnerabilities along with the methods to mitigate them. Its good to interview them for various security loops that they have seen till date and how they have resolved them. Where to Find The Developers You can find a lot of nodejs developers with competent experience on portals like odesk, elance etc. For a full time basis you can put your requirements on normal job portals like simplyhired, dice, craigslist etc. Enbake provides full blown Nodejs Development Services tailored to your requirements and You can contact us as well for your needs or just to drop a Hi !! Have Fun with Node.js !!