A job list for web designers and web developers

In the last couple of years many people have lost their jobs. Unemployment rose and with it the average personal debt. The prices started to fall to reflect the lower purchasing power. Many companies had trouble to retain their employees due to their lower profit margins. In some countries half of the young people are still jobless, which a waste for the economy. Cost cutting was expected from everyone—from banks and governments to regular citizens. Many were discouraged by that, so they stopped actively looking for jobs that barely kept them above the poverty line. They realized that such jobs wouldn't develop them into the people they want to become, wouldn't prepare them for the unexpected, support them in case of a serious illness or the need to improve qualification in our rapidly changing world.

Many of the world's regions are plagued with high unemployment rates and this signals that despite our efforts, jobs still aren't a solved problem. And even when there are enough jobs, we frequently hear of the bad working conditions and the extent of human suffering. We should then question the quality of the existing job openings, not just care whether there are sufficiently many of them. When someone chooses to invest in the promise of good returns, the jobs they create may become of inflationary nature. If that promise can't be kept, they may leave a lot of families or credit-takers in trouble. This cancels to a great extent the positive effect that the new job offer initially had.

We concentrate a lot on decreasing unemployment while rarely planning how to increase employment. If growth doesn't come, it must be because we don't know how it looks yet or where to seek for it. We haven't found which projects would be valuable and worth doing under reasonable resource constraints. “We have grown n% since...” is a statement worthy of suspicion, since success can be so blinding that it kills growth elsewhere. If we grow through company acquisitions, beating competitors, internal agent spying or hacking, acqui-hiring, salary dumping etc. we are extracting resources from the market for our own needs, which hurts the economy more than it helps. The longer we allow this practice, the more obvious the cost of such growth will become to everyone. Just because someone hired many people doesn't mean they have grown organically as they may still fail to create lasting value. Unfortunately, we have started to accept failure as less dramatic if it is spread among a sufficient number of people with no clear responsibilities.

Spending a lot of money rarely equals growth. But if we become more capable today without requiring external support, then we have probably grown a bit. In the past, many companies have grown at the expense of others, hurting the economy, so they will need to learn how to grow parallel to them, if they still want to add to it. If not, their CEOs will find themselves in a position that will neither allow them to lead, nor to give advice.

The current situation is also important, because it can encourage or discourage growth. If someone doesn't like the behavior they see at the top, they may not push themselves to grow if they will need to befriend these people later. Since the differences between top and bottom grow on a daily basis, it can be expected that there will be fewer and fewer topics of mutual interest. If the growth refuses to come from the bottom, someone from the top might be consuming it too fast, which is something worth thinking about.

Our mode of working has to be sustainable. Endlessly exhausting workers, screaming at them that they should be more productive has not just personal, but also societal cost. Our total energy isn't infinite no matter how we look at it or how we choose to arrange all employee names in a list. Even young people can easily burn out when they are constantly expected to perform at their best. Some may learn to adjust their enthusiasm for their next employer or choose to avoid being creative when they feel that following the existing rules is valued more. Replacing one person with another isn't free—taking a resource from elsewhere, where it was useful to fill an existing gap intervenes with another external, possibly complex system. Replacing one person with a robot seems economical at first, but probably only temporary, until the robot learns to replace its boss. Staff changes affect morale, mentality and work habits which is a cost with any new job offer. Since many companies had access to a large pool of candidates, it became an accepted norm to replace one candidate for a better one, which alienated a lot of people. This shows that in the long term this isn't an appropriate functioning mode for our society. And this is one reason why hiring is so hard—because sometimes there may be a need for it to be less logical to counteract the tendency to seek self-satisfaction or like-minded convenience. Today everything is so complex that almost nothing is a matter of a simple equation, gut feeling or seemingly deeper understanding. Companies often forget about their invisible product called “societal impact”, but if its quality is bad, the production line will freeze. As a consequence, entire sectors of the economy may suffer from a single mistake.

If many people start to dislike interviews or stop seeking jobs due to the bad practices they were exposed to, this will be a loss for everyone. It is often quietly expected that employees learn on their own after work, so that the company could save spending resources on improving their knowledge given that they may choose to leave and apply it elsewhere. This practice is not only unsustainable, but will become increasingly expensive with a growing number of demotivated and inexperienced people. Once it becomes obvious that a change is needed, the trust may no longer be there for it to happen.

The real problem with missing jobs aren't the developed countries, but the unstable developing ones. Where there are no jobs, there are conflicts and wars. If radical people had meaningful jobs that could earn them a living, they wouldn't need to attack and kill in order to be fulfilled. They would start to perceive the people around them as their clients from which they can learn. They would stop being aggressive, because they would no longer feel inferior to others, but be able to communicate with them as equal partners. The right type of jobs can help to reduce the feeling of isolation, while teaching people to be more socially responsible as part of the bigger family. A well-maintained and gradually expanded network of complementary jobs can potentially restore and preserve the peace. We need to remind ourselves of the fact that noone is born a terrorist, but chooses to become one, which can also be a result of a collective failure to meet a whole pyramid of basic human needs, which could surprisingly often reduce to the problem of having a meaningful job.

Our biggest cost so far has been our failure to distribute “the production machine” in a sensible way throughout the world. We still don't recognize that doing this while exchanging the necessary know-how to allow for such production is probably our last chance to restore peace throughout the world. In theory, a person from Italy should be able to produce original Bockwurst and be paid for it as much as a German for the same amount of work. A German too should be able to produce original pizza or pasta without even asking for the recipe, still being paid exactly as the Italian colleague. Someone in France should be able to produce a Bulgarian martenitza and sell it by being able to explain the meaning of its colors. Slovakians should be able to produce and recommend Belgian chocolate and so on. Such collaboration across boundaries is the mark of a healthy coexistence. It doesn't come from institutions explaining the meaning of a union and the rules which apply within its boundaries. They may exacerbate inequality in the background, which prepares many future problems not even having an economical explanation. Instead of spreading the production machine, we have cultivated many prejudices that some people or nations are better than others, effectively causing a deadlock in collaboration with the brutal willingness to seek the Zugzwang to get out of it. Therefore, the availability of jobs isn't just an American, South African or a Chinese problem. It's a global problem affecting us all, which is one reason why all jobs need to be listed together if not intermixed beyond recognition. This is something that could potentially reduce the degree of inequality.

In practice, it will be hard for many companies to give up on their competitive advantage as long as beating competitors and monopolizing the market are valued higher than collaboration under equal conditions. If implemented, the last could lead to a significant drop in productivity, which is painful and will cause doubt. But it would be hard for a patient to survive if they discard the healing procedure for being too painful. This is exactly the time when the treatment must continue and when the capacity to persist will be tested. Only by creating equality on a job level, we could hope to achieve one within a union. Calling people lazy or unproductive when they lack the means of production is similar to cutting their both hands and yelling at them to work faster. The only things this will produce are tears and hatred.

It is worth saying that finding our place in the world is not about accepting any job, even when it is the only one within a radius of 50km. It is about finding how we could serve others in a meaningful way as to enhance the quality of life for more people. We need to know why we want exactly this job and what it is we expect to achieve through it. It has to give us some sense of a mission that fits our character and that we can pursue in the long term. Inner satisfaction will come not only from finding the right place, but also from knowing how to find the right route and navigate it. If we walk in the dark just because others insist to move forward, we may (inadvertently) choose their path instead of our own. Returning on our own route then may require twice the effort had we not made this decision and just listened to our voice. It is not sufficient to choose a job from the pool of available ones; much more important is to choose one that best fits to our nature and that allows our strengths to come into play. This is usually a job we create for ourselves in an act of love, as unpopular as it sounds.

Looking for a job has always been a painful experience and the availability of many job portals hasn't changed this much. (See this older post.) They claim to make choosing the right job easier, but often what they achieve is the opposite. Many sites offer up to 10-20 jobs per page, but show 2-3 ads per page in a very obvious/distracting way. The more often readers click, the more ads get shown, which doesn't necessarily correspond well with finding a job. Sometimes affiliate sites link to each other, so the reader is effectively moving in a circle while clicking around. Without noticing, time goes by clicking one link after another without finding anything that speaks to one's personal experience. Seeking this way and regularly visiting the job agency on-place to look for new offers could waste months of your time. The statement “Seeking a job is a job in itself” can never be an exaggeration, but we can at least reduce the time this takes. A good site will offer as many jobs as possible, because there is a high chance that the current offers won't match the profile of the job seeker completely. Mismatches effectively discourage job applications from the start and the candidates themselves often won't feel confident enough to apply (so the next click follows). Having many and diverse offers at a single place doesn't guarantee that a candidate will find the right job, although the chance will likely increase. The availability of hundred or even thousand offers per page (instead of ten) allows for easy comparisons and can be beneficial to both candidates and employers. Only a single page needs to be loaded to get most of the information required; no clicks to external offers or sites are needed. Despite the fact that it can take more time to render a long page, it is still preferable to crush the machine rather than the human being behind it. It's a good alternative to spend a couple of seconds more rather than months in traveling to the wrong places.

Job newsletters are nice, but we can't be sure how current their offers are. This is why a system has be able to keep only the currently open positions at any given time. The employer needs to have the option to mark an offer as expired or delete it, so that it is no longer included in the search results. This shouldn't require phone calls to inform the job agency or the filling of complex forms each time.

There may be too many jobs, which makes necessary to balance the number of offers per page with the number of pages so that the site can be navigated with fewer clicks. Another possibility is to accept less offers for a given position, creating a niche site. This way it will be cleaner, but also not universally useful.

It is rare that candidates can distinguish between good and bad offers; it is rare that employers can easily distinguish between good and bad candidates. This presents some challenges as it is naive to believe that everyone will have only good intentions. Sending random applications increases the chance to start at any job, not the right one. The companies which most frequently post the same offers—a sign that they have a possibly high fluctuation,—are not easy to find in the absence of previous information that new job seekers normally don't have.

The jobs are often tied to a particular city and the option to search within a certain radius may be missing. If five cities exist within that radius, a candidate would need to do five separate searches, which is a sign of bad usability. But there isn't a default, simple and cheap solution that can readily be used. As a result, having too many search queries executed by many job seekers in parallel will adversely impact the performance of the site.

Some websites list the company names first and then the available positions, which is a hint that serving the needs of employers has higher precedence than improving the careers of the job seekers. Choosing who to serve first without knowing how serving looks like seems more than strange. In cases like this, visual design can help to uncover some potential mistakes before they reach the audience. If someone chooses a company solely for its prestige, then they may be more interested in higher social status than in bigger accomplishments. A position at a more prestigious company will then motivate them to leave the current one only after a short time. From the viewpoint of the employer, this was a bad hiring decision that even a well-crafted offer couldn't prevent. A couple of such cases and the employer may find that the offers have failed to connect with the right candidates. Factors like this may cause them to stop using the site, which is then a loss for the job seekers.

It is a common practice to replace company names with logos in the list of offers. If the candidate is looking for recognizable brands, this would create a preference towards some offers at the expense of others. Since they are no longer perceived equal, this becomes a design problem. Therefore, it is desirable for logos to appear only inside concrete offers, not in the main list. The substance of the offer should always be more important than the visuals indicating its source. While trustworthiness is important, it probably won't be considered if it doesn't match the goal vector of the job seeker.

There are no hard rules how a job offer should be structured, but it is always a good idea to give an overview of what the company does and whom it helps. A surprising number of job offers don't even mention this. Listing too many requirements can scare candidates away, but also signals that the employer may not know exactly what they are looking for. If they expect proficiency in too many technologies, then only imagination can tell how those are expected to be combined. Not every programmer will be happy with any combination, even when they may have used the technologies individually. Although employers like to list many requirements, few of them are ready to reveal what they offer in exchange for them (so it feels cheap to ask for more when it won't hurt). This has allowed some job portals to grow and flourish without ever needing to publish any concrete numbers like salary ranges. But it also gave employers too much power, since they could access many resumes and evaluate potential candidates immediately without having to spend resources to attract them. All initial costs were pushed to the employee—researching companies, writing CV and a non-generic motivational letter, self-education and portfolio updates, phone calls, interview preparation, long-distance traveling, going to multiple interviews, meeting intermediaries. Many people started to believe that since they can get any CV and portfolio per email and interview any candidate at a convenient time (possibly through a Skype video call), employees could be cheap in general. A survey has shown that employers have started to spend six seconds on average on each document. Since these were shared many times behind the scenes, their perceived value quickly fell to zero, which further discouraged job seekers.

It is still not late to create a website acceping only job offers with a known salary range, when giving a concrete number feels like giving away too much information to the competition. The salary range allows employees to estimate in advance whether their application will be worth their time and effort. It is a protection for them that guarantees that the employer is serious. If the employee perceives the lower bound as too low, they probably won't like the upper bound as well. In this case they should be able to easily move to the next opportunity when this one won't cover their basic living costs. Some employers announce artificially high ranges to attract the best possible people and then after they have “approved” the candidate, they tell them that the actual salary would be much lower. Any good website dedicated to hiring should have a section where such cases can be reported. In case of recurring complaints against the same employer, it should no longer be possible for them to publish new offers on the site. But if candidates misbehave or send spam, the employer should also be able to report them, so they can no longer access the site or behave similarly to other employers as well. This function is missing on many sites where it is assumed that employers would be too busy to care or that they always want to avoid risking the popularity of their brand. But if employers care about the right candidates, they will also care about how they organize their communication. Both sides need to behave responsibly and need to have the means to filter out potentially malicious behaviour soon after its detection.

It is no longer sufficient to just publish a job offer and hope that it will reach plenty of people. Many portals started to offer more engaging ways to reach the audience. Some allow uploading different kinds of media, like images and video to meet the needs of a variety of people. This is why the site needs to enable file uploads for various file types to reach more potential employees. But keeping all the media on the server isn't free, so a compromise with the file sizes of the individual files is needed. The more users a site has, the smaller the file sizes need to be in order to guarantee that the uploads will be successful. We could enable payment for large file uploads, but then we would need to keep track of the people who have chosen to pay, the periods for which they paid, and the specificity of each individual request (edge cases). Despite seeming a good “business opportunity”, this may require the investment of a lot of time and will affect a disproportionally small number of people. Most likely this process won't scale well if it has to rely on expensive human support.

We don't want to keep the job offers forever, even when in textual form, as this too increases our storage needs and costs when multiplied by a factor of million. After a month a job offer is probably no longer fresh and can be safely deleted. We can ask the employer to re-publish it, effectively verifying that it is still valid and that he/she is still serious about it. But of course, bad offers may still enter the system in one way or another, so we need to have the option to allows users to report them at any time, making them active supporters of the site, especially in the case where a single person will be unable to respond to requests of a large number of publishers.

We should be realistic that we can't accept all existing job offers; it may even not be a good idea to do so. By limiting the number of positions for which we accept offers, we can keep the site more focused without the need to deal with terminology and requirements that we don't understand. This allows to more easily validate the existing offers and to develop a feeling for the reasons why an offer might be considered an outlier. The last can be both good or bad, depending on the perspective.

Every project has to be in some way self-sustaining, so we need to eventually consider introducing some advertisements. The problem with this is that we are very sensitive to ads despite the ease with which we turn them off in our minds. Some websites that list jobs usually don't specify in advance how the ads will be positioned and when they will be shown. As a result, when someone comes back later, they are surprised to see an ad that has changed its position or size. This interferes with predictability and causes many to choose ad blockers. In most cases an advertisement will be tolerated when the user already feels that they have received enough value to justify it, which is very subjective. For instance, if a page doesn't show more than twenty relevant job offers, we can be sure that the viewer wouldn't like to see an ad yet. But if they see plenty of offers that aren't ads, they may be more willing to accept 1-2 small ads that don't interfere with their browsing. Showing the ads in front of the offers would irritate the users; showing them at the end of the list enables an action only in the absence of a suitable offer. This means that the ads themselves need not to be random, but possibly from employers who already use the site. If they choose to pay for ads, then they will need some kind of statistics with metrics in which they are interested that highlight what they are paying for. Such metrics may include number of visits and unique visitors, number of active job offers, number of applications sent by candidates, number of reports of misbehavior, most active company/city/state, employer receiving most applications on average, most popular position, most asked technologies by employers, most frequent search keywords, average time spent on the site and potentially more. All this data, when visualized and made public, can increase the transparency and encourage more people to participate.

Many websites target web designers and developers, which are already living in the USA, where the size of the pool of freely available candidates is getting smaller and the demand for qualified workers exceeds the supply. The sites which offer jobs elsewhere are relatively few and they host very few offers in comparison. This has opened a large gap that allows for a lot of improvement to avoid the situation where we have a lot of jobs where they aren't needed, and not enough where they are most needed. Major disbalances in the economy can effectively bring it to a halt as we have already seen. We have a lot of human resources that still aren't actively used towards improving the economy. Whether few productive regions can offset the negatives caused by many unproductive ones is again a question of distribution. If you remember the graph of the “long tail”, you know that it starts very high on the y-axis and gradually moves towards zero on the x-axis, but never effectively reaches it. The closer to zero the tail gets, the longer it becomes (hence its name). If we decide to split the x-axis in two at the point where we think that the net amount of production is approximately equal to the net amount of consumption, and we sum the y-axis amounts of all data points on both sides, we can compare the results. They may look surprising, which shows that there is no room for complacency and the usual claims that everything is fine and under control. A simple consequence is that we either need a lot more, more diverse and more capable workers to change how the distribution looks or we have to reduce the length of the tail to find some balance. The last essentially excludes a lot of people to live in poverty, which is unacceptable and shouldn't be tolerated. Today the world is silently optimizing at both ends, without even telling us so, but the results can be seen in the news. So, as simple as it sounds, we need to bring the jobs to the people especially when they can't reach them. Some transfer of knowledge and know-how will be inevitable provided that a stable communication channel can be formed. Having jobs for all also means justice for all, because having a useful and well-paid job is a big part of how we perceive fairness. We associate and identify with our jobs and they add meaning to our lives.

Most of the world still doesn't live in USA and yet they aren't less capable designers and developers. To encourage job offers in other places, we can create separate pages for each continent and assign each offer to the right one. This creates different visibility for different kinds of offers. Where there are many offers, each one would receive less weight and be less distinguishable; where there are few offers, each one will receive more weight, simply because it is more important for the development of new communities. Such division isn't necessarily bad. It can help to promote better international collaboration between companies, increasing the number of offers available to everyone. It will also encourage people subjected to lower levels of visibility to seek ways to collaborate with people enjoying greater visibility.

It is important to find which job offer attributes are most interesting to candidates, so that we can show only the most valuable information without removing too much context in the limited screen space that we have. Such attributes could be position, company, sector, size of the company and the work location, given as city and state. But we must also make clear whether the job is for interns or for senior people, full-time or part-time, whether it requires a lot of traveling, whether remote work is possible or relocation is needed, whether an intermediary has announced it. For each of these attributes we can show lines of different color next to the offer, trying not to distract the reader. This additional information can be revealed only when the user's mouse cursor is above the offer. Showing all colors of all offers can quickly draw attention in the direction of the less important information, which is something we don’t want.

At the end of the list we can have a legend explaining the meaning of each color in terms of an attribute name. In a very limited space we reveal a lot of information, so that the user knows what to expect even before clicking on the offer to get its full description. Since each page can show 10000 offers (tested with pseudorandom data, takes approx. 5sec), it makes sense to place dividers every m jobs and put a numeric index on each one that will help the user to return to the jobs they were viewing the last time. But having that many offers negatively reflects on the response time of the slower mobile devices with limited memory. We can show around 3000 offers to account for their reduced capacity, effectively achieving an even better response time and faster real-time search on each page. When showing data horizontally as in our case, we can't fit an unlimited number of characters on a single line. We have to set a limit for each column to prevent overflows. The CSS ellipsis feature can hide some of the data, indicating this with three dots, but having too many dots at various places on the screen can hurt the experience. Therefore, it feels better to cut a couple of characters at the end of the string if this won't prevent readers from recognizing the label. But we also need to ensure that we have enough characters assigned to each category to avoid this situation as much as possible. If someone types “We Have Some Very Long Company Name” and expects this to show unchanged on the main screen, they will be disappointed. This forces every employer to think in terms of efficiency when adding their offers, which in turn makes the site more efficient as well. (One offer should not be able to overwhelm others.) While some long labels may appear cut on the main page, they will still appear accurate on the separate page reserved for that particular job offer. In the long list we also have to use a fixed-width font to ensure that the column width can be defined simply as the number of characters it can hold, otherwise results get unpredictable. It turns out that embedding web fonts to make the page more appealing involves a fairly slow character replacement (apart from the FOUC problem). But “Lucida Console” seems to fulfill the same purpose quite well without the need to download additional resources or to initiate a second render pass. We can also test how various different databases would work with our particular dataset. For instance, PostgreSQL felt robust, but a little bit too slow. MongoDB surprised with very fast query response times of few milliseconds, but only when used through an admin application. In reality, the response appeared slightly slower than the one provided by MySQL. At the end I chose SQLite for its speed, simplicity and availability. How it will operate at scale still remains to be seen. In our case, we will mostly use SELECTs, but UPDATEs can also become important when we have many input fields. The naive way would be to go and update the whole row in our table as soon as the user changes their data. This would be easier, but does more work than we actually need. If they have JavaScript enabled, we can check which fields were changed and only update their corresponding records in the table, touching as few as possible apart from sending the minimal number of SQL queries. This shows that the idea behind progressive enhancement can also be pushed to areas unrelated to the user interface. No list should exist without search and the beauty of fulltext search is that you can type any keyword and if an offer contains it, it will be shown in the search results. To avoid storing information on the user's machine (for faster page reloads) and to avoid multiple requests for the same large page, we can open new tabs for each job offer the user clicks on, which wouldn't involve an empty-fill memory cycle that can last seconds. If this feels too intrusive, it is possible to open these pages without the need to leave the current tab—by using the context menu shown on right click.

This site will not attempt to list all existing job offers, but will focus only on a small subset of positions, trying to collect the jobs for web designers, web developers, visual designers, graphic designers, product designers, software engineers and data scientists at a single place. Not everyone will be able to find a job here, which is fine since unlimited capacity isn’t free. An obvious question then is “What happens if the job seeker wasn’t able to find an offer that matched their abilities?” Right now, many of the existing job portals don’t provide an answer to this question, which could be of significant importance if we consider the degree of resignation within the workforce (another hidden cost for our society). This means that at the very least, a jobs site should be able to provide the people without jobs with the means to work together on common projects, pursue them until finished and keep themselves accountable at each step in the process. If successful, such collaborations can then later lead to more companies that in turn seek to hire even more people. This is something that could encourage more entrepreneurial thinking, tackling of difficult problems where specialists would be otherwise hard to find, or working on projects that were for some reason discarded by the industry because the initial proposals were either met with skepticism or for some reason didn’t fit with the corporate profile. Collaboration beyond borders is something that can unite people in a very different way than working in a a physical company with clear borders and limited thinking. Especially when we realize that we never work for a company, but actually for the world. Companies where this mindset isn’t shared or where the only goal is to exploit low-wage workers and achieve higher profit margins to produce even more impressive annual reports, will probably increasingly find that their workers are leaving to become collaborators. This will in turn adjust the wages if people are to be kept motivated at their workplace. Working in a decentralized, uncontrollable way, away from corporate management’s eyes has its own benefits and should be possible to anyone. Offering the two alternatives at the same place makes for a healthy adjustment of expectations of both job seekers and employers. Collaboration should also be made more accessible and a more widely available option, especially when our ability to meet people in a given radius is rather limited. Currently, finding great people to work with requires going at places where entry tickets are required, where something is preached, where something is consumed or where somewhere can be stayed. Making collaboration as cheap as possible means that anyone should be able to say: „I am open to communicate from HH:MM to HH:MM tomorrow and I’ll be in park X. We’ll take a walk, breathe some fresh air and discuss some great ideas to work on. Anyone can participate, but work may be spread. No time for juice and cakes.” Cheap, healthy and collaborative. Enables people to appreciate your time and shows that empty talk won’t be an option. As soon as someone opens a project online where a job wasn’t available to them, they should be able to find collaborators or become themselves one by joining a project they believe in and where their current skills will be useful and appreciated. Tracking other people’s conversations should never be an option. In fact, after the initial contact, everyone is free to switch to the communication channel that they find most convenient or that will be most suitable for their current task.

While not perfect, this simple site allows you to bring the most basic information as fast as possible to the job seekers and collaborators, while keeping costs relatively low. It gives a lot of choice to the job seeker while not being intrusive. It reduces the hiring costs for employers, since they can reach many people from a single place, without having to advertise on multiple channels. It is often forgotten that both groups depend on each other every day, so it only makes sense to work closer. Many job agencies and websites serve as a good place to connect and they already seek to promote direct contact. In case you can't find a suitable offer there, you can still check this page to see whether it can be useful to you (there's no guarantee). You can also refer people to it if you know that they will be hiring for one of the positions mentioned above. Also feel free to share information about any problems that you encounter while using the existing functionality.

bit.ly/1IObNuD