Google Workspace Updates Weekly Recap – February 17, 2023

2 New updates

Unless otherwise indicated, the features below are fully launched or in the process of rolling out (rollouts should take no more than 15 business days to complete), launching to both Rapid and Scheduled Release at the same time (if not, each stage of rollout should take no more than 15 business days to complete), and available to all Google Workspace and G Suite customers.


360 degree video backgrounds available for Google Meet on mobile
Adding to our existing library of immersive backgrounds, Meet users on mobile can use several new 360 degree video backgrounds. These backgrounds—which include a beach and a temple—use your device's gyroscope to create a dynamic experience that moves with you. Note that Admins can turn backgrounds on or off for their users. | Available on Android and iOS devices for all Google Workspace users and users with personal Google Accounts. 
Editable widgets now available for Chat app cards 
Developers can now include interactive widgets like checkboxes, radio buttons, and dropdowns in Chat app cards that are posted in the Chat message stream. This will allow you to quickly modify information sent from Chat apps, such as: 
  • Changing the assignee on a task card or changing the due date on a task card
  • Selecting or deselecting options on a card
This feature is available now to Google Workspace Essentials, Business Starter, Business Standard, Business Plus, Enterprise Essentials, Enterprise Standard, Enterprise Plus, Education Fundamentals, Education Plus, Education Standard, the Teaching and Learning Upgrade, Frontline, as well as legacy G Suite Basic and Business customers only.



Previous announcements

The announcements below were published on the Workspace Updates blog earlier this week. Please refer to the original blog posts for complete details.


New setting for content managers to modify shared drives now on by default
Last December, we announced an upcoming shared drive setting for content managers to modify shared drives. Starting today, all content managers will have the ability to share folders by default, in addition to their current capabilities of editing, reorganizing, and deleting shared drive content. | Available to Google Workspace Essentials, Business Standard, Business Plus, Enterprise Essentials, Enterprise Standard, Enterprise Plus, Education Fundamentals, Education Plus, Education Standard, the Teaching and Learning Upgrade, and Nonprofits, as well as legacy G Suite Business customers only. | Learn more


Client-side encryption for Google Calendar is now generally available
Client-side encryption for Google Calendar is now generally available to eligible Workspace editions. Additionally, based on feedback from beta, we’ve extended client-side encryption to support Key Migration and Google Takeout. | Available to Google Workspace Enterprise Plus, Education Plus, and Education Standard customers only. | Learn more.


Improving accessibility of the “connect device” feature on Google Meet hardware devices
We’re updating the home screen on Series On Desk 27 and Board 65 devices to feature a “Connect device” button as a quick action. | Learn more


Google Calendar and Assistant Reminders will migrate to Google Tasks soon
As previously announced, in the coming months, we’ll migrate Reminders from Google Calendar and Google Assistant to Google Tasks to create a single experience for managing to-dos across Google. | Learn more.


Improving the Google Contact management experience
We’re introducing a new feature available in the Google Contacts sidebar that lets you create new contacts and edit existing contacts. Whether you want to edit contacts faster or create contacts more easily, this update streamlines the contact management experience. | Learn more


Control the visibility of warning banners in Gmail with a new admin control
We’re giving admins more control over whether warning banners for incoming email messages are displayed for their end users. Specifically, admins can choose to disable spam filters and hide warning banners for: All users and a specific allowlist of senders. | Learn more


Completed rollouts

The features below completed their rollouts to Rapid Release domainsScheduled Release domains, or both. Please refer to the original blog post for additional details.


Rapid Release Domains:
Scheduled Release Domains:
Rapid and Scheduled Release Domains:

FRMT: A Benchmark for Few-Shot Region-Aware Machine Translation

Many languages spoken worldwide cover numerous regional varieties (sometimes called dialects), such as Brazilian and European Portuguese or Mainland and Taiwan Mandarin Chinese. Although such varieties are often mutually intelligible to their speakers, there are still important differences. For example, the Brazilian Portuguese word for “bus” is ônibus, while the European Portuguese word is autocarro. Yet, today’s machine translation (MT) systems typically do not allow users to specify which variety of a language to translate into. This may lead to confusion if the system outputs the “wrong” variety or mixes varieties in an unnatural way. Also, region-unaware MT systems tend to favor whichever variety has more data available online, which disproportionately affects speakers of under-resourced language varieties.

In “FRMT: A Benchmark for Few-Shot Region-Aware Machine Translation”, accepted for publication in Transactions of the Association for Computational Linguistics, we present an evaluation dataset used to measure MT systems’ ability to support regional varieties through a case study on Brazilian vs. European Portuguese and Mainland vs. Taiwan Mandarin Chinese. With the release of the FRMT data and accompanying evaluation code, we hope to inspire and enable the research community to discover new ways of creating MT systems that are applicable to the large number of regional language varieties spoken worldwide.


Challenge: Few-Shot Generalization

Most modern MT systems are trained on millions or billions of example translations, such as an English input sentence and its corresponding Portuguese translation. However, the vast majority of available training data doesn’t specify what regional variety the translation is in. In light of this data scarcity, we position FRMT as a benchmark for few-shot translation, measuring an MT model’s ability to translate into regional varieties when given no more than 100 labeled examples of each language variety. MT models need to use the linguistic patterns showcased in the small number of labeled examples (called “exemplars”) to identify similar patterns in their unlabeled training examples. In this way, models can generalize, producing correct translations of phenomena not explicitly shown in the exemplars.

An illustration of a few-shot MT system translating the English sentence, “The bus arrived,” into two regional varieties of Portuguese: Brazilian (🇧🇷; left) and European (🇵🇹; right).

Few-shot approaches to MT are attractive because they make it much easier to add support for additional regional varieties to an existing system. While our work is specific to regional varieties of two languages, we anticipate that methods that perform well will be readily applicable to other languages and regional varieties. In principle, those methods should also work for other language distinctions, such as formality and style.


Data Collection

The FRMT dataset consists of partial English Wikipedia articles, sourced from the Wiki40b dataset, that have been translated by paid, professional translators into different regional varieties of Portuguese and Mandarin. In order to highlight key region-aware translation challenges, we designed the dataset using three content buckets: (1) Lexical, (2) Entity, and (3) Random.

  1. The Lexical bucket focuses on regional differences in word choice, such as the "ônibus" vs. "autocarro” distinction when translating a sentence with the word “bus” into Brazilian vs. European Portuguese, respectively. We manually collected 20-30 terms that have regionally distinctive translations according to blogs and educational websites, and filtered and vetted the translations with feedback from volunteer native speakers from each region. Given the resulting list of English terms, we extracted texts of up to 100 sentences each from the associated English Wikipedia articles (e.g., bus). The same process was carried out independently for Mandarin.
  2. The Entity bucket is populated in a similar way and concerns people, locations or other entities strongly associated with one of the two regions in question for a given language. Consider an illustrative sentence like, “In Lisbon, I often took the bus.” In order to translate this correctly into Brazilian Portuguese, a model must overcome two potential pitfalls:
    1. The strong geographical association between Lisbon and Portugal might influence a model to generate a European Portuguese translation instead, e.g., by selecting "autocarro” rather than "ônibus".
    2. Replacing “Lisbon” with “Brasília” might be a naive way for a model to localize its output toward Brazilian Portuguese, but would be semantically inaccurate, even in an otherwise fluent translation.
  3. The Random bucket is used to check that a model correctly handles other diverse phenomena, and consists of text from 100 randomly sampled articles from Wikipedia’s “featured” and “good” collections.

Evaluation Methodology

To verify that the translations collected for the FRMT dataset capture region-specific phenomena, we conducted a human evaluation of their quality. Expert annotators from each region used the Multi-dimensional Quality Metrics (MQM) framework to identify and categorize errors in the translations. The framework includes a category-wise weighting scheme to convert the identified errors into a single score that roughly represents the number of major errors per sentence; so a lower number indicates a better translation. For each region, we asked MQM raters to score both translations from their region and translations from their language’s other region. For example, Brazilian Portuguese raters scored both the Brazilian and European Portuguese translations. The difference between these two scores indicates the prevalence of linguistic phenomena that are acceptable in one variety but not the other. We found that in both Portuguese and Chinese, raters identified, on average, approximately two more major errors per sentence in the mismatched translations than in the matched ones. This indicates that our dataset truly does capture region-specific phenomena.

While human evaluation is the best way to be sure of model quality, it is often slow and expensive. We therefore wanted to find an existing automatic metric that researchers can use to evaluate their models on our benchmark, and considered chrF, BLEU, and BLEURT. Using the translations from a few baseline models that were also evaluated by our MQM raters, we discovered that BLEURT has the best correlation with human judgments, and that the strength of that correlation (0.65 Pearson correlation coefficient, ρ) is comparable to the inter-annotator consistency (0.70 intraclass correlation).

Metric    Pearson's ρ
chrF    0.48
BLEU    0.58
BLEURT    0.65

Correlation between different automatic metrics and human judgements of translation quality on a subset of FRMT. Values are between -1 and 1; higher is better.

System Performance

Our evaluation covered a handful of recent models capable of few-shot control. Based on human evaluation with MQM, the baseline methods all showed some ability to localize their output for Portuguese, but for Mandarin, they mostly failed to use knowledge of the targeted region to produce superior Mainland or Taiwan translations.

Google’s recent language model, PaLM, was rated best overall among the baselines we evaluated. In order to produce region-targeted translations with PaLM, we feed an instructive prompt into the model and then generate text from it to fill in the blank (see the example shown below).

    Translate the following texts from English to European Portuguese.
English: [English example 1].
European Portuguese: [correct translation 1].
...
English: [input].
European Portuguese: _____"

PaLM obtained strong results using a single example, and had marginal quality gains on Portuguese when increasing to ten examples. This performance is impressive when taking into consideration that PaLM was trained in an unsupervised way. Our results also suggest language models like PaLM may be particularly adept at memorizing region-specific word choices required for fluent translation. However, there is still a significant performance gap between PaLM and human performance. See our paper for more details.


MQM performance across dataset buckets using human and PaLM translations. Thick bars represent the region-matched case, where raters from each region evaluate translations targeted at their own region. Thin, inset bars represent the region-mismatched case, where raters from each region evaluate translations targeted at the other region. Human translations exhibit regional phenomena in all cases. PaLM translations do so for all Portuguese buckets and the Mandarin lexical bucket only.


Conclusion

In the near future, we hope to see a world where language generation systems, especially machine translation, can support all speaker communities. We want to meet users where they are, generating language fluent and appropriate for their locale or region. To that end, we have released the FRMT dataset and benchmark, enabling researchers to easily compare performance for region-aware MT models. Validated via our thorough human-evaluation studies, the language varieties in FRMT have significant differences that outputs from region-aware MT models should reflect. We are excited to see how researchers utilize this benchmark in development of new MT models that better support under-represented language varieties and all speaker communities, leading to improved equitability in natural-language technologies.


Acknowledgements

We gratefully acknowledge our paper co-authors for all their contributions to this project: Timothy Dozat, Xavier Garcia, Dan Garrette, Jason Riesa, Orhan Firat, and Noah Constant. For helpful discussion and comments on the paper, we thank Jacob Eisenstein, Noah Fiedel, Macduff Hughes and Mingfei Lau. For essential feedback around specific regional language differences, we thank Andre Araujo, Chung-Ching Chang, Andreia Cunha, Filipe Gonçalves, Nuno Guerreiro, Mandy Guo, Luis Miranda, Vitor Rodrigues and Linting Xue. For logistical support in collecting human translations and ratings, we thank the Google Translate team. We thank the professional translators and MQM raters for their role in producing the dataset. We also thank Tom Small for providing the animation in this post.

Source: Google AI Blog


Google Dev Library Letters: 18th Edition

Posted by the Dev Library Team

In this newsletter, we’re highlighting the best projects developed with Google technologies that have been contributed to the Google Dev Library platform. We hope this will spark some inspiration for your next project!


Contributions of the month


Moving image showing SSImagePicker in different modes

[Android] SSImagePicker by Simform

See how to use a lightweight and easy-to-use image picker library that has features like cropping, compression and rotation, video, and Live Photos support.



Moving image showing overview of coroutines

[Kotlin] Mastering Coroutines in Kotlin by Reyhaneh Ezatpanah

Dive into a comprehensive overview of coroutines including tips and best practices, along with a detailed explanation of the different types of coroutines available in Kotlin and how to use them effectively.

Read more on DevLibrary


Flow Chart demonstrating Image to Image stable diffusion in Flax

[Machine Learning] Image2Image with Stable Diffusion in Flax by Bachir Chihani

Learn the uses of the Diffusion method, a technique used to improve the stability and performance of image-to-image translation models.

Read more on DevLibrary


Android


Jetpack Compose state, deconstructed by Yves Kalume

Learn how state management in Jetpack Compose is implemented, how it can be used to build a responsive and dynamic UI, and how it compares to other solutions in Android development.


Dynamic environment switching on Android by Ashwini Kumar

Find out how to switch between different environments (such as development, staging, and production) in an Android app.


Migration to Jetpack Compose for a legacy application by Abhishek Saxena

Migrate an existing legacy Android application to Jetpack Compose, a modern UI toolkit for building native Android apps



Machine Learning


Simple diffusion in TensorFlow by Bachir Chihani

Understand the benefits of using TensorFlow for image processing, including the ability to easily parallelize computations and utilize GPUs for faster processing.


Deep dive into stable diffusion by Bachir Chihani

Look into the Flax implementation of the Stable Diffusion model to better understand how it works.


Create-tf-app by Radi Cho

See the tool that allows you to quickly create a TensorFlow application by generating the necessary code and file structure.

 

Angular


NGX-Valdemort by Cédric Exbrayat

Dive into a set of pre-built validation rules and error messages for commonly encountered use cases, making it easy to quickly implement robust form validation for your application.


Passing configuration dynamically from one module to another using ModuleWithProviders by Madhusuthanan B

Learn how to pass configuration data dynamically between modules in an Angular application.


Flutter


Mastering Dart & Flutter DevTools by Ashita Prasad

Look at the first part of the series aimed at helping developers to understand how to use the tools effectively to build applications with Dart and Flutter.


Server-driven UI in Flutter - an experiment on remote widgets by Akshat Vinaybhai Patel

Learn the insights, code snippets and results of the experiment for readers to better understand the concept of Server-Driven UI and its potential in Flutter app development.


Flutter Photo Manager by Alex Li

Learn an easy-to-use API for accessing the device's photo library, that performs operations like retrieving images, videos, and albums, as well as deleting, creating, and updating files in the photo library.


Firebase


How to authenticate to Firebase using email and password in Jetpack Compose? By Alex Mamo 

Here’s a simple solution for implementing Firebase Authentication with email and password, using a clean architecture with Jetpack Compose on Android.


Google Cloud


Google Firestore Data Source plugin for Grafana by Prasanna Kumar

Learn how it allows users to perform operations like querying, aggregating, and visualizing data from Firestore, making it a powerful tool for monitoring and analyzing real-time data in a variety of applications. The repository provides the source code for the plugin and documentation on how to install and use it with Grafana.


Cluster cloner by Joshua Fox

See how this project aims to replicate clusters across different cloud environments and examine these varying infrastructure models.


Getting to know Cloud Firestore by Mustapha Adekunle

Learn how this post covers the basic features and benefits of Cloud Firestore, and how this document database is a scalable and versatile NoSQL cloud database.


Google’s Mandar Chaphalkar has submitted Data Governance with Dataplex

Discover how Dataplex can be used to transform data to meet specific business requirements, and how it can integrate with other Google Cloud services like BigQuery for efficient data storage and analysis.

Beta Channel Update for Desktop

 The Beta channel has been updated to 111.0.5563.33 for Windows, Mac and Linux .

A full list of changes in this build is available in the log. Interested in switching release channels? Find out how here. If you find a new issues, please let us know by filing a bug. The community help forum is also a great place to reach out for help or learn about common issues.


Srinivas Sista

Dev Channel Update for Desktop

 The dev channel has been updated to 112.0.5596.2 for Windows, Linux and Mac.


A partial list of changes is available in the log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug. The community help forum is also a great place to reach out for help or learn about common issues.

Srinivas Sista
Google Chrome

Control the visibility of warning banners in Gmail with a new admin control

What’s changing

We’re giving admins more control over whether warning banners for incoming email messages are displayed for their end users. Specifically, admins can chose to disable spam filters and hide warning banners for:

  • All users
  • A specific allowlist of senders

These settings can be found in the Admin console at:
Apps > Google Workspace > Settings for Gmail > Spam, Phishing, and Malware > Add Another Rule 




You may consider turning off these warnings when conducting anti-phishing training with your end users. These new options provide more flexibility around the visibility of these warnings across your organization however you choose to configure them. 


Getting started 

  • Admins: Warning banners can be turned on or off at the domain and OU level. Visit the Help Center to learn more about how to add custom spam filters to Gmail.
  • End users: No action required — your admin configuration will determine whether you see spam warning banners in Gmail. 

Rollout pace 


Availability 

  • Available to all Google Workspace customers 
  • Not available to legacy G Suite basic and Business customers
  • Not available to users with personal Google Accounts

Resources 

Improving the Google Contact management experience

What’s changing

Previously, visiting contacts.google.com was the only way to edit or add a Google Contact. Today, we’re introducing a new feature available in the Contacts sidebar that lets you create new contacts and edit existing contacts. Whether you want to edit contacts faster or create contacts more easily, this update streamlines the contact management experience.

Getting started 

  • Admins: There is no admin control for this feature. 
  • End users: 
    • To edit an existing contact: 
      • Expand the side panel in Google Workspace and open the Contacts app 
      • Click on a contact 
      • Click the Edit icon at the top right 
      • Edit the information Click “Save” 
    • To create a contact from scratch: 
      • Open the Contacts app from the vertical App bar on the right 
      • Click “Create contact” 
        • Note: “Create contact” will only be available while in “Contacts” mode, not “In this thread” when opening a contact’s detailed view through Gmail 
      • Enter the contact’s name and add any contact information 
      • Click “Save” 
    • To create a contact from search: 
      • Open the Contacts app from the vertical App bar on the right 
      • Click the Search icon at the top right 
      • Enter a contact’s name 
      • If there is no existing contact, click on the “Create contact” button at the top of the search results to automatically create a contact with the name you entered 
      • Add additional information to the contact 
      • Click “Save” 
    • Visit the Help Center to learn more about Google Contacts

Rollout pace 

Availability 

  • Available to all Google Workspace customers, as well as legacy G Suite Basic and Business customers 
  • Available to users with personal Google Accounts 

Resources 

Google Calendar and Assistant Reminders will migrate to Google Tasks soon

What’s changing

As previously announced, in the coming months, we’ll migrate Reminders from Google Calendar and Google Assistant to Google Tasks to create a single experience for managing to-dos across Google. 

Users can create tasks from Calendar and using the hands-free power of Assistant, similar to how they previously created Reminders. Additionally, unlike with Reminders, they can create tasks from other Google Workspace apps like Gmail, Docs and Chat, or directly from the Tasks app.

If you’re a Google Workspace customer with the Tasks service ON in your organization, your end users can voluntarily migrate beginning April 12, 2023. This migration prompt will appear for users with personal accounts starting on March 6, 2023.

Enterprise end users will be prompted to migrate their experience beginning April 12, 2023. 



For Google Workspace customers: Starting on May 22, 2023, Assistant and Calendar Reminders will begin to automatically migrate to Tasks for users that have not already migrated. To help ensure a smooth transition, we recommend the following steps:

Admins:

If you use a Google account for work or school:
  • You’ll see a prompt in Assistant and Calendar to move reminders created in these apps to Tasks beginning on April 12, 2023.
  • If you want a copy of your reminders data and Takeout is enabled for your organization, export your Reminders data before June 22, 2023.

If you use Google with a personal account:
  • You’ll see a prompt in Assistant and Calendar to move reminders created in these apps to Tasks beginning on March 6, 2023.
  • If you haven’t already migrated, Assistant and Calendar reminders will begin to automatically migrate in Q2. We’ll share more information on this timeline in a future update on the Workspace Updates blog.

Why it’s important

Once the migration is complete, you’ll be able to view and manage all of your to-dos in one place: Tasks. You’ll be able to leverage features in Tasks such as organizing to-dos with multiple lists and adding descriptions for extra organization. Tasks can be accessed on the web in Google Workspace apps like Gmail, Calendar, Docs and Chat, making it easy to create tasks without the need to switch tabs or apps. If you use Assistant, you’ll also be able to create Tasks directly from Assistant.


Additional details

Reminders created in Keep will not be migrated to Tasks — they will still be available in Keep, but they will no longer be displayed in Google Calendar once the migration is complete.


Rollout pace 


Google Workspace users:
  • Voluntary migration: Extended rollout (potentially longer than 15 days for feature visibility) beginning April 12, 2023
  • Automatic migration: Extended rollout (potentially longer than 15 days for feature visibility) beginning May 22, 2023


Users with personal Google Accounts: 
  • Extended rollout (potentially longer than 15 days for feature visibility) beginning March 6, 2023

Feature Engineering in the Google Play Store

Posted by Harini Chandrasekharan, Staff Software Engineer, Google Play

The Google Play Store, launched 10 years ago in 2012 sits at the heart of Android, connecting billions of users with an equally staggering and ever-growing collection of apps and games worldwide.

Let's take a peek behind the curtains to learn what it takes to design the serving infrastructure of the worlds largest Android marketplace. In the world of consumer facing software, it's not a surprise that out of box engineering solutions fail to meet the requirements that Google scale demands. Therefore every system at Google is carefully crafted and honed with iterative enhancements to meet the unique availability, quality and latency demands of the Google Play Store.

What is feature engineering?

Features can be user-facing such as formats, content, arrangement of content, the page layout or information architecture. Formats represent how app content from our recommendation systems, advertisers, merchandisers and various other sources are presented on UI. The goal is to create tailor-made experiences weaving in the right content and UI to suggest the most relevant apps and games to meet the users where they are in their journey on the play store.

In the domain of consumer facing features, users’ opinions and choices, developer ecosystem and demand often changes faster than infrastructure can. In such an environment, the biggest challenge engineers face is how to be nimble and design infrastructure that’s not only future-proof but also meets the needs of the consumer space within the constraints of scalability and performance. Let’s take a deeper look at some engineering challenges in such a dynamic space.


What does success look like?

In a data driven organization such as the Play store, metrics are built for measuring anything and everything of importance. Here are some of the dimensions that come in handy when measuring and tracking success:

  • Product/business metrics - These are metrics specific to the product or service under consideration. Running A/B experiments to measure changes to these metrics for the new treatment builds confidence, particularly when decision making involves several tradeoffs.
  • Performance - Measuring latency, error rates and availability makes the backbone of almost every service and for good reason. Knowing these baseline metrics is essential since this closely tracks user experience and perception of the product.
  • System health - These are internal system metrics tracking resource utilization and fleet stability.

Challenges in feature engineering infrastructure

Designing backend systems that scale to the requirements of the Play Store that also meet the performance criteria required to make user interactions feel fluid and responsive is paramount. From an engineering perspective, infrastructure needs to continuously evolve to meet the needs of the business. The Play store is no different—the store infrastructure has evolved several times in the last decade to not only support the needs of new features that are available to users today, but also to modernize, eliminate tech debt and most of all reduce latency.


Frequent iteration

Challenge: Features often require large amounts of iteration over time, it's hard to plan engineering infrastructure that meets all the future requirements.

In an experiment driven culture, the optimum approach for rapidly building features at scale often results in tech debt. Tech debt has various forms—relics of past features that did not make it result in layers that are hard to clean up, affect performance, make code error prone and hard to test.

Independent evolution

Challenge: In large organizations spanning 100s of engineers, several features are often being built in parallel and independent of each other.

Infrastructure reuse and sharing innovations are often impossible without significantly compromising on velocity. In a space where the product evolves at a rapid pace there is often a large amount of uncertainty with the different levers and knobs one can build into systems to make them flexible. Too many levers can lead to large system complexity. Too few levers and the cost of iteration is sky high. Finding the balance between the two is one of the core competencies of a feature engineer in this space.

Time to experiment

Challenge: There is often an opportunity cost to pay for time spent building elegant engineering solutions.

Time to experiment is one of the most important metrics to keep in mind when designing solutions for user facing features. Flexible design that enables rapid iteration and meets the latency and other performance SLOs is ideal.

In practice, there is often a large amount of guesswork that goes into estimating impact of a particular user facing change, while we can use past data and learnings confidently to estimate in some scenarios, it's not sufficient for a brand new ambitious, never before tried idea.


Feature engineering guiding principles

Let’s see how the Play Store solves these challenges to enable state of the art innovation.

Data driven experiments and launches - understand your success metrics

Optimizing for time to market i.e getting the feature to the user and measuring how it impacts app installs and other store business metrics using A/B experiments is of prime importance. Iterating fast based on data helps tune the final feature to the desired end state. Google has several home grown technologies for running A/B experiments at worldwide scale with seamless integration with metric presentation tools that make running these experiments smooth and easy, so developers can spend more time coding and less in analysis.

Design and experiment with polished MVPs - with a focus on quality

Deciding what to build, whether it meets Google quality standards, understanding engineering costs and the user needs it solves are all important questions that need to be answered before designing anything. Feature Engineering is therefore often done in close collaboration with Product Managers. Aligning on the perfect MVP that can be built in a reasonable amount of engineering time that meets the user journey is the key to a successful product.

Frequently modernize the infrastructure - clean up tech debt

Frequent iterations and a fast MVP development culture often comes with its set of cons, the biggest being tech debt. In optimizing for fast velocity, cutting corners results in obsolete code (due to unlaunchable metrics) or discarded experiment flags. These often make testing, maintaining and impact future development velocity if left unfixed. Additionally, using the latest and greatest frameworks to get to the last milliseconds of latency or making development easier yields great dividends in the long run. Frequently modernizing the infrastructure either via refactoring or full rewrites may traditionally spell signs of poorly designed code, but it's one of the bigger tradeoffs that feature engineers often have to make, because after all what use is all the fancy infrastructure if users don't interact with the feature in the first place!


How useful did you find this blog post?