How can a Java programmer get a job at Google? Where do I start? What skills would be required?

Updated on : January 17, 2022 by Rhys Howard



How can a Java programmer get a job at Google? Where do I start? What skills would be required?

Many have asked this before and people (currently working there) have shared how they prepared for the Google interview. I think Satwika's answer to one of those questions might also answer yours.
Anonymous answer to What should I expect in a software engineer interview at Google and how should I prepare?

How can level 3 / level 4 college of engineering and arts students find themselves on Google, Facebook, Amazon, etc., etc.?

I worked for Google for about 4 years and from my experience, being interviewed for roles at Google many times, both before my employment at Google and afterwards, for different roles while working there, I can say that there are many factors that influence the decision. of hiring someone for a position and sometimes they are not fair. Here are some factors that many people are unaware of.

1 - Does Google hire the smartest people?

No. I can say that Google's hiring process is most of the time very efficient and they do not hire the smartest people, but the most suitable for a certain position.

Keep reading

I worked for Google for about 4 years and from my experience, being interviewed for roles at Google many times, both before my employment at Google and afterwards, for different roles while working there, I can say that there are many factors that influence the decision. of hiring someone for a position and sometimes they are not fair. Here are some factors that many people are unaware of.

1 - Does Google hire the smartest people?

No. I can say that Google's hiring process is most of the time very efficient and they do not hire the smartest people, but the most suitable for a certain role. They are really smart. It's not just about your knowledge and skills, it's also about how well you perform in that position.

2 - Is the Google interview process very difficult?

Yes and No. It depends. It will depend on the interviewer, recruiter and how long the position has been open, how quickly they need someone for the position, and the skills of other candidates. Some interviewers want to hire a copy of themselves and in this case, no matter how good you are, if you don't share the same style and personality as the hiring manager, you won't get the job.

3 - Most of the time they have someone in mind for the role.

I can explain that in more detail later, but at Google they need to interview multiple people for a position. Sometimes they loved the first candidate and when you showed up for the interview they already fell in love with someone else. However, they are still obliged to interview the other candidates and sometimes they will do it very badly because they see it as a waste of time. In cases like that, you will probably walk out of the interview feeling like you won't get the job.

4 - Are you always looking to hire the best candidate?

Not always. There are a lot of insider recommendations for roles, and unless the person someone referred you is really bad and you're incredibly good at what you do, chances are you won't get the role.

Google is the company where I saw the highest number of Googlers friends, husbands, wives, boyfriends, girlfriends, brothers and sisters hired. In my team, at least 25% of the people have a family member or someone very close who works at Google.

5 - Heart rate can be very lazy

You have to think in terms of supply and demand to understand the recruitment process at Google. They have hundreds, sometimes thousands of people applying for a position on Google. They don't need to scout for talent (although most of the time they do), they already have millions of people wanting to work for them.

For that reason, recruiters are sometimes really disorganized and don't care much about you and can't send you enough information that you will need to perform well in the interview.

But that is not the rule. I believe that most of the time they do a decent job and in their defense they receive thousands of applications a month, 95% of the time from people who are not suitable for the position.

6 - You need to be lucky

I have a friend at Google who said that his technical interview questions were very similar to the questions he had been practicing in a book on technical interview questions. He was fortunate to be prepared to answer all the questions correctly and faster. I know another guy who is really normal, but who worked with a Googler at an agency and when a position became available they recommended him for the position.

You have to keep in mind that the hiring process in Google is not perfect. I think there is a lot of decision-making power in the hiring manager's hand.

7 - There are many average people

One thing you hear a lot during your first few months at Google is about imposter syndrome. Google has amazing people working for them and some of the brightest people I had the pleasure of working with I met at Google. However, there are also many average people. What you don't see is anyone below average. Everyone has at least enough skills to do a reasonable job. I think Google is good at providing a fertile environment for personal growth. It also challenges you to keep improving, but still, there are some folks who are happy enough to be on Google and not worried about improvement.

8 - Non-technical roles

Non-technical roles are the most difficult because it is difficult to establish the correct success metrics for a candidate. Technical roles are easier because 70% of the process is to show that you have great skills and your methods to solve a problem.

When it comes to non-technical roles it is very easy to get a false positive. It's not hard to cheat the process if you're really good at interviewing or the hiring manager isn't very skilled either. I worked for a large, well-known company where the team leader was not really trained and unprepared for his role, but his manager (the department director) was also untrained and unprepared. So if you're applying for a position where hiring managers are bad at what they do, chances are they will hire someone just as bad as they are. In my case, I was hired because someone else with great influence in the company decided that I was the right candidate.

9 - Googleness

You hear a lot about Googleness, but I think that as long as you don't do something really awkward or unprofessional during the interview, Googleness isn't that important. Googleness is a "metric" that shows how apt you are to work in the Google environment.

So I can tell you about Google, which is a Google search engine. You only need one skill: problem solving ability. At Google, we are more interested in knowing if you can tackle an "invisible" problem and if you can, then how efficient your approach is.

Second, we are interested in giving you the problem, which has a number of obstacles. This assures us that you are the right person and not a "lucky" recruit.

You must know the basic data structures, strings, etc. Again, I emphasize the basic data structures. If you are a recent graduate, I can ask you to code an avl tree or a black red tree and then apply it in some other application.

Keep reading

So I can tell you about Google, which is a Google search engine. You only need one skill: problem solving ability. At Google, we are more interested in knowing if you can tackle an "invisible" problem and if you can, then how efficient your approach is.

Second, we are interested in giving you the problem, which has a number of obstacles. This assures us that you are the right person and not a "lucky" recruit.

You must know the basic data structures, strings, etc. Again, I emphasize the basic data structures. If you are a recent graduate, I can ask you to code an avl tree or black red tree and then apply it in some other app, but if you are not a recent graduate, we understand that you may not be in contact with avl or black red trees . . But still, we hope you are familiar with linked lists, stacks, queues, basic charts, basic trees, etc. I will understand that you know the basic charts but not the dijikshtra algorithm, as it is not a recent graduate or brain oxidations.

It would be nice if you could show us your skills. Create a profile, portfolio, github acc, etc. and just show us. I will get to know your skills and abilities even before you show up for the interview and it will help us both.

I don't care much what language you use, but it is advisable to select some popular language like c / c ++ / java / scala / go / python, etc. I don't know erlang, but it's fine until its syntax is understandable to me. But don't go for the language it is ... You must have understood.

Practice the code on paper. I will not give you a compiler or ide and you will be writing it on a whiteboard. We are not concerned that you are missing a semicolon in your code, but if you make a mistake in the function parameters and arguments and try to convert char to char *, we will notice. Ide gives you a direct error but not a whiteboard. Trust me, we know all kinds of compiler errors and our hands are very dirty from coding. That is why we will not miss those mistakes. We wrote tons of code without those one-time errors.

All the best!!!

Practice data structures and algorithms safely. I got a job offer from Google Warsaw right out of college. I mostly credit my experience of participating in many coding contests for that, as it helped me develop great problem-solving acumen. I will post my Google interview experience here:

I contacted a recruiter I knew to schedule full-time SWE interviews.

I had my first round online in October 2018. I was asked an easy tree problem and I was able to do it in 30 minutes. We then discussed how we could parallelize some of the parts of my solution for the same problem and t

Keep reading

Practice data structures and algorithms safely. I got a job offer from Google Warsaw right out of college. I mostly credit my experience of participating in many coding contests for that, as it helped me develop great problem-solving acumen. I will post my Google interview experience here:

I contacted a recruiter I knew to schedule full-time SWE interviews.

I had my first round online in October 2018. I was asked an easy tree problem and I was able to do it in 30 minutes. We then discussed how we could parallelize some of the parts of my solution to the same problem and the interview concluded.

My second round online was in November 2018. If I remember correctly, it was about finding a way in a BST. We discuss the case in multiple ways, etc. and then I was able to find a semi-optimal solution. My interviewer gave me a hint and I was able to find the optimal solution and code it way ahead of time. I made it through this round and was invited for on-site interviews in London.

My on-site interviews took place in December 2018. In fact, I went to the wrong Google office in the morning! But since I left early, I had some extra time, so I ran to the right office and was able to arrive at the last minute. He was supposed to have 4 algorithmic interviews and a Googliness interview.

My first interviewer showed me the office. Then the rounds of interviews began.

For my first round I was asked a medium difficulty bit manipulation question. This round was pretty good and I was able to finish the round 5 minutes early.

For my second round they asked me a graphic question. I explained my solution and they asked me to write the code to build just the graph instead of solving the whole question. This round also went quite well.

Next, I had the googliness round. It's basically a behavioral round, so they asked me questions like what are my expectations when working at Google, what criteria do I use to prioritize projects, etc. This round was meh because I don't have a lot of work experience so I was only able to give slightly vague answers to questions. But I wasn't too worried because I think it's an experimental round that only happens in some Google offices (London is one of them).

I had my lunch break, ate light.

The third round was the hardest. It was a graphic question about permutation rings. It took me a bit of time to find the solution and I wasn't really sure about it. But the interviewer said my test was fine, so I coded it. I had 1-2 trivial errors that I fixed after the interviewer pointed them out. I think this was my strongest round as tough questions can go a long way in distinguishing algorithmic ability and my competitive programming background helped a lot here.

The fourth round was based on trees and basic probability. It was easy-medium and I was able to code without any errors so this round went well too.

After the new year I got a call from my recruiter saying that my interview scores were good enough to move on to the host search phase. In this phase, my recruiter basically tried to find a team on Google for me. I was paired with the Google Cloud team in Warsaw and got my offer in April.

As you can see, most of my rounds were based on data structures and algorithms, so my experience in programming competition helped a lot in clearing these rounds.

I recommend that you start entering coding contests right away. To get started, look at some of my answers:

Sameer Gulati's answer to How should I get started in competitive programming?

Sameer Gulati's answer to What made you good at competitive programming?

About 2-3 months before the interview, switch to troubleshooting at Leetcode, CareerCup, etc. to gain experience in solving interview problems. Having a little experience in competitive programming will make solving these problems much easier for you.

I have worked in both companies, in several teams in each one. It's just anecdotal evidence, but I was amazed at the superior quality that my fellow software engineers at Google looked like compared to those at Microsoft. A few reasons come to mind:

Google's engineering interviews were more difficult but also more consistent across the company. The software engineering interviews are the same for any software engineer hired at Google. Once you're on Google, everyone knows you passed the same hiring bar. At Microsoft, hiring is chaotic, disorganized, and random. Each team has its own hiring practices; t

Keep reading

I have worked in both companies, in several teams in each one. It's just anecdotal evidence, but I was amazed at the superior quality that my fellow software engineers at Google looked like compared to those at Microsoft. A few reasons come to mind:

Google's engineering interviews were more difficult but also more consistent across the company. The software engineering interviews are the same for any software engineer hired at Google. Once you're on Google, everyone knows you passed the same hiring bar. At Microsoft, hiring is chaotic, disorganized, and random. Each team has its own hiring practices; There are no company-wide guidelines. There are pros and cons to this choice; Different teams have different needs, and I liked being interviewed at Microsoft about things relevant to the team I would be joining (and it was nice interviewing the people I would be working with). On Google I never saw my interviewers again and some of the questions were pretty random. But that steady bar made me confident that everyone else in the company had at least a minimal quality of engineering skill. At Microsoft, everyone has a random different skill level, even people with the same job level.

One aside: this lack of a hiring standard made internal transfer at Microsoft really difficult - to join any new team, you have to RE-INTERVIEW as if you were an external candidate, as other teams have to assume you know nothing. I was literally sent DRIVING INSTRUCTIONS and instructions on HOW TO PICK UP AN HR VISITOR BADGE when I applied for an internal transfer and set up an internal interview once I had been working at Microsoft for a few years. This left a very bad impression on me. Internal transfers are extremely difficult at Microsoft, so when my team disbanded and I was asked to find another team to transfer to, I left the company. And to answer the original question, I suppose because of this many people like me decide to leave Microsoft when things change ... it is very difficult to re-interview over and over again with internal teams just to keep the job. Those of us who are able to join higher paying companies are likely to leave.

That brings me to another point: Microsoft made an extremely low offer to join when I first applied there. I had a hard time negotiating for them to offer something comparable to Google, and even then the problem was that after the initial 4-year stock grant ran out, they would suddenly pay me less than Google again. Annual stock "refresh" amounts were very small compared to Google's; so much so that I was really taken aback after my first annual stock check and update; it seemed like a mistake. I got a huge performance share bonus on top of the normal one, and combined, they were still less than I would have received at Google in an equivalent or even lower position.

In general, Microsoft pays its average software engineering employee much less than Google. A typical intermediate "L4" software engineer at Google could be earning between $ 200,000 and 300,000 annually in total compensation, while a similar 61-62 intermediate level engineer at Microsoft probably costs less than $ 200,000 annually. . Even Microsoft "senior" software engineers still earn less than $ 300k, while $ 300k is more like a lower limit for a "senior" engineer at Google. At Microsoft, wages go up "exponentially" (or at least that kind of general way) as levels progress from the lowest level (59, don't ask) to 70. In other words, the curve is more shaped like "elbow". , 67, and through the levels of Partner (68+). Very few people at Microsoft make it to the level; many hit a high of 64 (one level higher, again below $ 300k). At Google, it's more typical to peak at the L5 senior level, in the $ 300k + range. And people from L6 (personal) could get between $ 400,000 and $ 600,000. At Microsoft, you don't reach that $ 500,000 area until you reach at least level 67. In my case, I was at level 65 at Microsoft (starting director level, about $ 320,000 a year) and decided to quit and join another technology company (non-Google) and managed to get around $ 500,000 a year in compensation. 67, and through the levels of Partner (68+). Very few people at Microsoft make it to the level; many hit a high of 64 (one level higher, again below $ 300k). At Google, it's more typical to peak at the L5 senior level, in the $ 300k + range. And people from L6 (personal) could get between $ 400,000 and $ 600,000. At Microsoft, you don't reach that $ 500,000 area until you reach at least level 67. In my case, I was at level 65 at Microsoft (starting director level, about $ 320,000 a year) and decided to quit and join another technology company (non-Google) and managed to get around $ 500,000 a year in compensation. At Google, it's more typical to peak at the L5 senior level, in the $ 300k + range. And people from L6 (personal) could get between $ 400,000 and $ 600,000. At Microsoft, you don't reach that $ 500,000 area until you reach at least level 67. In my case, I was at level 65 at Microsoft (starting director level, about $ 320,000 a year) and decided to quit and join another technology company (non-Google) and managed to get around $ 500,000 a year in compensation. At Google, it's more typical to peak at the L5 senior level, in the $ 300k + range. And people from L6 (personal) could get between $ 400,000 and $ 600,000. At Microsoft, you don't reach that $ 500,000 area until you reach at least level 67. In my case, I was at level 65 at Microsoft (starting director level, about $ 320,000 a year) and decided to quit and join another technology company (non-Google) and managed to get around $ 500,000 a year in compensation.

The point is, it appears that Microsoft's salaries for typical engineers peak at a significantly lower level than Google's. Compensation drives many decisions about where people work, and we can assume that many people accept work that will maximize pay. So, when Microsoft's practical salary limit maxes out at a lower level, the only people who follow this criterion who stay there long-term are those who can't get a higher-paying job elsewhere. The rest of us eventually go to places like Google (or a host of other tech companies that pay more).

My impression was that, as a result, Microsoft hires more people than Google and builds larger teams, while Google has smaller teams of more competent people. There seemed to be a lot more turnover at Microsoft as new hires hired out of school and then left when they found something better.

Tech companies like Microsoft, Google, Facebook, Amazon, etc. they are innovative. They are generally less interested in the languages ​​you can program in than in your ability to program in any language. They are looking for people who can solve complex problems in a simple and intuitive way using computer code, either by developing an efficient back-end that drives functionality or a user interface / interface that exposes that functionality in a powerful, expressive and natural way. intuitive. .

Microsoft does a lot of coding in Python, so it is certainly possible that you can code primarily (although perh

Keep reading

Tech companies like Microsoft, Google, Facebook, Amazon, etc. they are innovative. They are generally less interested in the languages ​​you can program in than in your ability to program in any language. They are looking for people who can solve complex problems in a simple and intuitive way using computer code, either by developing an efficient back-end that drives functionality or a user interface / interface that exposes that functionality in a powerful, expressive and natural way. intuitive. .

Microsoft does a lot of coding in Python, so it is certainly possible that you can code primarily (though perhaps not exclusively) in Python. But if you go to an interview or internship with the "I'll just code in Python" mindset, you'll probably significantly hurt (or kill) your chances of getting hired there. And I don't think Microsoft is unique here.

Think of it this way. They can hire you: a Python programmer with no interest in learning other languages ​​(particularly your most widely used language), or a Python programmer willing to expand if the need arises. Which one does Microsoft find most useful?

In my experience, it is not uncommon to be hired as a programmer to work in a language that you have never used before. It happened to a friend who now works at Microsoft. I had experience with Python, C ++, C and Fortran and now I mainly use Go in my new job.

I'll also add that every programming language I learned made me a better programmer overall (which, by extension, made me a better Python programmer). I love Python, and it will probably always be my favorite. But I would never close myself to learning other languages, especially if it was for a job I wanted to do. The fun part is really problem solving - the language you get (or have) to use is just the icing on the cake.

I will answer by taking into account the point of view of a cooler CS with the goal of a job in a high-tech company. In case you are facing interviews soon, feel free to jump to the end of the answer.

Most of my advice is based on the interviews I have faced (specifically, Microsoft, Google, and Uber). The plan provided here helped me clarify your interviews, I hope you find it helpful as well. We can divide the preparation stage into approximately four stages.

Building the foundation:

  • The first step is to become familiar with a programming language. I would recommend Python because of its flexibility and compatibility with the library.
Keep reading

I will answer by taking into account the point of view of a cooler CS with the goal of a job in a high-tech company. In case you are facing interviews soon, feel free to jump to the end of the answer.

Most of my advice is based on the interviews I have faced (specifically, Microsoft, Google, and Uber). The plan provided here helped me clarify your interviews, I hope you find it helpful as well. We can divide the preparation stage into approximately four stages.

Building the foundation:

  • The first step is to become familiar with a programming language. I would recommend Python because of its flexibility and compatibility with the library, which makes it much easier to get started with different projects. Here are some links to get started,
    • Google Python class
    • Coursera: Introduction to Python Programming
  • The next step focuses on your theoretical foundations. Be on the lookout for foundational computer science courses taught at your university. In case you don't have access to your college courses, try these equally beneficial alternatives.
    • Udacity: Introduction to Computer Science
    • Coursera: Algorithms - Part 1
    • MIT: Introduction to Algorithms
  • Pay particular attention to data structures and standard algorithms and focus on standard algorithmic paradigms, including greedy algorithms, dynamic programming, divide and conquer, etc.

Explore multiple fields:

After concentrating on your fundamentals, you should now start to dive into a few core topics. This stage would involve taking part in advanced courses and carrying out various projects.

  • Start exploring different fields, below are some required courses for a CS graduate offered.
    • Coursera: Machine Learning - Stanford University
    • Udacity: Introduction to Operating Systems
    • Stanford Online: Compilers
  • In the meantime, keep working on side projects as they give you an experience that normal courses cannot. If you don't have project ideas, you can check out my answer on possible side projects.

Developing your profile:

Many students are confused regarding this stage due to its inherent vagueness. Should we focus on competitive programming or side projects? I covered this in another answer, but the bottom line is to have concrete results. Results that demonstrate your skills and competence for the job. They can be,

  • An active GitHub handle with quality repositories
  • Good performance in competitive programming contests
  • Various projects that demonstrate your skill
  • Research Articles: Their importance in technology interviews is debatable, but they surely demonstrate your ability to perform on long-term projects.

Preparation for interviews:

You have strengthened your foundations, now is the time to challenge the most critical part. This stage can be divided into the following,

  • Getting Started - This is the initial stage where you primarily research and become familiar with the interview process. Reviewing data structures and algorithms should be your main focus at this time. Some useful resources,
    • Blogs, official Google site
    • Interview help books (for example, how to decipher the coding interview)
  • Practice - This is where the actual preparation happens. You need to choose a language and start coding in it. This is a good time to start coding on the board. You should also start practicing the specific interview questions now. Here are some resources to help you practice.
    • InterviewBit
    • LeetCode
    • GeekForGeeks
  • Consolidation: We are in the final stages before the actual interviews, now is the time to consolidate what we know. One important thing in the last few weeks would be to practice solving questions "out loud." Doing mock interviews can also help you perform much better in real business.
  • The duration of this stage can vary from months to weeks. I had originally built the above for my Google interviews (extensive details in another answer).

If you have completed all the steps above, all that is left is to sit back and enjoy the amazing hotel reserved for your on-site interviews. All the best!

They are a bit non-traditional in my experience. They consider people who have real-time, built-in low-level experience for server-type jobs, as that type of experience (efficiency) is directly relevant to servers, but not a typical skill in that area.
They value people's ability to write code that works efficiently, both by algorithm and by implementation. As other people have said, this usually involves engineering and science types rather than someone who, for example, has only done Java-based server work.
The breadth of the experience is important as is the depth.

As for what to bring

Keep reading

They are a bit non-traditional in my experience. They consider people who have real-time, built-in low-level experience for server-type jobs, as that type of experience (efficiency) is directly relevant to servers, but not a typical skill in that area.
They value people's ability to write code that works efficiently, both by algorithm and by implementation. As other people have said, this usually involves engineering and science types rather than someone who, for example, has only done Java-based server work.
The breadth of the experience is important as is the depth.

As for what to take from your course, everything! Learn about the high-level architecture decisions required in the software, as well as the low-level implementation details. These two things can impact each other.
Learn various types of languages ​​(not similar to each other), learn enough of them to have good opinions on when and where they should be used.

Above all, be curious. Enjoy learning. the world of software (and technology in general) is not standing still. to be ahead, you have to continually learn. This is not optional.
Be curious and be willing to learn ... the experience will continue.

  1. Apply for a position in which you have relevant experience and / or education
  2. If there is an option and you are young, try applying for an internship first.
  3. Read the job requirements and prepare to be the best candidate
  4. Have a little luck
  5. There you go!

But totally honest, at least at Microsoft, if you don't know anyone inside, you need more than a little luck. Unfortunately, most positions are not filled by the best possible candidate, but by people hiring managers already know, so if you really want to land a job there, I advise you to start networking.

I guess most people dream and aspire to work at Google. But landing on Google is not a piece of cake.

One has to know that the recruitment process at Google for new graduates or experienced software developers is the SAME.

Always keep in mind that you must be Strong in FOUR areas

a) Algorithms,

B) Data structures,

C) At least one programming language like Java, C ++, JavaScript, etc.

D) Mathematical Logical Skill: Could it seem strange that why mathematics is required? But I can guarantee that many of the Google interview questions can be easily solved if you are strong in math. T

Keep reading

I guess most people dream and aspire to work at Google. But landing on Google is not a piece of cake.

One has to know that the recruitment process at Google for new graduates or experienced software developers is the SAME.

Always keep in mind that you must be Strong in FOUR areas

a) Algorithms,

B) Data structures,

C) At least one programming language like Java, C ++, JavaScript, etc.

D) Mathematical Logical Skill: Could it seem strange that why mathematics is required? But I can guarantee that many of the Google interview questions can be easily solved if you are strong in math. This skill will help you to think faster and find the correct solution when any logical question needs to be solved in the interview.

GOOD LUCK GUYS. WE HOPE YOU SAFELY SUCCESS.

In a larger context, yes. But from what I remember my interview experience, they focus more on your engineering concepts and how you put them on paper, regardless of any programming language. They pretend to convey a message as if they were teaching you any programming language, but they cannot teach attitude and engineering.

Other Guides:


GET SPECIAL OFFER FROM OUR PARTNER.