It's almost over year since I told myself "It's time to look for a new job and move abroad." What could possibly go wrong?
Yes, Amazon. Somehow they thought my profile was interesting and they told me that they were hosting a hiring event in Buenos Aires in November. The job description was: Software Engineer with 5 years of Experience and a long list of required skills.
In order to qualify for this hiring event, I had to pass a code challenge. I already knew that I was going to fail but I needed to, at least, try it and learn how big companies search for candidates.
The code challenge consisted of 2 problems. A k-closest points problem with some variations and some sort of backtracking problem. After the problems, I had to answer some questions about time complexity.
- Result: Fail
- Problem: I didn't practice as I should had done
- Lesson Learned: Go and practice more. Read more about data structures, dynamic programming, etc. I started to read some books about competitive programming and to solve problems in hackerrank.com
I was actively looking for jobs in stackoverflow. I was looking for a company where I can use a tech stack of my interest and where the main product is awesome from my perspective. I mostly searched for young start-ups with an environment or health care related product/solution.
I came across with a cool Swedish company and I applied for a Senior Software Architecture position. This time I had a first interview with HR. Then they sent me a code test where I had to build an API with a client app, taking care of TDD and CI. Stuff I really like.
Then I had a technical interview. But, one day before the interview, I decided to impress them. I installed their Android app and decompiled it. I did some reverse engineering, I read their code. I also found a Firebase API Key and proved that I was able to access to a small db with no relevant data, but I was able to add entries. The db didn't have any restriction rules. I knew lots of things about their architecture and tech stack before the interview, so I made a list of things I would improve in the app and told them about that API KEY. This interview was really nice, they were excited about my answers.
- Result: Fail
- Problem: My spoken English wasn't good enough for the role as I had to be very communicative with every team in the company.
- Lesson Learned: Talk more! I'm a Spanish speaker and I learned English because of programming but I didn't have many opportunities to talk with English speakers. So, I hired an English teacher and I started to join some meetings were people talk in English.
This time I was contacted by the CEO. He thought I was a good fit for a full-stack position in the company. We scheduled some interviews. I did pair programming with a really simple task. Then I was interviewed by the Product Owner. And finally with the CEO again. I was in! They made me a good offer.
- Result: Fail
- Problem: Getting a Work Permit for Germany (or the EU) without a university degree is hard, but it is still possible
- Lesson Learned: Search more about work permits and immigration laws, requirements, etc. I found out that the university degree is not required if the salary is high enough and you qualify as a high skilled professional. I also did some online courses on Edx and Udemy to get certificates.
I already improved my problem solving skills and my English (still working on both), I read a lot about work permits and immigration laws. In the mean time I've also learned how to negotiate my salary and benefits (I had no clear idea on how to do it).
This time, the first things I mentioned to the HR agents were my concerns about the work permit, VISA sponsorship and salary expectations. They told me that they were sure there won't be any problem since I have many years of experience.
I've already passed the code tests for both companies and I'll have more interviews next week. I applied for a full-stack position in both companies.
- Result: Pending
This is not an easy task. Some people may say "I quit" and they are ready to move on. I've been thinking about moving abroad for almost a year. I decided to talk with my project manager in May of last year. As a project manager he tried to renegotiate with me, or even give me the possibility of working from anywhere. As a friend he told that I'm doing the right thing, that I'm young and I have all these opportunities; I have to do it.
So if you are thinking about quitting your job, try to answer the following questions:
- Why do you feel like this?
- Have you talked with your family, friends and/or coworkers about it?
The main reasons why I wanted to quit were:
- I like European languages, culture and landscapes
- I started to feel stuck in my career, I want to work with new things like Machine Learning.
I'm leaving the company with a really warm goodbye. I think this was possible because I talked and expressed my feelings to them many months before my final decision.
I learned a LOT with this whole process. I feel more wiser as an adult (some times I forget I'm an adult) and as a professional software developer as well. I learned how to be interviewed, not only for technical questions but also how to talk about me as a potential candidate; how to tell them why I'm a good fit for the position and the company. I learned how to identify my weaknesses and how to work on them.
Sometimes receiving bad news could be hard, not getting a job you felt eager about. But don't give up. There are lots of companies that will want to hire you if you show them your potential. If you fail in an interview, ask kindly for feedback.
Keep learning. Try to solve problems every day, read articles about new tech (BTW I love this community), try new frameworks or languages, start side projects. Get out of your comfort zone.
Thank you for reading and feel free to share your experience in the comments!