From No Job Offers to Google: A 3.5-Year Journey in Tech

career development

Discover Faiz Hameed's inspiring journey from mechanical engineer to Google Software Engineer. Over 3.5 years, he navigated rejections, mastered coding, freelanced, and refined his interview skills to land a dream role, offering valuable lessons for aspiring tech professionals.

Imagine a scenario where you're dissatisfied with your current job, leading you to learn a new skill, such as coding and website development. However, despite applying for numerous programming positions, you face constant rejections without a single job offer. Many would give up, but Faiz persevered, steadily working towards his goal.

His dedication culminated in a remarkable achievement: after 3.5 years, Faiz was hired as a Software Engineer at Google, a testament to his commitment to continuous learning.

This article delves into Faiz's journey, outlining how he transitioned careers from learning code from scratch to ultimately securing a position at a leading tech company. His story includes valuable insights, mistakes, and lessons designed to assist others on their own paths.

Meet Faiz

“Hey there, my name is Faiz Hameed, and I’m currently a Software Engineer 3 at Google. I’ve been with the company for about four months and absolutely love it here!”

What did you do before joining Google?

Faiz began his professional life in 2016 as a Mechanical Engineer at a Pipe Coating plant in Saudi Arabia.

He describes the work as unexciting, staying for about 2.5 years. During this time, he dedicated his spare hours to learning website development. He found freelancing on the side particularly beneficial, as it allowed him to continuously learn new technologies while earning additional income.

Why pursue further training?

Faiz was generating good income from his part-time web development work and considered pursuing it full-time but needed guidance on where to start and how to acquire advanced skills. He discovered the Zero To Mastery Complete Web Developer course, which proved immensely helpful. It not only taught him project building but also provided insights into the tech industry and a deeper understanding of programming.

Following this, he delved into JavaScript, React, and other frameworks, securing roles at various tech companies before ultimately landing his current position at Google.

Were there any initial difficulties?

Faiz encountered minor difficulties understanding the underlying mechanics of certain technologies, particularly when learning React. However, he actively sought solutions by asking questions within the Discord community and extensively searching online – a crucial skill for any developer.

He emphasized the invaluable support of the ZTM community, noting its uniqueness at the time.

What other resources did you use?

While Faiz stated that the ZTM courses provided all he needed to get hired, he continued to take additional courses from ZTM and other platforms, driven by the importance and enjoyment of continuous learning. Beyond ZTM, he completed “The Complete Python Bootcamp” by Jose Portilla and “The Complete Node.js Developer Course” by Andrew Mead. For System Design, he utilized courses from Educative.io.

What was the biggest challenge in your journey?

“As a self-taught professional without a Computer Science degree, securing my first job was particularly challenging,” Faiz explained. He faced rejections from numerous company internships.

This led him to pursue freelancing, which allowed him to gain experience and earn income on his own terms. He started by offering free website services to a non-profit organization, then assisted friends with business or small company websites. This period of free work was brief, primarily aimed at building a portfolio. He also developed his own blogs and projects, which sharpened his skills and helped him apply theoretical knowledge to practical scenarios.

After nearly a year of part-time freelancing, he felt confident enough to reapply to tech companies.

Any regrets or lessons learned earlier?

Early in his career, Faiz relied on job sites like Indeed and Naukri (Indian-based) to secure interviews. However, he quickly learned the importance of mastering coding interview techniques and developing a strong portfolio, which he initially lacked.

He realized that he had too few projects to showcase, leading to fewer interview opportunities. When he did secure interviews, he often struggled with technical questions. Reflecting on this, he advises focusing on building numerous projects much sooner. While courses are beneficial, practical project development is key to getting hired, as it demonstrates abilities, leads to more interviews, and builds interview confidence.

This project-focused approach significantly paid off for him.

What specific steps led to getting hired?

Faiz's most effective strategy, learned through his experience, was proactively marketing his profile and portfolio:

  • Keep projects updated and continue learning.
  • Maintain an updated LinkedIn profile with relevant skills.
  • Network with professionals in various companies and inquire about their work.

This strategy often resulted in recruiters approaching him directly, rather than him having to apply. He notes that securing an interview directly through Google's careers page is challenging without a prestigious university background or specific keywords and experience matching a team's needs. Being approached by recruiters streamlined the process significantly.

The interview process: hits and misses

Initially, Faiz was approached by Amazon but failed the algorithm test. This setback prompted him to seriously prepare for Algorithms and Data Structures. During the subsequent six-month hiring cooldown, he intensely practiced problems and patterns, aiming to reapply. He retook courses on Algorithms and Data Structures and FAANG interview preparation. Following this, he solved over 350 problems on Leetcode to gain context, understand patterns, and explore multiple solutions for similar problems. This extensive practice helped him internalize patterns, making it easier to identify solutions during interviews.

He was also approached by several other companies, including:

  • Paypal (cleared, rejected the offer)
  • Twilio (failed)
  • Atlassian (failed)
  • Oracle (failed)
  • Agoda (failed)
  • Several YC-backed startups (all failed)

He rejected a good offer from Paypal because he wasn't interested in the project. For the others, he wasn't entirely sure where he failed, despite passing the technical questions with relative ease.

Four months after his failed Amazon interview, a friendly Google recruiter contacted him, initiating their hiring process. Faiz requested one month to prepare, later extending it by two weeks. He viewed this opportunity strategically: best case, he'd get the job; worst case, the rigorous Google process would further develop his algorithm skills, preparing him better for a potential re-interview at Amazon. Ultimately, he successfully passed the Google interviews, describing it as a great experience.

Faiz's journey highlights a crucial lesson: resilience. Each rejection wasn't an end but a catalyst for further learning and improvement, ultimately leading to his success at Google.

What was the Google hiring process like?

Google's interview process significantly differed from other tech companies Faiz interviewed with or was hired by. While other companies focused on experience and specific technical knowledge, Google conducted about six interviews covering a broad range of topics.

It began with an initial phone interview, which was relatively straightforward, involving coding in a Google Doc. This round served as a preliminary filter.

After passing the phone interview, he completed four more interviews: three coding rounds and one behavioral round. He also had an additional interview for a specific department. While a system design interview could replace one coding round, Faiz chose to stick to coding rounds due to his confidence levels at the time.

The coding questions were generally medium-easy to medium Leetcode-level problems, though no exact Leetcode questions were reused. He advises understanding problem-solving frameworks rather than memorizing solutions.

The next stage, after successfully passing the coding interviews, was the team match. This proved challenging as his primary experience was with JavaScript and React, while most teams sought candidates proficient in Java or Go. Eventually, he was matched with a team in Google Cloud. Since joining, he has been taking courses to acquire these missing skills.

What surprised you most about the Google hiring process?

Faiz approached the Google hiring process without many expectations. His primary goal was to gain more knowledge and enhance his algorithmic and data structure problem-solving abilities, not necessarily to land a role. He expressed immense satisfaction at having applied and succeeded.

How do you feel in your new position?

“Things have totally changed!” Faiz exclaimed. Although it's still a tech company with a role similar to his previous ones, he finds Google’s culture and ambiance highly enriching. He appreciates meeting intelligent individuals and the strong sense of belonging, coupled with numerous exciting projects.

Is there a significant difference in earnings?

Before his Google position, Faiz worked as a Software Engineer at Callsign in Abu Dhabi. He had previously interviewed at Google but was affected by a hiring freeze. He worked at Callsign for about six months, earning a very good salary. However, the Google position offered approximately 70% more, making it an undeniable opportunity.

Comparing his current salary, including stocks, to some of his previous companies, Faiz noted an almost 600% increase in earnings.