For the past four years, I have worked at Google as a software development engineer. On February 1, I quit my job. Because they refused to buy me a Christmas present.

Well, there’s more to it than that.

Started two years

Over the past two years, I have deeply loved Google.

When the annual Employee Survey asked me if I expected to still be at Google in five years, the answer was unequivocal.

Of course I’ll still be at Google in five years. I am surrounded by the best engineers in the world, we use the most advanced development tools in the world, and we can enjoy delicious food from all over the world for free.

spoiled-coder

A typical day for me at Google

My most recent performance assessment was “Strongly Exceeds Expectations”. If this continues, I will soon be promoted to the next level of senior software engineer. What a lofty title! Later in my career, I can proudly say, “Yes, I am a senior software engineer. I work at Google. “People who hear this will think I’m awesome.

My manager assured me that I would be promoted soon. He thinks I’m ready for a senior job. I just need to prove it to the promotion board with the right project.

The manager didn’t give you a promotion?

No, it’s not about managers, because Google managers can’t promote their direct reports. They don’t even get to vote.

Instead, promotions are made by a small committee of high-level software engineers and managers who have never even heard of you before deciding on a promotion.

When applying for a promotion, you need to compile “promotion packets” : written suggestions from your teammates, design documents you create, and short essays you write to explain why you deserve a promotion.

Then the promotion board, along with a few other people, reviews your package and spends a day deciding who gets promoted and who doesn’t.

During my first two-year honeymoon with Google, this system sounded great. My fate rests in the hands of a mysterious committee that has never met me. They don’t show any favoritism and they’re not influenced by politics. They’ll see all my hard work, and they’ll recognize me for my high-quality code and smart engineering decisions.

That’s not really how it works

Until I put together my first promotion package, I never thought about the logistics of how it worked.

In my mind, the promotion Board is such an impartial organization from god’s perspective. If I put my heart and soul into choosing the right problem to solve every single day, working to improve the quality of the code base, and doing everything I can to help my team execute efficiently, then the promotion board will be amazingly omniscient and reward me for it.

The truth is, however, it doesn’t work that way. And it took me two years to figure that out.

Work innocently

Until I see the truth, my main responsibility is a legacy data pipeline. It has been in maintenance mode for years, with the load increasing and the pipe bending because of the pressure. It often dies silently or produces incorrect output. Its faults can take days to diagnose because it has not been documented since the original design specification.

I proudly and lovingly nursed the tube back to health. I fixed dozens of bugs and wrote automated tests to make sure they never broke again. I removed thousands of lines of code that were either dead or completely replaceable by modern libraries. I documented the pipes so that my teammates could keep abreast of the structure.

The problem is, as I discovered when I was promoted, none of these results are quantifiable. I can’t prove that anything I’ve done has had a positive impact on Google.

Indicators may or may not occur

The pipeline does not record many metrics. Indicators do make things look worse. My bug discovery led to an increase in the overall bug count. The failure of the pipeline increases because it will fail quickly rather than quietly delivering bad data in abnormal situations. I significantly reduced the time it took developers to fix these bugs, but I didn’t have metrics to track developer time.

My other work doesn’t do well in writing either. There were times when I put my projects on hold for weeks or even months to help a teammate because his release was at risk. It was the right decision for the team, but it was unremarkable in the promotion package. My teammate’s project was an important one for the promotion committee and required the help of multiple developers. The fact that they went out of their way to get me to help them was evidence of their strong leadership qualities — that I was a mindless work puppet, making my own work seem so unimportant that I could drop it at a moment’s notice.

When I submitted my first promotion package, the result was exactly what I had feared: the promotion board said I had no evidence THAT I could handle technical complexity, and they could not see my impact on Google.

promo-committee

Challenge my abilities to the promotion board

Learn from rejection

The rejection was a great blow, but I wasn’t discouraged. I thought I was above my level, but the promotion board couldn’t see it. But it can be fixed.

I admit I was pretty naive the first two years. I didn’t plan ahead enough and my work went down the drain. Now that I understand how the process works, I’m just going to continue to do the same job and be prepared to keep more records.

For example, my team receives a lot of distracting email alerts due to false positives. The old me would only have dealt with these alarms. But now I know that in order for this job to show up on my promotion package, I should first set metrics so that we have a history of alarm frequency. During a promotion visit, I was able to show an impressive chart of alarm trends.

Soon after, I was assigned a project that seemed destined for promotion. The project relies heavily on machine learning, which has been a hot topic for Google. It can automate tasks that require hundreds of human operators to do manually, so it will have a significant and objective impact on Google. I also had to lead a junior developer throughout the project — often a plus in the eyes of promotion committees.

Holiday gifts and wake-up calls

A few months later, Google ended its long tradition of lavish holiday gifts for all employees. Instead, they used their gift budgets to buy chromebooks (advertised as charity) for poor schoolchildren.

Shortly thereafter, I overheard the following conversation between two employees:

Employee A: You actually still get A gift. Cuts like these would increase the value of Google’s stock. You can sell your stock awards to buy any gift you choose. Employee B: Isn’t that what I told my wife I didn’t buy her a Christmas present, but she can buy whatever she wants with the money from our bank account? Employee A: You’re building A business relationship with Google. If you’re disappointed that Google didn’t prepare a gift the way you did for your wife, you’re misreading the relationship.

And so on. So I have a business relationship with Google.

It may seem strange that it took me two and a half years to realize this, but Google has done a great job of building a sense of community within the organization — making us feel like we’re not just employees, but Google itself.

That conversation made me realize I’m not Google. I’m just a worker who provides services to Google in exchange for money.

So if Google and I have a business relationship that serves the interests of all parties, why am I spending my time on all these tasks that are in Google’s interest and not mine? If promotion boards don’t reward bug fixes and team support, then why am I doing them?

Most effectively for promotion

My rejection of my first promotion taught me the wrong lesson. I think I can continue to do the same job, but there are some things I can do to make the promotion board look at my results. Instead, I should have done the opposite: figured out what the promotion board wanted, and dedicated myself to doing that job.

I adopted a new strategy. Before embarking on any task, I ask myself if it will help me advance. If the answer is no, then I won’t do it.

My code quality standard went from “Can I maintain this level for the next 5 years?” To “Can it continue until I get promoted?” . I don’t commit or fix any bugs unless they threaten the release of my project. I managed to absolve myself of all responsibility for the maintenance work. I stopped volunteering for campus recruiting. I went from performing one or two interviews a week to zero.

And then my project got canceled

Priorities have been shifted. Management handed my project over to our sister team in India. In exchange, the team offered us one of their projects. It’s an undocumented system built on infrastructure that’s not recommended, but it’s still a critical part of the product. I was assigned the task of cleaning the system out of the sister team’s code and migrating it to a new framework, while ensuring that it would run in production and meet its performance metrics.

As far as promotion is concerned, all my hard work these past few months has gone down the drain. Because I didn’t release anything for the cancelled project, the two months I spent on the project were worthless. It would also take me a few weeks to get up to speed on the system I inherited, and I would certainly spend a lot of time in the drudgery of keeping it operational.

What else can I say?

For the third time in six months, my manager has reassigned me in the middle of a project. Each time, he assured me that it had nothing to do with the quality of my work, but some change in senior management strategy or team personnel.

At this point, I looked back and thought about what was happening from the top. Not thinking about my manager, his manager, or even the promotion board. What if I just simplified the other side to Google? What happens between our “business relationships”?

Yes, Google keeps telling me that it can’t judge my work until it sees me complete a project. However, I couldn’t get any projects done because Google kept interrupting me and assigning me to new projects.

The whole process was ridiculous.

book-publisher

Google promotion board book publishing

My career was decided by a roving anonymous committee that would decide my future in the space of an hour. An ineffective management decision that I protested had erased months of professional progress.

Worst of all, I’m not proud of my work. The question I asked myself was no longer, “How do I solve this challenging problem?” Rather, “How can I make this seem challenging from a promotion standpoint?” I hate it.

Even if I get a promotion, then what? The prevailing perception is that each promotion is harder than the last. To move forward in my career, I needed projects that were larger in scope and involved more collaboration among collaborative teams. But that meant the project could fail because there would be more factors beyond my control, wasting months or even years.

What are the other options?

Around this time I discovered Indie Hackers.

This is an online community for founders of small software businesses. Key points to emphasize: Small. The founders’ goal is not to be The next Zuckerberg, but to make a small profit from a modest but profitable business.

I’ve always been very interested in starting my own software company, but I only knew the silicon Valley startup road. I thought being a software founder meant spending most of my time raising money and the rest worrying about attracting new millions of users.

Indie Hackers has a tempting option. Most members use their savings to set up businesses or as a side project in addition to their full-time jobs. They do not have to answer investors and certainly do not have to justify themselves to anonymous committees.

There are drawbacks. Less stable income on the one hand and more catastrophic risk on the other. If I make a mistake at Google and it costs the company $10 million, THERE’s no consequence — all I have to do is write a post-mortem, and everyone will be happy about the learning opportunity. But for most founders, a $10 million mistake would mean bankruptcy and several lifetimes of debt.

The idea of being the founder of Indie Hackers stuck in my head. Because whether the business is a huge success or a flop for years, it’s under your control. At Google, I didn’t feel like I was in control of projects, let alone career growth and team direction.

I thought about it for months and finally made up my mind. I’m going to be an independent hacker.

One last thing before I quit

I have unfinished business on Google. After three years of working my way up the ladder, I didn’t want to leave with nothing to show for it. It was only a few months before I could reapply for promotion, so I decided to give myself one last chance.

Tragically, six weeks before the results were counted, my project was cancelled. It was cancelled again.

In fact, my entire team was canceled. This is quite common at Google, and it has a euphemistic name: defragmentation. Management handed over our team’s projects to our sister team in India. My teammates and I had to start all over again in different areas.

I applied for a promotion anyway. A few weeks later, my manager showed me the results. My performance rating is “Superb”, which is the highest, and only 5% of employees are given each term. The promotion committee noted that I had clearly demonstrated a high standard of work over the past six months. These were not the months WHEN I was working for the most effective promotion.

But they didn’t think six months was long enough, so… Better luck next time.

My manager told me that if I do another six months of quality work, I have a good chance of promotion. I can’t say I wasn’t tempted, but until then, the encouragement I had been given over the past two years had been “there’s a good chance of promotion in six months.”

So now is the time to leave.

So what’s next?

When I tell people I’m leaving Google, they assume I must have some great startup ideas. Only a fool would quit his job as a Software engineer at Google.

Whether I am a fool or not is a matter of opinion.

My plan is to try out a few different projects for a few months and see if any of them catch on. For example:

  • Keep working on KetoHub and see if I can monetize it
  • Building a business on Sia is a distributed storage technique I use a lot
  • Spend more time coding and find ways to make money from it

Google was a great place to work and I learned many valuable techniques and skills there. Quitting was a tough decision because I still had more to learn, but it was still possible to find an employer like Google. I won’t always have the freedom to follow my heart and start my own company. I don’t know how far I can go.

Original link: https://mtlynch.io/why-i-quit-google/, written by Michael Lynch

For more

For programmers, did you fall for these tips

NDK project actual combat – high imitation 360 mobile phone assistant uninstall monitoring

Answer the following questions in your interview (Android) :

Believe in yourself, there is nothing impossible, only unexpected

Wechat official account: Terminal R&D Department