How Nepali programming-freelancers juggle their jobs and lives

7 min read
08 Sep 2017
7 min read
3757 words
Nepali coders make tidy sums taking up freelance programming work online, but freelancing is not an easy life

It's 10 pm. The hustle and bustle of the city simmers down to a near silence. Most kids are already asleep, and it's time for most adults to get to bed as well. Meanwhile, it's time for Sujin Joshi to get working: boot up his PC, chat with his foreign client on Skype, understand his task for the 'day' and start coding on a text editor. Only the clickety clack of his fingers on the keyboard breaks the silence. 

Most nights, for Joshi, there's always some work to be done. Some modules to be finished. Some codes to be uploaded. Some programme to be tested. Joshi gets all of it done usually by three in the morning; that's when he puts his phone into silent mode and finally goes to sleep. More such nights for an entire month, and he'll pull in  USD 1,000 to USD 1,500.

Abhinav Dahal

But the money didn't come easy. Joshi remembers how in the recent past his father woke him up at 4 am to take a phone call. It was his client on the line. Joshi was puzzled; he had never given his client the number to his home phone. When he checked his mobile, he saw that he had missed a number of calls from his client. Apparently, the client had gone to great lengths to get the home number. That's when he figured that something was seriously wrong. He went back online and learned that there was a small typo in the code he'd created. As a result, the whole programme crashed at the end of its process. Half asleep, Joshi had to work again to resolve the issue. Luckily for him, he fixed the problem in 10 minutes. On other occasions, he has had to wake up at similarly unearthly hours and work another three/four hours just to find the bug in his program.

Such instances are commonplace in the life of a freelance-programmer working for foreign companies. Like Joshi, there are a number of freelance programmers who are trying to make a living in Nepal by working via online platforms for foreign clients. With the right amount of expertise and experience, many Nepali freelancers have entered, and even made it big, in the world of global freelancing. But such work comes with its unique set of challenges and surviving in this world can be difficult.

The whole world--no, the whole internet--is your oyster

Nepali freelance programmers have been making money from global freelancing platforms for quite some time now, but there weren't as many websites that linked freelancers to clients back in the day. Starting around 2006, however, freelancers began having at their disposal a number of global freelancing platforms to choose from, of which the most commonly preferred ones today are Upwork, Freelancer, Fiverr and PeoplePerHour. While there are technical differences among these platforms, all serve the same basic purpose--that of connecting skilled freelancers with clients the world over. And owing to factors such as the ubiquitousness of the internet, some coders' reluctance to work nine-to-five jobs, and the mushrooming of businesses (in the West) that don't always have the capital to hire staff, let alone rent a workspace for the staff, more and more people (in Third World countries) are turning to global freelancing platforms to find coding gigs. On any given week, some computer programmer in Nepal may be designing a website for a small business in the US, while someone from India may be generating written content for the same website. It's not only small companies and startups that float jobs on global freelancing platforms; even companies as big as DropBox, InstaPage, Airbnb and Zendesk, among others, have been known to seek programmers via outsourcing platforms. People and parties wishing to collaborate are no longer constrained by distance, thanks to the wealth of tools--instant messaging, video-calling software, cloud-storage facilities, among others--that the freelancers of today have access to. 

The range of jobs that a freelancer on these platforms can take up is very broad; just in the category of programming-based jobs, the opportunities are ample: you can develop a simple WordPress website for a business (requiring a few days' work), or you can build an Android/iOS app for a startup, which can take a few weeks' time, or you can be working to build complex payment-gateway systems for big companies, a project that could take years to finish. Other jobs include WordPress plugin development, website designing, e-commerce website designing, payment gateways, order-database management, linking a warehouse to the order-placement systems, among others. These sort of jobs are mostly done by coders in Third World countries, and Nepali coders too have been doing them for quite some time now.

From the First World to the Third World

With the evolution of ICT and globalisation, jobs that were considered to be work usually done by First World coders started to shift to the Third World. The reason is simple. The cost to get work done in Third World countries is far lower than in the West. According to Payscale, an online company that disseminates information about global salaries, compensation and benefits, the average web-developer in the US is paid USD 64,000 annually. Joshi's annual earnings from Upwork amounts to roughly USD 12,000 to USD 18,000--nearly one-fourth of the pay of an average web-developer in the US. That's, however, far better than the average salary made by coders in Nepal, which, according to, is USD 3,659. 

"Services provided by freelancers from Third World countries come not just cheaper but are also of good quality," says Manesh Timilsina, a freelance programmer who has been working on Upwork for the past five years. "I am confident that Nepali programmers are as good as, if not better than, other programmers across the world." He says most Nepali coders have a pretty strong grasp of their subject, and that they can further hone their skills with the help of learning resources readily available on the internet; there are also thriving programming-language communities online, with the help of which anyone who has the passion to learn programming can become an expert.

The contractors that Nepali programmers work for are usually either in the US, the UK or Australia. The clients could be anyone from large companies to individuals and contracting agencies. It is easier to work with the contracting agencies, say freelancers, since they know what to expect from programmers and have experienced supervisors in their team; individuals and companies usually aren't tech-savvy and may have unrealistic demands. That's why most Nepali freelancers prefer to work through contracting agencies, most of whom are based in the West. 

The Bidding War

Bidding for work on global-freelancing platforms can be difficult; competition is cutthroat in Third World countries. "There are programmers in Pakistan and India who bid as low as USD 10 for a USD 100 job," says Timilsina. Joshi, too, recalls instances where he's seen high-paying jobs being assigned to the lowest bidders. 

But there are also clients on these platforms who primarily focus on quality of work, instead of the price. These are the kinds of clients Timilsina seeks.
To outflank low bidders, Timilsina makes his bid as professional as possible. He provides a detailed breakdown of the costs involved in successfully carrying out tasks, so that the client understands why Timilsina bid at a higher price. "Also, once you have a good enough profile, clients start trusting you and tend to assign work to you despite the low-bidders," adds Timilsina.

Landing your first job is the hardest part. You start with an empty profile on a freelancing platform, without any ratings or reviews. Most freelancers get frustrated in the initial phase, and some just give up. But it's important, says Timilsina, to remember that this is how everyone starts out and that patience is key. When Joshi wanted to start freelance-programming on Odesk (now Upwork) back in 2011, he bid for different jobs every day for almost a month, but never came up successful. He eventually gave up. After some time, when his friends kept on insisting that he bid for jobs, he finally got one on contract and made USD 25 for tweaking a theme on a client's WordPress website. The client was very satisfied with his performance and he continued to get work from the same client. From there, things started to pick up rather quickly.

Sujin Joshi

Timilsina too went through the same process in 2013. Determined to impress his client from day one, Timilsina always went the extra mile for his clients. He would continually work on improving what he'd been asked to build, and even built user-guides for the client--all that mattered to him was to get that five-star rating. Eventually, he received further contracts from his initial clients. Today, he makes USD 25-30 an hour (around USD 2,500 a month), and has even started a company that collects freelancing projects from abroad and gets developers here to work on the projects. Before Timilsina started freelancing, he was working for a company that operated in the same way. Now, he doesn't need that conduit.

Rolling with the punches

The life of a freelancer may sound alluring at first. You're not obligated to dress up every day, commute to your workplace and remain confined within a cubicle with a desk and a computer. You no longer have to worry about talkative co-workers or people checking up on you from behind. That's what most people unfamiliar with freelance work think.

Anup GC

Things couldn't be further from the truth, say most freelancers. "While a freelancer's life may seem like the perfect life to some, working as a freelancer comes with a whole another set of challenges," says Abhinav Dahal, a former programming freelancer and currently the faculty head at Informatics College, Pokhara. "People think you're free from the time-bound schedule of office-goers, and that you can work as and when you please, but they couldn't be more wrong. You go from a nine-to-five schedule to a 24-hour one. You have to be on call round the clock. There's no telling when the client may drop an email with a new task."

Because there is no guarantee about when you'll land the next job, freelancers can make the mistake of taking as many projects as they can. But when you do that, work is always going to be in the back of your mind and one project can impede the other. That's when freelancers can slack off. "But there is no room for procrastination," says Timilsina, "Clients demand work on time, and you need to keep yourself on your toes to get the work done." Being extremely responsible and responsive is also how you maintain a good relationship with the clients. Otherwise, you risk losing ratings on your profile. 

Uniquely Nepali challenges

Nepali freelancers have to put up with yet more problems--to do with unreliable electricity and internet connections, and the lack of convenient international payment mechanisms--services that are fundamental to working as a freelancer online. When Anup GC, a budding freelance-programmer, started out, he not only had to get past the initial hurdles (bidding problems, payment problems, among others), but also had to deal with load-shedding and the undependable, oftentimes slow, internet connections. "To ensure that these problems didn't hinder my progress, I had to take some precautionary measures," says GC. He invested in a MacBook Pro (because of its great battery backup) so that the load-shedding didn't affect his work. And to tackle the internet problems, GC has, rather cleverly, convinced his neighbour to subscribe to an internet service provider that's different from his--so that in the highly likely event of an internet breakdown, he will always have something to fall back on. Other freelancers have had to resort to using inverters and mobile internet hotspots to deal with such disruptions. Additionally, because clients are usually in a different time zone, freelancers here have rather inconvenient work shifts. As a result, most freelancers find it challenging to balance their professional and social lives. 

It's evident that making money on these global freelancing platforms isn't a walk in the park. But for Nepal's programming freelancers, earning money and landing work aren't the only problems. Even receiving one's hard-earned income can be a hassle. 

Globally, the most preferred mode of receiving payments is PayPal. "People prefer PayPal because of its highly secure payment system and its minimal service charges," says GC. "However, the service isn't yet available in Nepal, which is why many Nepalis have to reach out to friends and family with PayPal accounts in foreign countries. Their earnings are saved up in foreign accounts and remitted to the freelancers' local bank accounts over time." Freelancing platforms also allow users to have their earnings transferred to their local bank account using a wire transfer. "However, people are reluctant to use this mode of payment as banks here charge around USD 30 per transaction," says GC.

Manesh Timilsina

There does exist an alternative, called Payoneer, which allows users to make dollar transactions and receive payment from freelancing platforms in local currency. "You simply need to sign up and provide identification and bank details, and wait for verification. Once that's done, Payoneer will actually ship a prepaid Payoneer MasterCard to you, but that can take upto a month. If you're in a rush, you can always have it couriered via DHL or FedEX for a small charge," says GC. Your earnings are then saved up on this account, and you can withdraw your earnings from any MasterCard-enabled ATM in the world. "The problem, however," says GC, "is that there's really no guarantee that Payoneer will ship a free Payoneer MasterCard. I personally had to apply five different times before a card arrived in the post. I have friends whose cards still haven't arrived."

Getting in the global game

Timilsina suggests that before finding work online individuals get a job in an IT company for a few years so that the job teaches them how development cycles work and also about work pressures. Newbie programmers will want to think about first picking up the work-related skills and getting the experience and learning the tricks of the trade before actually signing up on global platforms. 

In years since the first Nepali freelance programmers took to the world wide web to find work, hundreds more have followed suit. The increase in the number of Nepalis looking to freelance on these global freelancing platforms has even led to the formation of various freelancing groups whose members work in tandem with each other. For instance, Nepali freelancers have formed a Facebook group called Upwork Freelancers, which is headed by Timilsina, and has around a hundred members. The group disseminates information relevant to freelancers. Timilsina has also attended an Upwork gathering in Kathmandu, where new and existing freelancers come together to discuss problems and help each other out. "A similar event is slated to be held this September," says Timilsina.

Online freelancing gigs demand a lot out of programmers. The work demands that programmers be extremely self-disciplined, be great at multitasking and place work above a social life. But for those Nepali programmers willing to stay the course--despite the bad hours and the isolation--they can make quite the living.

Platform particulars

On Upwork, the client posts a job at a certain rate, and you bid for that job. It is advisable to bid at a lower rate than the advertised one. You are selected by the job advertiser depending on your profile and the rate at which you bid. At times, the client can even select you right away after seeing your profile, and you can agree to the job if you accept their terms. Remember that Upwork also takes 20 per cent service charge for the first USD 500 billed with the client, 10 per cent for lifetime billings with the client between USD 500 to 10,000, and five per cent for lifetime billing with clients that exceed USD 10,000.

On Fiverr, you can post your gigs. A gig is a service that you can provide at a specific rate. The clients find the gigs they like and proceed to place orders to get that service. When someone buys your gig, Fiverr takes USD 1 for every USD 5 you make, Furthermore, after Fiverr takes their cut, it'll take two more weeks from the gig-completion date for you to withdraw your earnings. And depending on how you choose to receive your earnings, you will incur extra charges.  

Register on the website and set up your profile, complete with your areas of expertise and hourly rate. You can also include your past work in the portfolio section. Start by taking up some jobs at rates lower than your hourly rate, and earn some good reviews. PeoplePerHour also features what are called Hourlies. Basically, they are services that you provide at a certain price, and people can purchase those services. The job must be delivered within three days. All work billed through the site will incur a 3.5 per cent commission fee.
Sign up for free and set up a presentable profile that showcases your portfolio, resume, skills and personality. This is your chance to make a great first impression. Once that's done, you're ready to start working. From among the hundreds of projects posted each day, choose the ones that pertain to you and start bidding. Make sure you write the reasons as to why the client should pick you over the others. You also have the option of participating in contests, where multiple people do the same project (say, designing a logo) and the best project wins. Once you land a job, make sure you stay consistent in terms of communication, timeline and work quality. You can use the built-in chat box or third-party apps to communicate with your client. The costs you incur depend on the type of project. 

Tips for novices looking to start freelancing

1. Learn the trade. Pick up any programming language. HTML, CSS and Javascript are the basics if you want to get into web development. But it doesn't end there. There are other programming languages you can, and should, learn. Python, Ruby, Java and C all have their own benefits. You might want to take an object-oriented programming language like Java and one procedural language like C in parallel. But it is necessary to master at least one object-oriented and one procedural programming language each. If you master one, you can learn the other programming language easily.

2. Get into Content Management Systems (CMS) and Frameworks. WordPress is currently the most in-demand CMS, and there is a huge WordPress community to support you when you have problems. But mind you, with the competition, the pay is considerably lower than working in other CMSs.

3. Get real-life experience. Nothing beats learning by doing.

4. Take up projects that you can show on your profile on freelancing platforms. Make your own e-commerce website or business website, or an app, or any programme that you can show. That way, clients will see that you can actually produce something.

5. At first, bid low. The only way you can get jobs at first is by bidding low. Focus on getting good feedback and ratings. Consider your work an investment. Have patience.

6. Once you land jobs, give your clients more than they expect. Do not try to fool them. If there is any problem, just tell them. 

7. Collaborate with other freelancers. Learn from their mistakes and have them clarify your doubts.