Category Archives: General

Bootstrapping an AngularJs application

AngularJS is a JavaScript MVC framework developed by Google that lets you build well structured, easily testable, and maintainable front-end applications. And Why Should I Use It? The framework consists of a tightly coupled toolset that will help you build well structured, rich client-side applications in a modular fashion—with less code and more flexibility. AngularJS extends HTML by providing directives that add functionality to your mark-up and allow you to create powerful dynamic templates. You can also create your own directives, using reusable components that fill your... Read More

A smarter way to deal with icons: Font Icons

While working on the User Interface of a website, we, the Frontend Engineers @naukri are always focused on the performance of a web page. There are many factors which affect the same, and one of them is the usage of icons and images. Few decades back, all icons were used as individual images, leading to multiple server requests for each icon/image, which considerably affected the performance of a website. Then came image ‘sprites’ into picture. An image sprite is a collection of icons put into a single image. It automatically reduces the number of server requests, hence saving the... Read More

MySQL Data Sharding

Over the time with increased traffic and user base, data increases enormously. Large number of operations on Huge MySQL table becomes a bottleneck for an application.   Problems At Naukri, there was a case where a single myISAM MySQL table had more than 46 million records. Table size on disk was more than 250GB. Operations (select/insert/update/delete) on that table had become a bottleneck due to table locks and having to update large column indexes. With increasing traffic, scalability had become a serious concern.   Another major risk involved in having a single large table is data... Read More

Tools we use to build India’s No. 1 Jobs site – Naukri.com

  Give me a lever long enough and a fulcrum on which to place it, and I shall move the world. - Archimedes   As Archimedes rightly pointed out, to do anything  worthwhile, one needs right tools. We are no exception. Building Naukri.com as India’s No. 1 job site, does require lot of tools. Our engineering teams on a daily basis rely on lot of tools for communication, design, development, deployment and monitoring of our applications.   In this article we will walk you through some of the applications that we use across all teams.   Jenkins - Jenkins is an open source... Read More

The Agile Tester

I have been testing software for quite some time now, I have moved between organizations and also up the organizational ladder. But never have I experienced a role change as great as when we moved to ‘Agile’ model of software development. We are still very young in agile but have made some significant progress in our quest to move out of a ‘Waterfall’ like model to being perfectly ‘Agile’.   The main addition to the role of a tester in Agile is that, apart from the traditional role of testing builds/reporting bugs/regression, the purpose is about getting things done. As a... Read More

Short Primer on our experience on developing Mobile Websites

Sale of Smart phones and tablets have seen a phenomenal growth over past few years. More and more people are now using mobile phones for shopping, entertainment, finance, health and even job search. Almost every company now has a mobile presence i.e. they either have a mobile app or mobile websites or both. For the uninitiated, mobile website is simply a normal HTML or HTML5 website optimized for display on mobile. It has a responsive design with very limited features as compared to full fledge desktop website. They run in the mobile web browser. They do not have access to... Read More

Redis with a distribution twist

We’ve all heard that, Redis is the next big thing when talking about noSQL data storage systems. We had 2 scenarios where we needed a caching mechanism, efficient in terms of, both memory and time. We tried out Redis with a distribution twist to solve both of our problems. Lets begin with the problem statements. Problem 1 :- We were caching the job-details and the job-description page-footer details for our jobs on the server memory directly as a local cache. This was being done for each server separately i.e if, I open the job-details page which is being served by server 1, it will be... Read More

Why Not Memcached ?

Memcached or Redis ? It's a question that nearly always arises in any discussion about squeezing more performance out of a modern, database-driven Web application . We too faced this question, while deciding the cache system for our application, but Redis proved to be the more powerful and flexible one. Both are in memory, key value data stores and are remarkably fast cache management systems. But Redis does whatever memcached can do and more. Let us look at some of these features :-   1. First and foremost is the extra data types, memcached key value pairs can only be in a string... Read More

Exploring mod_geoip

Problem Statement We have been inherently using IP Lookups for various purposes : Redirecting a user based on country. Advertisements and banners specific to the country/city of access. Default landing page based on user location. Country specific contact details. Fetching country from IP seems a trivial task. However, to fetch a country name against a given IP we usually query the database (either spatial or range queries), which results in a large number of sql queries everyday, thus increasing the database load. Solution mod_geoip is an Apache extension,... Read More

Automated ‘Hosts’ entries used in testing process

What is Hosts File: The hosts file is a computer file used by an operating system to map hostnames to IP addresses. The hosts file is a plain text file, and is conventionally named hosts. Hosts file is like an address book. When you type an address like www.yahoo.com into your browser, the Hosts file is consulted to see if you have the IP address, or "telephone number," for that site. If you do, then your computer will "call it" and the site will open. If not, your computer will ask your ISP's (internet service provider) computer for the phone number before it can "call" that... Read More