Wednesday, December 1, 2021

Google cloudfest: Tech Talk: "Surprising Differences on How We Build Software"

Dec. 1, 2021

From a mono-repo to trunk-based development, Google has chosen a different and somewhat controversial path in how we develop products. In this tech talk, we'll go over how software is built at Google to deliver services to billions of users.
SHOW LESS

Sam Greenfield 

  • Architects
  • DBAs
  • Other "Enterprise" Roles 
  • Tech lead - engineer on the project, technical responsibility, privacy review, security review, not most senior people; Show you as a tech lead to be ready to be promote, extra hat to be a software engineer
  • Respect each other "No jerks"
  • Want to be happy and be productive - talk to other engineers, talk about it, principles, respect each other
  • 40 engineering offices - 8 million source files, 74 million commits per workday, 12 million builds per day, 650 million test cases run per day, 95 PB of build outputs per day
  • Design docs - talk about design docs - junior engineer, 3 weeks, write a design document, describe the way you design, talk about a few things before you write the code; before you start to write a few weeks of code, write down design docs; Work with architects, diagram, API; reviewed by managers; 10 million dollars to implement the design, what is good idea; privacy docs, security review, threats. Production ready review, monitor, scale, SAO, what do we do if things go wrong. 
  • Three core values, respect user, customer, opportunities - skip the training of privacy, lose privilege of accessing source code; solution architect, raise flag, We cannot violate those values - privacy 
  • We review each other's code, before it is allowed to be checked in; Manually review by others, it can be understood, and follow guidelines
  • Automatically code review, and a lot of code review - Google production 
  • Readability - You write code once, but you read code hundreds of times. 
  • Testing - Google production, unit test, minimum, integration test
  • Mono repository | Large scale changes | Trunk-based development | Gating features | Development tools | 


No comments:

Post a Comment