How to get a Remote JOB as a Software Engineer and How to Become a better developer?
If you’re a developer from India, Pakistan Bangladesh, Nepal, Nigeria or other under-developed countries the local jobs in your country do not pay what you’re actually worth and you feel like nobody value your skills that you learnt with years of struggle and hardwork, Don’t worry there are remote jobs from countries like the US, Europe, Canada, Australia and more.
Why are companies hiring remotely?
Due to covid, when all companies and businesses went online people realized that working online is easy, less expensive and efficient, Everyone learnt to work from home and Software Industry benefitted most because of the nature of software development jobs, we can work from anywhere if we have a laptop and internet.
How do companies benefit from employees in remote countries?
Some good companies believe that it helps your company become familiar with and overcome cultural differences such as slang and etiquette and to diversify the team, Besides this, many companies are attracted to offshore employment in cheaper countries like Pakistan, Bangladesh, Nepal etc because I.T market in these countries are still developing and salaries for developers are peanuts.
For example, a developer in the US earns 15,000 USD a month, this same skilled developer will hardly earn 1000 USD/m in the local market in Pakistan, I understand the living cost difference but No living cost is not that cheap in Pakistan and we pay even extra taxes when purchasing imported stuff like Laptops, iPhones, we pay similar or even more when purchasing branded or quality clothes, quality food, The real reason is that software industry is far behind comparing from modern countrien, In modern countries even the people from other industries are switching to I.T because of attractive pay ranges in that country in Pakistan I have seen people leave development because the pay is too low and job is too technical, I think one of the cause is that there’s no Unicorn in the country most of the companies are just strugling startups, No tech giants like Google, Microsoft etc, so they fail to pay deserving salaries or perks.
So It’s a win-win situation for both the candidate and the company who’s hiring offshore to cut expenses.
Let’s continue further, as I am from Pakistan I have more knowledge on Pakistani market so I will be writing according to Pakistan’s market.
Are you a Full Stack Developer?
Are you a mid-level software engineer having 2-3 years of Full-Stack experience and earning less than 1k USD or equivalent in your currency?
Do you know you’re worth more than that? The market salaries of MERN Stack US/EU Remote jobs in Pakistan, are 1 – 5k USD per month (don’t know about other stacks, comment if you know about any other stack).
How to be a successful developer?
To become a better developer and get a better job, You don’t need to be extra-ordinary, You don’t need a degree, You don’t need a visa, and you definitely don’t need to relocate (if you don’t wish to), What do you need?
All you need is “Willingness” to become a better developer
I am not saying it’s easy, It is difficult even for a mid-level experienced professional like me and will take the time it requires.
It may take a few months maybe a year for some people, but if you want to become better you need to be willing and make little progress every day, make it your goal,
Note: the following process is just based on my personal choice I planned it for myself to become a better developer and I decided to share it to help others, you may add or remove steps accordingly.
How to be a better developer? Do the following:
- Make sure you’ve knowledge of almost all the most demanded tech/tools and techniques in your stack.
How to do that?
Go to Upwork, and search for jobs that are relevant to your skills, Check if you’ve most of the skills they need, there are unit-testing tools, documentation tools like swagger and a few other tools such as ES-Lint, these tools help you maintain better quality, clean code and better documentation, Majority of Pakistani companies do not use these tools so you probably don’t have experience in them, but they are very easy to learn, Learn About Quality and best practices and maintaining clean code,
learn about working independently and being responsible for everything from scratch, if you’re a freelancer you most probably have been working independently, so learn about learning in a team and learn techniques like pair programming and how it works.
If after this research you think you’ve all these skills you may skip to Step 4
- Learn Software Design (Optional for junior devs, but very recommended)
Watch youtube videos on how famous applications like Uber, Tiktok and others were designed,
and learn about their design, data structure, and architecture.
also, learn about famous Software Design Patterns.
Most of the common mistakes I see developers make are there’s no design not even a basic one, no error logging system, no crash reports, No email sent on critical errors on the server, and No central error handling system.
- Algorithm and DataStructure (Optional for junior devs, but very recommended)
Learn about Algorithms, data structures, Time complexity, big-O notation
It may seem like algorithms and the data structure has no use in real life, but believe me, it does, learning these make you a better developer who can write optimized code, and besides this, it will also help you in interviews, I would suggest doing Leet Code Challenges and try to solve them without google searching the solution.
- Communication skills will help you a lot in your career, especially in networking.
Before connecting with people on LinkedIn make sure that you learn some basic communication skills so you make a good enough impression for the other person to respond to you, to improve my communication I usually search on google How to reply to “this” question of a client politely, and i get pretty good example/samples from google search that’s how I improved my written communication, Watch videos on youtube, maybe take some crash courses.
- Find mentor(s), Connect with seniors who’re working at your dream companies.
Linkedin is a free goldmine and you’re still not mining? Search for people who’re working in your dream country, or dream company, and connect with them, believe me, most people on LinkedIn are really good and if you ask them in a polite way and show them you’re passionate to learn they will always respond you! but please do not to spam wait for a response before sending another message.
Ask them what tech stack and tools they’re using in their current role at XYZ company, and what are their day to day responsibilities in “XYZ” company.
ask them what process they follow for deploying to the production server,
How is code pushed how is it reviewed what is the whole process?
ask them what techniques they use for error handling? and then try to learn these things or at least get theoretical knowledge of these tools and techniques.
- For a moment, imagine you’re solo responsible for a Government/large application that will be used by billions of citizens (Optional for junior devs, but very recommended) .
Search how will you scale such a large application, Learn about Kubernetes, load balancing and scaling the software,
Such a large govt application will attract hackers, How will you protect it from hacking attacks? all this information is free and available on an internet search and learn.
- Now you’re a better developer
maybe make one or two personal projects that contain all the new skills you’ve learnt so far, maybe launch them as your own product or maybe leave them open-source to show your employer an example of how you code.
- prepare a few weeks for interview questions and start searching for your dream job.
- Do not stop learning, don’t get too relaxed after getting your dream job.
I have been victim of this, when you achieve your dreams sometimes you feel like you’ve everything you need, so you stop the struggle, you stop learning, you stop working on personal projects and professional growth becomes dead slow and you start falling down in your career instead of growing more and your productivity/creativity gets affected by this.
Where to find Remote Jobs? well they’re everywhere but I’ll mention some platforms specially designed for remote software jobs:
- Freelancing platforms like Toptal, Upwork, Fiverr
- Job portals like LinkedIn, Indeed, Talent, relocate.me and many more.
- Search and Reachout to global I.T Recruiters (there are many companies hiring offshore to cut costs and work on a low budget but they still pay you well above the local market 😁, because Pakistan’s market is peanuts 😏).
if you know more platforms/ways to search for remote jobs, please comment.
These steps may seem a lot, but you don’t need to follow every step do as much as you can to become a better developer and target better jobs.