Tag Archives: developers

Ask a Techspert: What is open source?

When I started working at Google, a colleague mentioned that the group projects I worked on in college sounded a lot like some of the open source projects we do here at Google. I thought there had to be some misunderstanding since my projects all happened in-person with my classmates in the corner of some building in the engineering quad. 

To find out how a real life study group could be like a type of computer software, I went straight to Rebecca Stambler, one of Google’s many open source experts.


Explain your job to me like I’m a first-grader.

Well, to start, computer programs have to be written in a language that computers understand — not in English or any other spoken language. At Google we have our own language called Go. When we write in a language to tell a computer what to do, that’s called source code. Just like you can write an essay or a letter in a Google Doc, you have to write your code in an “editor.” I work on making these editors work well for people who write code in Google’s programming language, Go. 


What does it mean for software to be open source?

A piece of software is considered open source if its source code is made publicly available to anyone, meaning they can freely copy, modify and redistribute the code. Usually, companies want to keep the source code of their products secret, so people can’t copy and reproduce their products. But sometimes a company shares their code publicly so anyone can contribute. This makes software more accessible and builds a community around a project. Anyone can work on an open source project no matter who they are or where they are. 


Anyone can contribute? How do they do it?

Before you actually write open source code, a good first step would be thinking about what you’re interested in, whether that’s web development, systems or front end development. Then you can dive into that community by doing things like attending talks or joining online networks where you can often learn more about what open source projects are out there. Then, think about what topics you’re interested in — maybe it’s the environment, retail, banking or a specific type of web development. Some people write code just because they enjoy it; plenty of these people have contributed to code within Google open source projects. So if you’re looking to contribute,  make sure it’s something  you’re really interested in.

Abstract illustration of three people putting together code.

Many open source projects are hosted on a site called Github, so once you narrow down your area of interest, that’s a great place to start! Once you’ve found something you want to work on, the easiest way to get involved is to fix errors in the code raised by other members of the project who don’t have the time to fix. Even if you don’t know how to code there’s a lot of non-technical work in open source projects like prioritizing issues that need fixing, community organization or writing user guides. You just have to be passionate about the work and ready to jump in. 


What’s the benefit of using open source code to create something?

We need lots of diverse perspectives to build good software, and open source helps with that. If you’re building something with a small team of three people, you might not consider all of the different ways someone might use your product. Or maybe your team doesn’t have the best equipment. Open source enables people from all over the world with different use cases, computers and experiences to chime in and say “hey, this doesn’t actually work for me” or “running this software drains my battery.” Without having open source projects, I don’t think we could make products that work for everyone. 

Projects like Android, which is Google operating system for mobile devices, are open source. And just last year Google Kubernetes Engine celebrated its five-year anniversary. This was really exciting because it showed how Google engineers contribute to the broader open source community outside of Google. Open source projects build a real sense of community between the contributors. When we have people that work on a lot of our projects we send them thank you notes and mention them when we release new software versions. We’ve created a whole community of contributors who’ve made our products more successful and exciting. 

Migrating from App Engine ndb to Cloud NDB

Posted by Wesley Chun (@wescpy), Developer Advocate, Google Cloud

Migrating to standalone services

Today we're introducing the first video showing long-time App Engine developers how to migrate from the App Engine ndb client library that connects to Datastore. While the legacy App Engine ndb service is still available for Datastore access, new features and continuing innovation are going into Cloud Datastore, so we recommend Python 2 users switch to standalone product client libraries like Cloud NDB.

This video and its corresponding codelab show developers how to migrate the sample app introduced in a previous video and gives them hands-on experience performing the migration on a simple app before tackling their own applications. In the immediately preceding "migration module" video, we transitioned that app from App Engine's original webapp2 framework to Flask, a popular framework in the Python community. Today's Module 2 content picks up where that Module 1 leaves off, migrating Datastore access from App Engine ndb to Cloud NDB.

Migrating to Cloud NDB opens the doors to other modernizations, such as moving to other standalone services that succeed the original App Engine legacy services, (finally) porting to Python 3, breaking up large apps into microservices for Cloud Functions, or containerizing App Engine apps for Cloud Run.

Moving to Cloud NDB

App Engine's Datastore matured to becoming its own standalone product in 2013, Cloud Datastore. Cloud NDB is the replacement client library designed for App Engine ndb users to preserve much of their existing code and user experience. Cloud NDB is available in both Python 2 and 3, meaning it can help expedite a Python 3 upgrade to the second generation App Engine platform. Furthermore, Cloud NDB gives non-App Engine apps access to Cloud Datastore.

As you can see from the screenshot below, one key difference between both libraries is that Cloud NDB provides a context manager, meaning you would use the Python with statement in a similar way as opening files but for Datastore access. However, aside from moving code inside with blocks, no other changes are required of the original App Engine ndb app code that accesses Datastore. Of course your "YMMV" (your mileage may vary) depending on the complexity of your code, but the goal of the team is to provide as seamless of a transition as possible as well as to preserve "ndb"-style access.

The difference between the App Engine ndb and Cloud NDB versions of the sample app

The "diffs" between the App Engine ndb and Cloud NDB versions of the sample app

Next steps

To try this migration yourself, hit up the corresponding codelab and use the video for guidance. This Module 2 migration sample "STARTs" with the Module 1 code completed in the previous codelab (and video). Users can use their solution or grab ours in the Module 1 repo folder. The goal is to arrive at the end with an identical, working app that operates just like the Module 1 app but uses a completely different Datastore client library. You can find this "FINISH" code sample in the Module 2a folder. If something goes wrong during your migration, you can always rollback to START, or compare your solution with our FINISH. Bonus content migrating to Python 3 App Engine can also be found in the video and codelab, resulting in a second FINISH, the Module 2b folder.

All of these learning modules, corresponding videos (when published), codelab tutorials, START and FINISH code, etc., can be found in the migration repo. We hope to also one day cover other legacy runtimes like Java 8 and others, so stay tuned! Developers should also check out the official Cloud NDB migration guide which provides more migration details, including key differences between both client libraries.

Ahead in Module 3, we will continue the Cloud NDB discussion and present our first optional migration, helping users move from Cloud NDB to the native Cloud Datastore client library. If you can't wait, try out its codelab found in the table at the repo above. Migrations aren't always easy; we hope this content helps you modernize your apps and shows we're focused on helping existing users as much as new ones.

How students built a web app with the potential to help frontline workers

Posted by Erica Hanson, Global Program Manager, Google Developer Student Clubs

Image of Olly and Daniel from GDSC at Wash U.

Image of Olly and Daniel from Google Developer Student Clubs at Wash U.

When Olly Cohen first arrived on campus at Washington University in St. Louis (Wash U), he knew the school was home to many talented and eager developers, just like him. Computer science is one of the most popular majors at Wash U, and graduates often find jobs in the tech industry. With that in mind, Olly was eager to build a community of peers who wanted to take theories learned in the classroom and put them to the test with tangible, real-life projects. So he decided to start his own Google Developer Student Club, a university-based community group for students interested in learning about Google developer technology.

Olly applied to become Google Developer Student Club Lead so he could start his own club with a faculty advisor, host workshops on developer products and platforms, and build projects that would give back to their community.

He didn’t know it at the time, but starting the club would eventually lead him to the most impactful development project of his early career — building a web application with the potential to help front-line healthcare workers in St. Louis, Missouri, during the pandemic.

Growing a community with a mission

The Google Developer Student Club grew quickly. Within the first few months, Olly and the core team signed up 150 members, hosted events with 40 to 60 attendees on average and began working on five different projects. One of the club’s first successful projects, led by Tom Janoski, was building a tool for the visually impaired. The app provides audio translations of visual media like newspapers and sports games.

This success inspired them to focus their projects on social good missions, and in particular helping small businesses in St. Louis. With a clear goal established, the club began to take off, growing to over 250 members managed by 9 core team members. They were soon building 10 different community-focused projects, and attracting the attention of many local leaders, including university officials, professors and organizers.

Building a web app for front-line healthcare workers

As the St. Louis community began to respond to the coronavirus pandemic in early 2020, some of the leaders at Wash U wondered if there was a way to digitally track PPE needs from front-line health care staff at Wash U’s medical center. The Dean of McKelvey School of Engineering reached out to Olly Cohen and his friend Daniel Sosebee to see if the Google Developer Student Club could lend a hand.

The request was sweeping: Build a web application that could potentially work for the clinical staff of Wash U’s academic hospital, Barnes-Jewish Hospital.

So the students got right to work, consulting with Google employees, Wash U computer science professors, an industry software engineer, and an M.D./Ph.D. candidate at the university’s School of Medicine.

With the team assembled, the student developers first created a platform where they could base their solution. Next, they built a simple prototype with a Google Form that linked to Google Sheets, so they could launch a pilot. Lastly, in conjunction with the Google Form, they developed a serverless web application with a form and data portal that could let all staff members easily request new PPE supplies.

In other words, their solution was showing the potential to help medical personnel track PPE shortages in real time digitally, making it easier and faster to identify and gather the resources doctors need right away. A web app built by students poised to make a true difference, now that is what the Google Developer Student Club experience is all about.

Ready to make a difference?

Are you a student who also wants to use technology to make a difference in your community? Click here to learn more about joining or starting a Google Developer Student Club near you.

Highlights from the Google for Games Developer Summit

This week, we hosted the Google for Games Developer Summit, a free digital event for game developers, publishers and advertisers to come together globally. Though we couldn’t meet in person, we’re grateful for the chance to share our latest solutions for developers to create immersive and memorable gaming experiences for players everywhere.

All keynotes and sessions from the summit are available on demand. Here are a few things we discussed during our keynote sessions:

Easier game development on Android

The new Android Game Development Kit can help make game development easier while Play as you download and the new Reach and devices data and insights tool can help get your games running on more screens and drive your launch success on Google Play.

Graphic illustration with Android logo, games controller, and user interface.

Get the most out of your games on Stadia 

Bringing games to Stadia is now even easier. We revealed new initiatives coming soon that will maximize the return on launching Stadia titles, including an affiliate marketing program, sharing monthly Stadia Pro subscription revenue with partners and an updated revenue share split for new transactional games launching under the new Stadia terms.

Drive lasting business revenue and growth with Ads

This past year, we have seen more people than ever play online games, which means there’s a growth opportunity to build a more sustainable games business. Get players back to your game while focusing on profitability with target return on ad spend (tROAS) bidding for App campaigns for engagement, or maximize revenue within your game by using AdMob bidding.
Interface screenshot of target return on ad spend (tROAS) bidding for App campaigns for engagement.

tROAS bidding for App campaigns for engagement in Google Ads

Bring your game to global audiences with Google Cloud

With flexible, scalable gaming solutions like Open Saves, Google Cloud helps you serve great gaming experiences all over the world so you and your players can focus on the fun.

As more people turn to games both for entertainment and for connecting with friends and family, we’re inspired by how the gaming community thrived this past year. That’s why we’re more committed than ever to help take your games to the next level.

Source: Android


Migrating from App Engine webapp2 to Flask

Posted by Wesley Chun (@wescpy), Developer Advocate, Google Cloud
graphic showing movement with arrows,. settings, lines, and more

Migrating web framework

The Google Cloud team recently introduced a series of codelabs (free, self-paced, hands-on tutorials) and corresponding videos designed to help users on one of our serverless compute platforms modernize their apps, with an initial focus on our earliest users running their apps on Google App Engine. We kick off this content by showing users how to migrate from App Engine's webapp2 web framework to Flask, a popular framework in the Python community.

While users have always been able to use other frameworks with App Engine, webapp2 comes bundled with App Engine, making it the default choice for many developers. One new requirement in App Engine's next generation platform (which launched in 2018) is that web frameworks must do their own routing, which unfortunately, means that webapp2 is no longer supported, so here we are. The good news is that as a result, modern App Engine is more flexible, lets users to develop in a more idiomatic fashion, and makes their apps more portable.

For example, while webapp2 apps can run on App Engine, Flask apps can run on App Engine, your servers, your data centers, or even on other clouds! Furthermore, Flask has more users, more published resources, and is better supported. If Flask isn't right for you, you can select from other WSGI-compliant frameworks such as Django, Pyramid, and others.

Video and codelab content

In this "Module 1" episode of Serverless Migration Station (part of the Serverless Expeditions series) Google engineer Martin Omander and I explore this migration and walk developers through it step-by-step.

In the previous video, we introduced developers to the baseline Python 2 App Engine NDB webapp2 sample app that we're taking through each of the migrations. In the video above, users see that the majority of the changes are in the main application handler, MainHandler:

The diffs between the webapp2 and Flask versions of the sample app

The "diffs" between the webapp2 and Flask versions of the sample app

Upon (re)deploying the app, users should see no visible changes to the output from the original version:

VisitMe application sample output

VisitMe application sample output

Next steps

Today's video picks up from where we left off: the Python 2 baseline app in its Module 0 repo folder. We call this the "START". By the time the migration has completed, the resulting source code, called "FINISH", can be found in the Module 1 repo folder. If you mess up partway through, you can rewind back to the START, or compare your solution with ours, FINISH. We also hope to one day provide a Python 3 version as well as cover other legacy runtimes like Java 8, PHP 5, and Go 1.11 and earlier, so stay tuned!

All of the migration learning modules, corresponding videos (when published), codelab tutorials, START and FINISH code, etc., can all be found in the migration repo. The next video (Module 2) will cover migrating from App Engine's ndb library for Datastore to Cloud NDB. We hope you find all these resources helpful in your quest to modernize your serverless apps!

Pride Week with Google Developer Group Floripa

Posted by Rodrigo Akira Hirooka, Program Manager, Google Developer Groups Latin America

Lorena Locks is on a mission to grow the LGBTQIA+ tech community in Brazil. Her inspiration came from hosting Google Developer Group (GDG) Floripa meetups with her friend Catarina, where they were able to identify a need in their community.

We felt there wasn't a forum to meet people in the tech industry that reflected ourselves. So we decided to think bigger.”

Image from GDG Floripa event

Image from GDG Floripa event

Pride Week at GDG Floripa, Brazil

As a Women Techmakers Ambassador and Google Developer Group lead in Floripa, Brazil, Lorena worked with the local community to create a week of special events, including over 12 talks and sessions centered on empowering the LGBTQIA+ experience in tech.

The events took place every night at 7pm from June 21st - 25th and focused on creating inclusive representation and building trust among developer communities.

Lorena’s commitment to this underrepresented group gained the attention of many local leaders in tech who identify as LGBTQIA+ and volunteered as speakers during Pride Week.

By creating spaces to talk about important LGBTQIA+ topics in tech, Pride Week with Google Developer Groups Floripa included sessions on:

  • Spotting binary designs in products
  • How to build inclusive tech teams
  • Being an LGBTQIA+ manager
  • Developing 'Nohs Somos' an app for the LGBTQIA+ community
  • The best practices for D&I
  • General Personal Data Protection Law and inclusive gender questions on forms
Image from event

Speakers in photo: Lorena Locks and Catarina Schein

With one-hundred percent of the speakers at these events coming from the LGTBQIA+ community, Pride Week at GDG Floripa was a high impact program that has gone on to inspire GDGs around the world.

If you want to learn more about how to get involved in Google Developer Group communities like this one, visit the site here.

Introducing "Serverless Migration Station" Learning Modules

Posted by Wesley Chun (@wescpy), Developer Advocate, Google Cloud
graphic showing movement with arrows,. settings, lines, and more

Helping users modernize their serverless apps

Earlier this year, the Google Cloud team introduced a series of codelabs (free, online, self-paced, hands-on tutorials) designed for technical practitioners modernizing their serverless applications. Today, we're excited to announce companion videos, forming a set of "learning modules" made up of these videos and their corresponding codelab tutorials. Modernizing your applications allows you to access continuing product innovation and experience a more open Google Cloud. The initial content is designed with App Engine developers in mind, our earliest users, to help you take advantage of the latest features in Google Cloud. Here are some of the key migrations and why they benefit you:

  • Migrate to Cloud NDB: App Engine's legacy ndb library used to access Datastore is tied to Python 2 (which has been sunset by its community). Cloud NDB gives developers the same NDB-style Datastore access but is Python 2-3 compatible and allows Datastore to be used outside of App Engine.
  • Migrate to Cloud Run: There has been a continuing shift towards containerization, an app modernization process making apps more portable and deployments more easily reproducible. If you appreciate App Engine's easy deployment and autoscaling capabilities, you can get the same by containerizing your App Engine apps for Cloud Run.
  • Migrate to Cloud Tasks: while the legacy App Engine taskqueue service is still available, new features and continuing innovation are going into Cloud Tasks, its standalone equivalent letting users create and execute App Engine and non-App Engine tasks.


The "Serverless Migration Station" videos are part of the long-running Serverless Expeditions series you may already be familiar with. In each video, Google engineer Martin Omander and I explore a variety of different modernization techniques. Viewers will be given an overview of the task at hand, a deeper-dive screencast takes a closer look at the code or configuration files, and most importantly, illustrates to developers the migration steps necessary to transform the same sample app across each migration.

Sample app

The baseline sample app is a simple Python 2 App Engine NDB and webapp2 application. It registers every web page visit (saving visiting IP address and browser/client type) and displays the most recent queries. The entire application is shown below, featuring Visit as the data Kind, the store_visit() and fetch_visits() functions, and the main application handler, MainHandler.


import os
import webapp2
from google.appengine.ext import ndb
from google.appengine.ext.webapp import template

class Visit(ndb.Model):
'Visit entity registers visitor IP address & timestamp'
visitor = ndb.StringProperty()
timestamp = ndb.DateTimeProperty(auto_now_add=True)

def store_visit(remote_addr, user_agent):
'create new Visit entity in Datastore'
Visit(visitor='{}: {}'.format(remote_addr, user_agent)).put()

def fetch_visits(limit):
'get most recent visits'
return (v.to_dict() for v in Visit.query().order(
-Visit.timestamp).fetch(limit))

class MainHandler(webapp2.RequestHandler):
'main application (GET) handler'
def get(self):
store_visit(self.request.remote_addr, self.request.user_agent)
visits = fetch_visits(10)
tmpl = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(tmpl, {'visits': visits}))

app = webapp2.WSGIApplication([
('/', MainHandler),
], debug=True)

Baseline sample application code

Upon deploying this application to App Engine, users will get output similar to the following:

image of a website with text saying VisitMe example

VisitMe application sample output

This application is the subject of today's launch video, and the main.py file above along with other application and configuration files can be found in the Module 0 repo folder.

Next steps

Each migration learning module covers one modernization technique. A video outlines the migration while the codelab leads developers through it. Developers will always get a starting codebase ("START") and learn how to do a specific migration, resulting in a completed codebase ("FINISH"). Developers can hit the reset button (back to START) if something goes wrong or compare their solutions to ours (FINISH). The hands-on experience helps users build muscle-memory for when they're ready to do their own migrations.

All of the migration learning modules, corresponding Serverless Migration Station videos (when published), codelab tutorials, START and FINISH code, etc., can all be found in the migration repo. While there's an initial focus on Python 2 and App Engine, you'll also find content for Python 3 users as well as non-App Engine users. We're looking into similar content for other legacy languages as well so stay tuned. We hope you find all these resources helpful in your quest to modernize your serverless apps!

Grow your indie game with help from Google Play

Today we’re opening applications for the 2021 editions of the Indie Games Accelerator and the Indie Games Festival from Google Play. These programs are designed to support the growth of small games studios that bring unique games to players around the world. 

Get help to develop your game with the Indie Games Accelerator

The Indie Games Accelerator brings the best of Google’s programs, products, people and technology to indie game developers that are full of potential. Selected studios will get free education and mentorship from Google and top industry experts to help them build and grow a successful games company. 

This year the program will be fully digital and is expanding to nearly double the markets, including the U.S., UK, Germany, France, Russia, Japan, South Korea and others. 


Promote your existing games with the Indie Games Festival 

The Indie Games Festival celebrates the creativity and innovation of top indie talent. Selected games will be rewarded with promotions on Google Play and dedicated marketing campaigns that will help players worldwide discover the games. 

We will host three competitions for indie game developers from Japan, South Korea and select European countries. 

If you are an indie game developer based in one of the eligible countries, apply for either program by July 1st

Tech Camp introduces Georgia high schoolers to technology careers

Posted by Posted by Erica Hanson, Senior Program Manager, Google Developer Student Clubs

Tamta Kapanadze wishes that she had learned sooner about careers in technology. By the time that the Georgian citizen learned about them, she was already a university student.

As Kapanadze continued her studies and her interest in technology grew, she wanted to spread the word about the growing field to high-school students in Georgia, a country where the industry is still small.

To do this, Kapanadze called in the support of Google Developer Student Clubs (GDSCs), community groups for college and university students interested in Google's developer technology. After Kapanadze graduated from university, she continued her work by organizing a chapter of Google Developer Groups (GDGs) for Kutaisi.

Google Developer Groups are the largest community network of professional developers in the world. The program consists of local chapters that provide inclusive environments open to everybody interested in tech. The chapters let members learn new skills, and meet other developers with similar interests through online and in-person events.

However, even after all that, Kapanadze still wanted to do more. She partnered with Mariam, GDSC Georgia American University Lead; Iliko, GDSC Georgia American University core team member; Giorgi, GDSC Tbilisi State University Lead; and Bakar, GDSC San Diego State University Lead. Together, they planned Tech Camp, a virtual technological learning experience that teaches high schoolers about tech fields and how to start careers in web development, game development, artificial intelligence, machine learning, and more.

While it's difficult enough to plan and execute a new event, Kapanadze and her partners didn't let the additional challenges of the last year stop their plans to launch Tech Camp. They wanted to publicize the event by mid-January, so they made a to-do list and set deadlines for themselves. After a few weeks of intense planning, they:

  • Chose the session topics
  • Started looking for speakers
  • Chose dates and created a timetable for the camp
  • Created an application form
  • And created logos and other designs

Kapanadze and her partners accepted applications for Tech Camp from Jan. 20 to Feb. 10 and announced their speakers to the public to keep the buzz about the event going. They originally hoped to receive 30 applications, but instead received 500. They decided to let a maximum of 300 students attend the speaker sessions and 500 students attend the coding sessions, where they would teach them about algorithms and the basics of C++.

Finally, the first day of Tech Camp arrived on Feb. 15. They began each session with fun icebreakers to help everybody feel comfortable, including themselves. Here's a timeline of what each day covered:

  • Day 1:
    • Digital professions
    • Hardware and software
  • Day 2:
    • Mobile development
    • Web development
  • Day 3:
    • Cybersecurity
    • Game development
    • Data engineering
  • Day 4:
    • UI/UX design
    • Embedded systems
  • Day 5:
    • Cloud
    • Test automation
  • Day 6:
    • Artificial intelligence and machine learning
    • Career development
  • Day 7:
    • Importance of technology
    • Freelance jobs
    • Award ceremony

Everybody defines success differently, but for Kapanadze it meant impacting at least one person. By this measure, Tech Camp succeeded because many of those who attended decided to pursue careers in tech. As for Kapanadze, she can’t wait to see what the future holds for Georgia's high schoolers and the country's growing tech industry.

To watch recordings from Tech Camp, please visit the playlist on YouTube.

For more information, find a Google Developers community group near you.

Giant cranes and video games: How I/O went digital

There’s a sign on the wall behind Andrew Rossi's desk that’s been impossible to ignore during video calls lately. The placard counted down the days until I/O 2021 — and as event lead for Consumer Apps at Google, Andrew is part of a huge team behind the whole production. While it now reads “0,” the purposefully placed sign was visible during the many virtual meetings he had with people all across Google in the run-up to an entirely different kind of I/O.

A sign on a wall above a small bookcase with changeable lettering reads: “I/O is 0 days away.”

I/O is a major undertaking under normal circumstances, and it took a unique brand of elbow grease this year. But after I/O 2020 was canceled due to the pandemic, Google’s developer relations and marketing teams couldn’t let another year pass without it. 

“Apps and the web became even more integrated into our daily lives over the past year,” says VP of Engineering Jason Titus. “They helped us stay healthy, connected and productive — and this served to spotlight how developers were really part of helping us adapt to the challenges of 2020.” 

Planning for this year’s event began nearly as soon as I/O 2020 was canceled. The team agreed on an event primarily focused on live broadcast but that also offered flexibility for participants, while also respecting how different parts of the world were experiencing the pandemic. It would be a three-day digital event, with a mix of live keynotes, pre-recorded technical sessions and interactive features — and it would be unlike anything Google had created before.  


Online, everyone’s invited

Taking the event virtual had a big upside: More of Google’s global developer community could attend, for free. This year, there were 225,000 registrations, mostly from outside the U.S. 

“Going digital meant we had the freedom to think of new ways to deliver technical content,” says Elizabeth Cha, who leads developer marketing. “It seemed the best way to be helpful to developers this year was to give greater access to our technical experts and let the developer community support one another. So beyond the usual technical sessions and Codelabs, we're offering Ask Me Anything (AMA) sessions, instructor-led workshops and meetups.”

A person sitting at a desk looks into the camera on their laptop; the screen shows the person. Behind the laptop is a light and recording gear

A video technician tests out one of the at-home recording kits sent to presenters so they could record their talks from home.

Just like an in-person event involves crowd control and line management, a digital event requires building the infrastructure so everyone can participate. The team took the opportunity to make other improvements for accessibility and inclusivity — including an American Sign Language option for the two main keynotes, a first.

“This year, instead of the online experience accompanying the physical event, the online experience is the event,” says Developer Relations Product Manager Ilen Zazueta-Hall. “Scaling the event was a coordinated effort — we had to rethink so much. Like how do we scale workshops? How many languages do we translate technical content into? How do we make sure it’s accessible, and that people can connect?” 

Live, from Google I/O

While online development was crucial, there was also the challenge of broadcasting live. The team wanted to keep keynotes live because, among other things, digital burnout was a factor. “We’re all sick of sitting down in front of a screen,” VP of Marketing Marvin Chow says. The best way to fight this fatigue was with live video. “When it’s taped, you don’t get that same authenticity and connection.” 

A camera crew of several people are in the foreground, filming a stage surrounded by trees.

The production crew films the keynote dress rehearsal.

Going live was a complex process. First, Andrew and his team had to find a location. Originally, the idea was to film from Shoreline Amphitheatre, Google I/O’s home since 2016, but that was quickly dismissed. The venue, which can fit more than 22,000 people, would have felt eerie without thousands of attendees. 

So the team settled instead on Google’s “Quad” campus in Mountain View. That, too, came with unknowns. “You can’t just throw a stage on campus, because the sun would just beat down on everyone,” Andrew explains. So the team brought in giant cranes to cover the area. “We tracked things like how much the wind blows on an average day.”

Three masked people sit near a “Google” sign in adirondack chairs on a lawn.

Googlers in the I/O audience.

In addition to two stages and space for production crews, the quad could accommodate a small, socially distanced audience. “We realized we could get 15 people around one stage and 19 around another,” Andrew says. This would give presenters something to look at, and bring some energy to the broadcast. Presenters nominated fellow Googlers, so they would see familiar faces. Audience members agreed to a list of COVID-19-related requirements as well as sitting through two rehearsals in case production needed to use backup film. No phones or laptops were permitted the entire time. 

But the work was well worth it: Googlers were excited to head to campus for I/O — and each other. In some cases, colleagues even met in person for the first time.

Photo showing a group of people wearing masks standing on a circular stage on a lawn. A person in the foreground is taking a photo of them.

Googlers gather at the dress rehearsal the day before the keynote.

For everyone who couldn’t go, there was an online Adventure. 


Adventure awaits

A significant draw of I/O for developers is everything that happens IRL. “You know when you’re in line for food and you strike up a conversation with someone?” Elizabeth says. “And you find out you’re both working on the same problem or interested in similar topics and then ideas start pouring in — that’s what I/O is about.”

Enter I/O Adventure, a reimagining of what it’s like to actually be there and get your "hands on" the latest technology, complete with virtual product demos and hangout spaces where you can meet and chat with other developers. Adventure was developer advocate Tom Greenaway’s idea; he’d come up with it as a way for attendees to join in during Chrome Developer Summit (CDS) last December. It was a success, so the team decided to bring it to I/O. 

Photo showing a large group of virtual avatars in the I/O Adventure game world. Participants can earn up to 140 pieces of virtual swag.

 I/O attendees gathering inside I/O Adventure. Participants can interact with over 450 pieces of unique product content — like technical demos, videos and codelabs — and earn up to 140 pieces of virtual swag.

Tom, along with a small team of designers and programmers, collaborated with various Google product departments to craft experiences inside the game. Machine learning and AI, for example, have a musical forest where trees transform into instruments as you bump into them. “As they change, collaboratively, people all over the world will make music together,” Tom says. And Google engineers had special help testing the product — from their kids. “They did about two hours of testing in all over a weekend,” says Elizabeth, whose own children assisted. “And they wanted to play more!”

Two children sitting at a dining room table looking at an open laptop that shows the I/O Adventure game on the screen.

Elizabeth’s kids test out I/O Adventure.

Invention...and Easter eggs

Appropriately for an event that celebrates developer creativity, inventiveness is a theme that runs throughout everything the team did to make I/O happen this year. “I/O 2021 was about  meeting developers where they are and making it easier for them to innovate quickly,” Jason says. In such a daunting year,it was increasingly clear how much the world needs builders. “By helping developers, we help everyone who uses the technology they build.”

And of course, what would any Google project be without a few Easter eggs? “Do you know the Konami Code?” Tom asked during a recent demo of Adventure. “It’s up, up, down — ” ...actually, you’ll just have to find out for yourself.