TLDR Alert: Skip to the tips at the bottom
I can work from anywhere?
That's what I asked myself two years ago, and ultimately changed my life's path for forever.
After meeting during my exchange studies, moving back together to Sweden, getting married and having a child, my wife wanted to move back to her home city in China. We had been living in Sweden for many years and we had always talked about moving east, but when we finally decided, oh boy... time to hustle.
Changing Career Path
I was working as a Hardware engineer at the time at one of the largest surveillance camera companies in the world. The pay was actually quite sub-par, not enough for a single income household, but it was stable and the Swedish government does provide many benefits to families with small children.
I've always been building websites, I got the highest grades on the subject in high school, and 3 years prior to our move I found a site called CodeCademy. Without knowing the ultimate benefit of it, I completed the free Python course, and later I found freeCodeCamp, you've might heard of it? (lol). I quickly ran through many of the courses through fcc, and also made my first portfolio site, just for fun. With that I also started following more and more dev people on twitter, I liked the energy. I had a short journey on teamtreehouse as well.
As my day job fluctuated in workload, my son got born, progress on the coding sites became stagnant for years.
Quitting my job
It was not easy to resign, the uncertainty ahead, we had little savings and a small boy to support. However I was optimistic, I had 3 years of experience as a Electronics Engineer, and I also from university soon had completed a Bachelors degree in Mandarin, at least I would be able to find a job, right....?
A long way from home
After selling most of our possessions back in Sweden, getting on a plane with 3x20kg 3x10kg 3xback-packs and a full size baby stroller we landed in Shanghai.
2 months went while settling in, at the meantime I was looking for hardware engineering positions. As time went by it became increasingly clear to me that getting into a Chinese Company as an Hardware R&D Engineer was going to be tough. I was directly told by many that they don't allow foreigners to enter the company. It did not matter that I was qualified with more than 3 years experience, a Masters Degree and spoke good Mandarin.
But during the time looking at all the job adverts I came to a realisation:
The amount of Software related positions out-numbered hardware positions 5 to 1. And they were paying double on average.
Career switcher in China? They are not taking that bet, and my Chinese friends looked at me like I was crazy. OK...
I started to look into it and as the dev community had changed from my previous stint with software, my eyes opened up to remote working. Unlike before people had started teaching programming on youtube, remote communities were popping up, and sites dedicated to remote workers was available. I can work remotely?!
Not only that, there were success stories from self-taught programmers everywhere. Not only was I in need of re-inventing myself professionally but also I was so excited about the possibility of working from anywhere that I became obsessed.
I looked at the remote job listings and determined that the number of React positions were far greater than those of Angular or Vue. Done deal off to the races we go!
I started researching everything I could get my hands on, youtube, medium, twitter, anything that might be useful. I joined online communities, found mentors online and wen't into tutorial purgatory.
Tutorial Hell
For me YouTube tutorials became the way to learn, I could code along the teacher and after slowly starting to understand the best way for me to learn I could go back, re-engineer the projects and understand the parts that were important.
I opened my Github account where everything would go, did not matter what I was learning, it would be on GitHub so I can refer back to my old code. I understood quickly that consistency was key, and I was pushing code everyday.
Standing on my own
They call it tutorial hell or tutorial purgatory for a reason. It's hard to stop and build something by yourself. Even the smallest things would make me choke, and flush me with self-doubt. Maybe I'm not ready? Maybe just one more tutorial and things click into place?
Forget about it...
I went back to the drawing board, and asked myself:
How can I get real programming experience, without a job?
And did the following thought experiment:
If someone puts founder on their CV and builds software does that experience count? Given that he/she does not (probably) get payed for it? Does the money matter at all? Is it only valid experience if we are getting payed for it?
I answered myself:
It's all about the work you produce
So I started thinking: If I'm working for myself (unpaid lol), What can I build that gives me real experience?
This was the most crucial thought conclusion to take me forward
Build genuine competency!
Build things like your life depends on it
I cut tutorials out of my life and went to work. My first PR was a new portfolio starter to the Gatsby project. I still remember the feeling today when it got accepted. I asked several people to review my design before finalising it, and I shared my success with the people who was rooting for me.
No matter how small, move forward. No matter how small your success is, celebrate it with people who believes in you.
Your biggest supporter is a stranger.
The fact that I was engaged in the online community made me succeed. But you have to be brave enough to ask for support. There's so many awesome people out there and they will help you, they won't pull you down, and they won't heckle you for asking trivial questions. But also you want to be respectful, people have jobs and other engagements, you still have to do the work by yourself, none want's to share their energy with someone who demands attention or comes off as lazy.
I wanted to quit and got lucky
9 months in and I was soon burning out, I had two job interviews left with two take home coding challenges.
I think I got lucky when I needed it the most. Because the hiring engineer I met took his time with my application and he appreciated my struggle and consistency. He hired me to the team and August 1 2019 I started working full time remotely. Without getting into numbers I also earn more, with what I think is a fair market salary that can support my family. I also see more development in that area than what I previous did.
After talking to him and discussing what made me stand out, here's my ultimate checklist for getting ahead of your competition:
I was thinking for juniors but honestly for anybody who want's to go remote.
The List
Todo | why |
---|---|
GitHub | Those green tiles matter, I was able to show consistent code pushing for 9 months straight. There was projects related to the position I wanted (react) but also branching out with backend, and other languages |
Contribute to Open-Source | This might sound daunting for anyone to get into but it really makes all the difference. It does not matter how small of a contribution you are making, correct some docs, fix grammar problems are all things that you could do right off the bat. You can make repos where you collect resources etc. |
Personal Site | I made sure that my personal site looked alright, all links working, no typos, easy structure for hiring parties to find the information they are looking for. All projects links to a hosted version, and to the source code. I linked to Github right at the top, and other small things like: my email looks professional, up to date CV etc. |
Start blogging | Writing about your daily progress is a win-win situation. You help others struggling with the same thing, you help yourself understand it better, and you take steps towards building your own developer brand. Potential hiring party can go in and see your progress and they can see how you communicate ideas or code to others, further they can see a glimpse of who you are and build a perception of you as a person. |
Stable internet | It sounds like a no-brainer but if working remote it becomes very clear if your connection is not great. Would you hire someone to work for you remotely if they keep disconnecting? probably not right? |
Comfortable to Share screen | As a remote developer you'll be sharing your screen a lot. |
Clear communication | Being able in a clear and concise way explain code, talk about complex topics. Code is sometimes difficult to explain, because we are not used to talking while we code and our mind-maps of how things fit together will be very different. No one will hire you if you can not explain what you are doing. |
Be in the now | Be alert, be present, answer questions within reasonable time on Slack or Email. And turn everything off during your interview. |
Calm environment | If you have constant background noise, like motorcycles, trucks, vacuum cleaner, screaming, you get the point etc. You will not be liked in your everyday meetings. Dare I say low key hated. So find a quiet spot to work. |
Voice Quality | This ties into the above row, but if your microphone is bad, buy a new one. Record yourself, listen to it and you'll understand what the other end hears. |
Energy | You want to send a lot of positive energy to the person you are talking to. You have to be interested in what you do and like to talk about things related to the field. Don't be a biggot, asshole, racist, or other negative. at least pretend... |
Know what you know, and you want to continue learning. | If there's something you don't know, come clean and say that you have not used said thing yet. It shows that you know what you don't know, and explain that you are willing to learn that asap if that's a required skill. Maybe fire up a new repo and do something with it, and send it soon after the meeting ended. It shows you are a self starter and can learn new things when required. |
IMO if you do these things and can present them through your online presence then you are way ahead of the competition. And further to note much of the list is not even related to coding skills. They are what's called soft skills and many companies are realising that they are waaay more important than your technical skill. Chances are that the project they are hiring for are using new technologies anyway and they are looking a really solid team player.
Shameless plug
Here's what I collected during the time I was searching 1.5 years ago. Some stuff might be out of date but in general I think it's still valid information: It's companies who hire remotely, resources, communities etc. all for getting a remote job.
Remote-Junior-Developer-jobs-directory
If you want me to write more about this topic let me know. I think I'm going to write some more posts about working remotely and what I have picked up along the way.
Hope I could help!