The workshop was an insight into the daily life of a Google Engineer with a comprehensive view on managing the complexity in software development projects.
About Google
As a company, Google prioritizes inclusivity and diversity, since their number one priority is the client. As Google is utilised in nearly every country, the team emphasizes accessibility. They ensure to have a representative workforce to cater to the needs of various clients.
Many fascinating facts were revealed about Google. The employers have different nicknames, given to them depending on their personality and hobbies. Moreover, a few perks that googlers get were shared. This includes free breakfast and lunch, access to a fitness centre, and surprisingly, you can bring your dog to the workplace. Furthermore, they have a 12-week maternity leave.
Day in the life of a Google Engineer
The day of a Googler starts with a cup of morning coffee and is followed by email management. Once the emails are sorted, the employee takes upon code reviewing and writes tests, after which the code is sent for further review. After lunch and possibly, another cup of coffee, the engineer has to attend meetings. Designing new features is also a part of the daily work schedule. Following that, the employee attends talks and events, and sometimes they have an interview with candidates. At the end of the day, workers have a chance to relax at the gym.
The importance of Code Review
The code review process in Google is deemed as mandatory. It all follows quite a simple cycle - the code is reviewed, changes are made, and then after further feedback is received, more changes are implemented.
The process of reviewing has to include at least one other person, and they must have 'readability' - high-level understanding of the used language recommended and dangerous practices.
Ensuring that Code Review is carried out frequently boosts the health of the code, guarantees high-grade design without the necessity of high-maintenance and adheres to style requirements.
Testing on several machines is a must to secure accessibility; therefore, the code is also tested in different environments. At first, fake data is used for development purposes. However, later on, real data comes into play to approve the finished features.
Principles of working as a team
Each team at Google can decide what software development approach they wish to take, such as Scrum, Agile, Kanban, Free-form, etc. The teamwork is flexible, which means the approach can be changed at any time if it's not working out. Googlers grow by learning from each other and sharing their knowledge with their team members.
The solution to complex problems
At Google, you have to find the solution yourself - no one will solve the problem for you. The engineers are trusted to be capable of finding an efficient solution to the set problems.
Team communication is vital when it comes to solving intricate problems, and every engineer should speak before coding to warrant everyone is on the same page. Sharing design is essential, as your colleagues might have a look from a different angle, which could enhance your project. This also helps to avoid issues, as others might have learned to not make the mistake that you've made.
Coding for Google
Finishing a project at Google can be quite challenging as their products are held to a very high standard. Many different areas are considered. This includes handling high traffic, ensuring low latency, security, responsible handling of the user data, international access, and most importantly - accessibility.
Provided flexibility
Software engineers at Google can spend 20% of their time working on something they are passionate about this. This can be anything, as some employees might want to improve their effectiveness in a certain language, whilst others might explore their hobbies. This is how many large-scale projects were started, including Gmail.
Skills learned when working at Google
You learn how to write clean, elegant code, and exercise the best industry practices for large-scale software development, such as testing, design and deployment. Moreover, you expand the arsenal of your abilities, including technical and soft skills. Your leadership abilities also get a considerable boost as you're constantly taking upon new challenges and explore the latest technology.
To sum it up, Google is about mastering your tools and seeking consistent growth. Everyone can write excellent code, as there is so much material to help you - it only requires time. You must never stop learning, and if you do, you should change jobs.
If you're ready to apply for a job, you must write clean, readable code and practice for coding interviews. Sometimes it might take a few months of daily practice to master your abilities. The speakers suggested reading 'Programming Interview Exposed', 'Secrets to Landing Your Next Job, 3rd edition' and 'Cracking the Code Interview, 6th edition'.
Reviewed by Gerda Ugne Pupelyte
Comments