Showing posts with label #facebook. Show all posts
Showing posts with label #facebook. Show all posts

Thursday, August 5, 2021

Is it Different Working for FAANG?

Are you hopeful of getting a job with Facebook, Amazon, Apple, Netflix, or Google (FAANG)? Do you think you might be better off working with a startup instead? If you are wondering how it might be different working for FAANG, know that the answer lies in the little details. These include the required experience, the type of work you get to do, the compensation on offer, and then some.

The Pros of Working With FAANG

Getting a job with market leaders such as Facebook, Amazon, Apple, Netflix, or Google comes with a number of advantages.

  • Compensation. The top reason engineers drift toward FAANG is the compensation they stand to receive. While Facebook is known to offer signing bonuses of up to $100,000, the average annual compensation at Netflix hovers around the $400,000 mark.
  • Reputation. Networking and getting job interviews can become considerably simpler when you have FAANG listed on your resume.
  • Highly valued. Many FAANG engineers have a lot of control on their projects, and are tasked with major responsibilities. These companies are known to value their engineers more than ones that do not revolve completely around technology. When working at FAANG, engineers have the latest technologies at their disposal. They also get to solve technical problems at scale. 
  • Stability. Larger companies typically follow well-defined structures, be it for operations or growth. Employees tend to be well aware of their responsibilities. They don’t have to worry about volatility as they would in startups, which is ideal for people who are seeking professional stability. With a startup, a single bug can lead to failure or bankruptcy, whereas retooling is always an option at FAANG.
  • Perks. Perks for FAANG employees can come in the form of parental leave, paid time off, transportation coverage, wellness benefits, and stipends for higher education.

The Possible Downsides

Not all in hunky-dory in the FAANG world, or their employees would never leave. Incidentally, a recent study carried out by Blind and AngelList shows that around 60% startup employees are happy with their jobs, which is 30% more than their FAANG and Microsoft counterparts.

Other than suffering from burnouts, which are very real, here are other possible drawbacks of working at any of these companies.

  • Lesser creative engagement. Positions at FAANG are typically highly specialized, which gives average employees a prescriptive and limited scope of creative engagement. This is because the skills required for such projects might focus on maintaining functionality as opposed to creating something new. Over time, you might realize you have nothing new to do, and are functioning as no more than a cog in the wheel.
  • Cultural mismatch. Dealing with the corporate culture that FAANG follow might seem challenging for some people. While each of these companies has its own distinct culture, what they share in common, with the exception of Apple, is that they’re not very old businesses. Ex-FAANG employees have often complained about bureaucracy problems, poor work-life balance, internal politics, and impersonal management. So, you might find yourself stuck in office politics that hamper your growth, despite years of good performance.
  • Difficulty in standing out. The more the competition, the harder it becomes to stand out. This holds true not just during the application process, but also when you become an employee. To make a mark for yourself, you need to be able to deliver great results consistently with minimal attention required for your development.
  • Cost of living. Several engineers and software developers wish to join FAANG and move to areas such as Silicon Valley, San Jose, and Seattle. While relatively high compensation packages might seem like a good reason to relocate, you also need to account for the higher cost of living. For example, rents in the greater Seattle area and Silicon Valley are among the highest in the country. You might also want to consider how much time you would end up spending in commuting to and from work.

Conclusion

Getting a job with Facebook, Amazon, Apple, Netflix, or Google might look great on your resume, and you may also get a good compensation package. However, will it give you the value you seek? To answer this, identify your priorities ahead of time and determine if joining FAANG will help you in achieving your goals.


Wednesday, June 30, 2021

How to handle teammates that hog up time in Standup meetings?


Introduction

Have you ever been in a meeting where you or your teammates were not given the chance to speak-up or discuss your tasks and ask your questions because there was that one single team or member who spent more time than they are supposed to with the manager of the meeting, discussing aspects related to their own assignment without giving consideration to the time limit or other teams waiting in line?! There is a high chance that you have gone through or experienced this situation yourself at least once during your career or academic studies. In this article, we are going to provide some point that will help you to deal with that. 

Standup meetings

In today’s world, time is money. For example, every second that passes by in wall street, thousands or millions of transactions are made, companies and individuals can lose or gain a huge amount of money if they do not react quickly or in a timely manner. A company can lose a patent or an invention to its competitor, just because they were seconds late. This is a fast-moving world that does not wait for people who are slow.  After understanding the importance of time specifically in the business industry, let’s explain briefly what are standup meetings. Standup meetings are basically group meetings that are conducted between participants with one simple difference that you might have already guessed it, it is conducted while the participants are standing. The main aim of conducting the meeting with participants standing is to make the meeting duration short and quick, where just basically the main feedback or essential tasks are discussed and then everyone is back to their own work. This gives managers and teams the opportunity to be updated on projects’ progress, potential issues and prioritize tasks. This type of meetings is currently being used widely in companies and even in universities and schools. Standup meetings can last between 15 to 30 minutes depending on the size of the teams and project. 

Importance of Standup meetings

Among the unique features of standup meetings is that they do not need to be conducted in meeting rooms, equipped with chairs and projectors, instead they can be conducted in hallways, courtyards or in any other area that can just accommodate the participating number of people. Standup meetings give all members the chance to present and share their work and update briefings in a concise and effective manner. This creates some kind of leaning forward concentration in the meeting among the participants instead of the traditional laid-back approach of participants sitting on chairs and listening to prolonged hours to the presenting participant. The standing position of participants creates and boosts participants attention and information retention. This helps in speeding meetings up, which can be a huge waste of time if conducted in the traditional way. This improves productivity due to the minimal disturbance of the workforce. 

Problem Identification

Standup meetings are not meant to last long as they are intended to address main issues and updates in brief details and in a clear manner. However, some individuals or teams do miss the main point of standup meetings and go into details taking so much time and wasting their own and others time. This inconsiderate behavior creates a toxic waste environment that badly affects all teams and the organization as a whole. Standup meetings are not intended to discuss each and every step that was taken to solve an issue but rather to be concise and to the point with your presentation. Some team members might not get the chance to represent their work, concerns or issues, giving a bad impression to the manager or the team leader. 

How to handle a Standup meeting?

There are three main players in a meeting, the presenter (the person who is talking and presenting his work and issues he/she is facing), the manager (the person who is running the meeting and responsible for the combined work of all teams) and the coworkers or teammates (coworkers or teammates who are working in the same team as the presenter or working in other teams and on other tasks than the presenting team). There are many ways by which someone can handle such situation. The teams who did not get the chance to present their work at all or in an appropriate way because they were given no time, can talk to the manager separately about such problem. They can also call out the presenter in a polite way stating that they are not going to have time to present their issues and share their progress. You can also make a bold move of informing your teammates and manager that you have another meeting and you are going to leave. The meeting manager should set a time limit of 3 minutes to 5 minutes per team depending on the size of the team. An experienced manager should notice when time limit is exceeded and should stop or warn the presenting team. A good manager should give an equal chance to all teams and team members to present their selves. The third player, who is the presenting person who is exceeding the time limit should be considerate and respectable of his/her teammates. He/she should time himself/herself and tackle the main points and issues in his/her work. 

Conclusion

People like those who spend more time than their time limit and limit the chances of their teammates and coworkers to sufficiently present themselves, by trying to over spot the light on themselves and their work, will always exist, because people are of different personalities and characteristics. To amend such behavior, we should highlight the issue on the spot and advise the manager and teammates of the problem and how such behavior could lead to workplace toxicity. If we keep saying: yes, I am against it without taking action the moment it happened, it will always exist. However, if the community condemned it and took action right away, that would help limit the problem, resolve the issue and lessen the chances of it happening again. So, take action!

References: 

https://www.teamblind.com/post/Fed-up-with-blabberers-during-standup-u2Pouk6P
https://blog.bird-office.com/en/2017/08/23/advantages-stand-meeting/

Tuesday, May 11, 2021

What is an SRE?

Introduction

With the incorporation of software in almost every industry and the huge dependency on programming and computer science, it was just a matter of time before a new discipline was introduced. According to Ben Treynor Sloss, who is Google’s engineering vice president, “A site reliability engineer is a software engineer who is responsible for developing an operations function”. Site reliability engineering (SRE) uses the versatility of software to handle regular IT operations such as server management and other computer operations by establishing reliable software systems. SRE task forces usually utilize and develop software to handle project issues and problems, increase project autonomy and manage the entire project’s process with minimum manual intervention and manpower. Despite being a commonly used term in classifying work teams, the majority of the people working in both software and project management industries are still not fully aware of the underlying concept behind site reliability engineering. This article is an attempt to clarify what does an SRE do, how is an SRE important to business and projects, how are SRE teams different from DevOps and what kind of tools and technologies that an SRE utilize.

What does a site reliability engineer do?

SRE work can be divided into two main tasks. About half the time is spent on developing and programming new features, increasing system autonomy and project scaling. The rest of the time is spent on operations related work including tasks that require personal intervention and on-call duties. So an SRE should have a balanced mix of system administration skills and software programming, automation and engineering. Among the duties of an SRE is the code deployment, configuration and monitoring in addition to responding to emergencies and managing production service capacities.

How important are site reliability engineers?

SRE makes the project management process of large projects easier by developing complicated codes and algorithms that handle most of the regular and daily tasks. The software developed can be expanded to administer a huge spectrum of machinery and equipment within a company. As I mentioned earlier, SRE’s work can be divided into two main sections, standardization and automation. It is the goal of an SRE to improve a system’s reliability and features while automating operations tasks. The unique role of an SRE requires programming skills and operations management experience. SRE teams are particularly important for startups. Due to its small scale and inability to hire large groups of developers at large scale, having SRE teams would be extremely beneficial for the startup. After understanding how important are SRE teams to a company and what kind of work do they handle, we now need to discuss how do SRE teams work within a development team. 

How different are DevOps from site reliability engineers?

Site reliability engineering implements the idea of DevOps at its core. But what are DevOps? DevOps simply denotes development and operations, where developers are responsible for writing codes, which are then passed on to the operations team for installation and support. However, due to the separation between both teams, developers were not responsible for how the software or features would be used, leaving the operations team in a bad position. This led to problems because the goal of the developers is to keep introducing new features for the customers with new pieces of code, whereas the operations teams are seeking a steady system with stable and steady changes. However, by combining both teams and helping them understand each other’s duties and responsibilities, introducing new features will not only be based on developing the code for the feature itself but also on the consequences and fallout this new introduction might lead to. DevOps and site reliability engineering are often confused because of their similarity in many aspects and properties. Both DevOps and SRE seek high quality and fast services delivery as well as life cycle development, by optimizing business value and responsiveness through automation, platform operation enhancement and integrating both development and operations teams. Now, let us see how is SRE different from DevOps. First of all, SRE teams take to their own hands the duty to eliminate communication and workflow issues. SRE teams’ main goal is to achieve site reliability while adding novel ideas and features, whereas DevOps are mainly concerned with efficient development of operation using platforms such as Kubernetes and microservices. Unlike DevOps, SRE teams split their working time between operations and development tasks such as systems scaling and automation implementation, which is a crucial aspect in the site reliability engineer’s role. A key component for SRE teams is to achieve that balance between both operations and development work. 

What kind of technology supports a site reliability engineer?

In order to determine the type and time of features to be launched, SRE teams use Service Level Agreements (SLAs), which are used to determine the necessary system reliability depending on Service Level Indicators (SLIs) such as availabilities, rate of error, requested latency and systems throughput, and Service Level Objectives (SLOs), which are based on specified goal values and budget error. Due to the fact that an integral aspect of SRE’s work is automation, unified software containers usually provide teams with a common development environment facilitating work integration, automation and delivery.

Conclusion

Incorporating site reliability engineers can be handful especially for startups. They can assist developers by solving some of their general issues, hence providing them with more time to handle programming specific issues. They can also improve the capabilities of the tools used by developers to help them become more productive. In addition, the customer will be provided with a product that has high reliability and security. It is important to mention that finding an SRE to join the team is not quite simple due to the fact that they are looking for a person who are able to multitask and handle both operations and software engineering at a high level. It is always a pleasure to answer all your questions and see you in the next one.

**Note: All the attached photos are royalty free and not copyrighted. 

Tuesday, April 27, 2021

Facebook – Solution Engineer vs Software Engineer

**Note: All the attached photos are royalty free and not copyrighted.

Introduction

As we all know, Facebook is one of the largest tech companies in the world in the meantime. It ranks in the fifth place according to brand value compared to other tech companies in 2020 with a whopping 147 Billion Dollars. Facebook Inc. has also acquired multiple tech companies in the last decade such as WhatsApp, Instagram and more. Without a doubt, it is mesmerizing to be part of Facebook, whether as a software engineer, a solution engineer, or at any other position. However, if it is an option that you can choose between a software engineer and a solution engineer, then there are some points that you will have to consider before taking the decision. In this article, I am going to point out the major differences between both roles, and hopefully help you pick the one that is more suitable for your preferences. 

What does a Software Engineer do?

A Software Engineer utilizes his/her knowledge and expertise about computer science to write codes using programming languages, in addition to servers, databases and frameworks that are used to create computer or mobile applications, operating systems … etc.

The software engineer’s responsibilities can vary from one job to another and there are many career paths for a software engineer other than coding jobs. Here are some examples: web developer, mobile developer, test & quality assurance engineer, machine learning engineer, data scientist/engineer and much more. 

What does a Solution Engineer do?

A Solution Engineer is like a job description and not a field of engineering. It also requires a bachelor in software engineering or computer science just like the software engineer. Nonetheless, a Solution Engineering role can be considered the interface between the development team and the client or the customer. The solution engineer also makes use of computer science principles to make sure that every component of the product or the software is running seamlessly as it should be, without any glitches or lags. The solution engineer is not only responsible for the software part of the product; however, he/she is responsible for the integration with the hardware components of the system. Not to forget that another major role of the software engineer is to familiarize the client with the product; that includes operating demo presentations and some technical meetings explaining the product or the system. 

Major differences between both roles

One of the qualifications that should be found in the solution engineering role and not in the software engineer is the fair knowledge of sales. The solution engineer is the one responsible for outlining the client’s needs and delivering it to the development team making sure that the client is satisfied with the outcome solution. As mentioned earlier, the solution engineer is more of a client-facing role while the software engineer is more of a back of house role that is not felt by the customers. 

Responsibilities of a Software Engineer at Facebook

Just similar to any software engineer, they are working on creating new products and systems that run the Facebook Group’s apps and services. The software engineering force at Facebook is divided into multiple teams, which are Products and Services Teams, Infrastructure Teams and the team of Specialists. The first team is focused on utilizing new technologies to create new features and improving the existing ones. The second team works on ensuring the stability and efficiency of the infrastructure of Facebook such as servers, data storage, system resources and more. The final team, which is the team of specialists, usually work on integrating the new technologies with the complete structure of Facebook. 

Responsibilities of a Solution Engineer at Facebook

A solution engineer at Facebook, his/her time is divided 50/50 between two main sorts of tasks. The first one is to code and develop new products and services just like other software engineers. The other sort of tasks is actually a combination of activities such as dealing with support requests, performing adoption of new products to be able to comply with Facebook’s technologies, interacting with clients and partners, doing public speaking or even writing some blogs. 

Conclusion

Assuming that you have the opportunity to choose between the two positions, your choice should be based on multiple factors. The most important one is to choose the role you are more passionate about. You will perform better if you’re enjoying what you are doing. The second factor is the career future. As discussed earlier, the major difference between a software engineer and a solution engineer is how deep you are involved with coding. Software engineers purely write codes, on the other hand, solution engineers are more client facing with some sort of involvement in code writing. It is totally up to you to choose the track you want to take. Specifically, at Facebook, code writing is highly integrated in the tasks of a solution engineer. Accordingly, you will not miss the benefit of being into coding on a regular basis with the addition of gaining experience from clients’ interaction and sales tasks. The third factor is the salary; both roles are paid roughly close figures. The average annual salary of a software engineer is around $92,000. For the solution engineer, the average annual salary is around $100,000. The common qualification that you must have to work at Facebook is to have brilliant developing skills; hundreds of millions or even a billion users are testing your output every month so any mistake will be very costly. 

Comic time: Professional SCRUM hogger