So you want to work for a top tier company – hopefully, one based in Silicon Valley – but you don’t live in the US and you haven’t been able to secure a visa. Don’t despair. More and more of the latest valley startups have discovered that there’s a ton of talent offshore. This means that today might just be the best time in history to become a remote developer.
As someone that’s been working remotely about as long as it’s been possible, my goal with this post is to tell you how to prepare yourself to get your first serious remote gig. Today, I work for a company called Turing that places developers with opportunities all over the globe. We have some of the most advanced developer testing and vetting of any company in the world. What I’m about to share with you are key insights I’ve developed first, as a person that’s gone through Turing’s testing and vetting process as well as someone that now works on making that process even tougher and better.
First Things First, Be Prepared to Show Your Work
If you’re a developer applying right now, make sure that you’ve got a portfolio of some work that you’ve done before. It could be code you’ve submitted to GitHub. It could be some art design work that you have worked on. Maybe some websites that you’ve worked on, or maybe applications on the App Store.
Being able to showcase completed work is a very good thing. When we’re evaluating candidates that have passed our tests look at prior work. Additionally, many Turing clients want to see examples of the work a potential match has completed. The other thing that can help you stand out is if you have a good CV. But be careful! Attention to detail is critical. Make sure there are no errors in any documents you share to showcase your skill. Nothing will shoot you in the foot the way an obvious mistake can. Believe me, I’ve seen so many people with errors in their CVs. To me, it’s a red flag if someone submits such an important document with mistakes. It says you’re careless and don’t take the time to check your work. So, no errors on CVs!
It’s also really important to have relevant information included in your portfolio. If you say that you have a particular skill make sure that there’s a corresponding project where you have actually used that skill. You’d be surprised how often someone will say they are proficient at coding in a certain language but then they don’t provide a single example of their work in that discipline. If you say you’re good at something, impress me by showing me an example of your great work!
Another critical skill for someone remote that wants to work for a high-profile US company is to have strong English. I know there are many people that are not native English speakers so it’s always good to make sure that your English is very concise. If this is a weakness, don’t ignore it. Do whatever it takes to make sure that you understand English very well and that you’re proficient in communicating in English, too. It’s the language your team is going to use, it’s the language you’ll be using to comment your code, and it’s probably the language of the people that will be using the product you want to help build. It’s easy to think people will overlook weak English skills, but if there are two candidates that have the same experience and have performed equally well on the automated tests, the one with better English skills will perform more strongly in a live technical screen.
How to Ace Your Automated Testing
The key to a superlative performance on automated testing is to be very well prepared.
Ensure, for example, that if your area of expertise is Python, you have prepared yourself in terms of the coverage of the topics in Python.
Be sure you’re prepared to cover that language end to end because the questions will try to test your coverage. The exam will cover your in-depth knowledge as well. if it’s algorithms and data structures that you work on be sure you know everything from the most basic concepts all the way to graphing algorithms and runtime complexity.
How Long the Automated Testing Should Take a Skilled Developer
For a skilled individual, I estimate that our current automated testing will require about eight hours. So, maybe a day. But of course, you may not want to put all that pressure on yourself to finish everything in one day. My recommendation is to allocate two hours per day and give yourself roughly a week to do just about all the MCQs in the qualifying exams.
Technical Exams – Where You’ll Sink or Swim
Just like with the automated MCQs, your performance during the technical interview will come down to how well you’ve prepared yourself. During a technical screen, we want to understand your in-depth knowledge. We also try to validate your performance on the MCQs and to understand if you have good working knowledge of design patterns.
For whatever programming language you use, it’s critical that you know everything from the basics to some really advanced techniques. And since we only pass the top 1% of developers you need to be prepared to talk about the projects that you’ve worked on in a little bit of detail.
You also need to be able to answer system design questions. System design questions are very important for a screener to understand how you are able to visualize a product from an architectural point of view. You should also be able to go deeper, all the way to the code, and even how it is going to be deployed on the final environment where it’s going to run. So, you need to be prepared to discuss all those things related to end-to-end software development.
For example, if you are a Python Django developer, you should be prepared to answer any questions relating to that language in depth. It’s also good if you’re capable of answering questions about system design and also planning as well.
Where Developers Get Tripped Up in the Technical Screen
During a technical screening, most people are not prepared to go into detail on algorithms and data structures. Again, it comes back to preparation. We often have people complain that they don’t need to know this stuff for the work they do but being competent with both algorithms and data structures is very important for high-level work. Another thing I see a lot of candidates struggle with is when we ask them to explain various concepts in English. I’ll emphasize again, that having strong English communication skills is vital to ensure placement with top-tier US opportunities.
Final Words of Advice
To wrap up this post, I want to emphasize a couple of the key points I’ve made above. In Silicon Valley, it’s very competitive to find good work. If you’re trying to get into this market as a remote engineer, you have to be truly exceptional. Turing’s tests are designed to filter out all but the best candidates to be matched with our clients.
If you’re really serious about securing one of these most in-demand positions, my advice is as follows:
- Preparation is critical. If you have a weakness, work to improve it
- Don’t underestimate the importance of understanding algorithms and data structures because if you do, you’ll fail the MCQs or the technical screen
- Make sure your ability to communicate in English is up to the task. If it’s not, take action to improve it
- Be sure to have a portfolio that includes projects related to the languages you claim to know
- Polish your CV. Scrub it of mistakes because if you don’t, we’ll notice them and that will hurt your chances
In my next post, I’ll be talking about what you should expect once you’ve passed the MCQ and technical screens, how candidates are matched with opportunities and what you should do to ensure that your onboarding process goes as smoothly and quickly as possible.