The profession of software developer is in high demand these days. Jobs in this sector are easy to find and most of them offer above-average salary. However, another attractive aspect of the profession is that, with the right skills, there are many creative ways of earning extra cash on the side from the comfort of your home. Below I have listed the means of doing so which, in our opinion, work best.
Don’t get me wrong though. There is no such thing as free lunch. The activities described below are opportunities to get extra earnings, not guaranteed methods to do so.
Any personal project will require effort and time before you can earn any money at all. However, all of these activities will pay off in more than one way.
The most important rewards that your personal software projects give you are new skills and experience which, if the projects are taken seriously, you are guaranteed to obtain, regardless of whether or not the financial reward will come with it.
This is why all of the activities described below, as well as being means of earning money on the side, can be effectively used for an aspiring novice software developer to get the foot into the software career.
Website
Hosting your website is easy. Unless you are trying to bid on a well-known abandoned domain, registering your own domain can realistically be as cheap as having a single meal out.
With a hosting provider like one.com, the domain registration process is very simple. All you have to do is apply for the hosting through their user-friendly web interface and the website will guide you through the rest of the process. Also, unless your plan is to develop a large data-intensive web application like Facebook, maintaining your hosting will only cost you a nominal sum of money.
Most of the hosting providers, especially the most popular ones, provide PHP environment for the server-side code and MySQL database. However, ASP.NET with SQL Server back-end is also fairly popular.
If you want to build your website from scratch, I have previously written a post that will guide you on what to study to become a web developer, which we hope that you will find useful if web development is something that you want to pursue.
There are many ways to earn money from your website, the most conventional of which include banner adverts, affiliate programs (being payed for promoting products) and selling products and services. All of these, however, would require you to develop some skills beyond just code-writing.
You will need to study marketing strategies and how to make it easy for search engines to find your websites. The details on how to do all of these are beyond the scope of this article; however there are many good sources of information out there. As an example, Growtraffic.com is a very good source of information about website demonetization strategies.
Mobile apps
Just like it is with hosting your own website, anybody can publish their own app on any mobile platform. Majority of the apps that you see on the app stores are, in fact, made by independent developers.
Once again, the costs of participation are relatively low, especially if you chose to develop for Android. Google Play store takes a one-off fee of less than 30 US dollars; while there are also many independent Android app stores that don’t charge any participation fee at all (such as SlideME). Apple and Microsoft, however, charge much higher participation fees on annual basis and don’t give you an easy option of featuring your apps on third-party markets.
The other distinct advantage of Android is that it officially allows you to develop the apps on any operating systems, while Apple and Microsoft officially provide development tools for their own operating systems only.
Regardless of what type of mobile operating system you are planning to target, knowledge of XML is absolutely essential. This is a declarative language that is used for visual layout organisation and data transfer. The choice of the functional language, however, would be platform-specific.
For Android, the language would be Java or C++. A Windows app would be written in a language from .NET framework, the most popular of which is C#, although the same language can also be used to write platform-independent codebase for both Android and iOS if you use Xamarin. The official app language for iOS is Objective-C.
There are several different monetization strategies with mobile apps. Vast majority of the apps are free to download. Money can be made by showing ads to the users. However, there are few things to take into account with this method of monetization.
The revenue is generated by displaying certain amount of ads to the users (pay-per-mile) or every time a user clicks on an add (pay-per-click). In any case, to see a noticeable revenue, you would need a fairly high number of users to not only download your app, but also to return to it on regular basis, because ads are shown only when an app is in use. This is why free games like Flappy Bird tend to do well, while free utility apps don’t.
Also, be mindful of the fact that switching on the airplane mode will allow users to disable the ads in your app, so there will be no revenue generated. Paid apps don’t rely on active users, as money is earned for every download. However, it would be much more difficult to entice users to download your apps, as you would have to compete with free apps.
Perhaps the most effective monetization strategy for a mobile app is a combination of ads and in-app purchases. The download would be free, however only a subset of features would be provided initially. Users then would have an option of buying additional features. However, once again, with this method of monetization, the number of downloads don’t matter as much as the number of active users. This is why games are by far thebest earning apps.
Desktop applications
Although not as popular as they once were, desktop applications still represent a lucrative market. The subject is way too vast to cover in this article, as there are many totally distinct ways of developing desktop apps, from Windows forms to games. Using Javascript-based technologies is one of the examples.
Monetization strategies for desktop apps are similar to mobile apps. However, this type of software allows for some additional commercial models.
Traditionally, limited time trial was an effective method of selling desktop-based software. Users would get a fully-functioning application for a limited period of time with an option of buying the full version. There are normally some measures taken to prevent the users from being able to reset the trial back to its start. For example, on Windows computers, certain values are hidden in the registry when trial period commences.
Another commercial model popular on desktop software is evaluation version with limited functionality. On many video-editing applications, for example, the free evaluation version allows you to access all the features that the paid full version has, but it would only allow you to publish edited videos with a watermark in the middle of the screen. This will render the free application functionally useless to the user, but useful enough to fully demonstrate all capabilities of the full paid version.
Bug bounty programs are all about rewarding ethical hackers for breaking into the systems and documenting reproducible steps of doing so. Many web-based companies run such programs. However, if you are planning to participate in one, there are few things to consider. Always ensure that the rules are followed to the letter, otherwise you may not get rewarded or, in extreme cases, can end up with criminal charges against you. Also, there are many bug bounty programs that don’t provide the actual financial reward, but merely put your name into “Hall of Fame”.
Bug bounty programs
Many bug bounty programs ask you to break into a non-production test version of a website, which is identical to the actual website, apart from the data it holds. This is done so people who apply the nastiest hacks to it would not be able to take the actual website down.
However, the reward is usually only given if participants register to take part in the program officially. There were cases when ethical hackers with good intentions would break into actual live website and let the company know. For example, a white-hat hacker from Middle East has broken into Mark Zuckerberg’s Facebook profile and wrote about the vulnerability from there. Facebook has refused to reward him.
However, even if you do register for a bug bounty program properly, there is always a risk that the company would refuse to provide any kind of reward without a reasonable explanation. This is what often makes young aspiring white-hat hackers to lose the trust in bug bounty programs and motivates them to become criminal black-hat hackers.
This page lists the most popular bug bounty programs on the web for those who are interested.
Topcoder competition
For those with competitive spirit, Topcoder represents a great way of making money on the side. The website hosts various coding competitions where the winner gets financial reward. The contests are sponsored by various organisations and the majority of problems that participants are being asked to solve are real business problems.
These competitions, however, don’t give much earning opportunity to a beginner, as you are guaranteed to encountered very experienced programmers in the contest. However, it is one of the greatest ways of building your skills.
Freelance projects
Last but not least, there are many websites out there where you can register as a freelancer. Upwork is one of the best-known. These websites allow you to bid for a variety of projects all over the world. Most of these can be done from the comfort of your home.
The disadvantage of this kind of work is that many registered freelancers come from less-developed parts of the world and are willing to do the work for much lower amount than anyone in the affluent countries would accept. Also, it takes a while to build your rating, so at the beginning it would be essential to ask for smaller pay and work on less interesting projects.
Online courses
I saved the best one for the end. Personally, I have been able to earn more from online courses than from all of the above things combined. If you are fairly competent in any given area, you can register on Udemy or Pluralsight and start filming video lectures.
A good way to start would be to search for existing courses on some technology you are expert in, so you can choose the subject that doesn’t have too much competition. But you should still choose a technology that is in demand and not something obscure that only you are interested in.
And if you manage to create good quality courses and make them popular, you may, one day, be contacted by a large publishing organisation to make some courses on their behalf. This is how you can earn way more than you would ever be able to do on your own.
To see all of the courses published by the authors of Scientific Programmer, you can visit this page: