I produced developer videos during my time at Google (2009-2023), primarily for Google Workspace (GWS) and Google Cloud (GCP) tools, APIs, and platforms. On this page, I tried to encapsulate most of that content. Whenever/whereever possible/available, you'll find code samples, blog posts, codelabs, playlists, and other relevant information & resources for each video.
All related code samples are in Python (2 and/or 3) unless otherwise indicated. You may find duplicate entries for content covering more than one API as there will be rows categorized for each API. This is a continuing work-in-progress as I continue to chase down content and/or add additional resources (esp. items marked as "tbd")... check back for updates.
For some of the older content, I may have posts up on my old blog along with code samples. My plan is to provide fresh & revised updates to those posts along with making modernized versions of the code samples (plus Node.js versions) on my current blog. This will happen in a drip-like fashion, slowly, over time as I get to each.
Content is broken up by product, topic, and/or category. Hold Ctrl/Command and mouseclick the thumbnails to open videos in other tabs.
- Google APIs in general
- Google Workspace / GWS (Gmail, Google Drive, Docs, Sheets, Slides, etc.)
- GWS and GCP interoperability (playlist tbd)
- GCP general and multiple GCP products
- GCP serverless platforms (App Engine, Cloud Functions, Cloud Run; playlist tbd)
- Nebulous serverless codelabs (Deploy the same app to App Engine, Cloud Functions, and Cloud Run)
- Google App Engine (GAE) migration from 1st-gen platform (playlist)
- Miscellaneous
- Playlist collection
Video | Title | Link(s) | Description | Featured API(s), product(s), feature(s) |
---|---|---|---|---|
The Setup: Creating new apps using Google APIs | post | How to start using Google APIs | Cloud & Developers console | |
Accessing Google APIs: Common code walkthrough | post | Understanding OAuth2 boilerplate basics (primarily for GWS APIs) | Google APIs client libraries | |
Using field masks with Google APIs for partial response | post | How to minimize data returned from API calls | (tbd) | |
Using field masks with update requests to Google APIs | post | Choosing specific fields to update via API calls | (tbd) |
Video | Title | Link(s) | Description | Featured API(s), product(s), feature(s) |
---|---|---|---|---|
Creating great experiences with email markup | (n/a) | What is email markup and how can it be useful? | Email markup | |
Workspace (formerly G Suite) APIs: intro & overview | post | Basic intro to GWS APIs for student developers | (tbd) | |
Power Your Apps with Gmail, Google Drive, Calendar, Sheets, Slides, and More! | (n/a) | Comprehensive GWS platform overview for developers, a Cloud Next '18 featured presentation | (tbd) | |
Generating slides from spreadsheet data | post | Import spreadsheet data & charts into slide decks | Sheets & Slides APIs | |
Performing Mail Merge with Google Docs | post | Traditional "mail-merge" case study app (links to repo but no code in video) | Docs & Sheets APIs | |
Extend Google Docs, Sheets, and Slides with Add-ons | (n/a) | Creating add-ons for GWS, a Google Developers Day - India 2017 featured presentation | Apps Script, Docs, Sheets & Slides APIs | |
Accessing Workspace (formerly G Suite) REST APIs | post | Accessing GWS REST APIs intro for Student Developers | (tbd) |
Google Apps Script (playlist)
Video | Title | Link(s) | Description | Other featured APIs/tools |
---|---|---|---|---|
Another Google (Apps) secret? | (n/a) | Basic Apps Script intro | ||
Automate & extend with Google Apps Script | post | Basic Apps Script intro for student developers (modern version of above video) | ||
Accessing Google Maps from a spreadsheet?!? | (n/a) | Access Google Maps from Google Sheets data | Google Maps Static API, Sheets API | |
Automating YouTube stats with Google Apps Script | post | Querying video information from data in spreadsheets | YouTube Data API, Sheets API | |
Generating Google Slides from images | post | Auto-generating slides in a deck based on a set of images | Slides API | |
Expediting expense reports with Gmail add-ons | post, codelab, source | Using Gmail Add-ons to scan receipts in your inbox to expedite expense reporting | Gmail & Sheets APIs | |
Making progress (bars) with Slides Add-ons | post | Adds a "progress bars" feature to Google Slides | Slides API | |
Auto-generating Google Forms | post | How to automatically generate Google Forms | Forms API |
Google Drive API (playlist)
Video | Title | Link(s) | Description | Other featured APIs/tools |
---|---|---|---|---|
Listing your files in Google Drive | post 1, post 2, codelab, source | Basic GWS API script | ||
Uploading & Downloading Files on Google Drive | post | Uploading & downloading files | ||
Introducing Shared (formerly Team) Drives | post | Coding Shared Drives |
Video | Title | Link(s) | Description | Other featured APIs/tools |
---|---|---|---|---|
Revolutionizing Email Access with Gmail | (n/a) | Querying email headers in threads & messages | ||
Modifying email signatures in Gmail | post | How to modify personal settings like email signatures | ||
Expediting expense reports with Gmail add-ons | post, codelab, source | Using Gmail Add-ons to scan receipts in your inbox to expedite expense reporting | Apps Script, Sheets API |
Video | Title | Link(s) | Description | Other featured APIs/tools |
---|---|---|---|---|
Creating events in Google Calendar | post | Creating calendar events | ||
Modifying events in Calendar | post | Updating events in Google Calendar |
Google Sheets API (playlist)
Video | Title | Link(s) | Description | Other featured APIs/tools |
---|---|---|---|---|
Introducing the Google Sheets API v4 | post | Create spreadsheet from rows of SQL data | ||
Formatting cells in Google Sheets | post | Basic spreadsheet cell formatting | ||
Power and Flexibility of the "new" Google Sheets API | (n/a) | Introduces the new v3 API features, a Google Developers Day - India 2017 featured presentation | ||
Accessing Google Maps from a spreadsheet?!? | (n/a) | Access Google Maps from Google Sheets data | Google Maps Static API, Apps Script | |
Automating YouTube stats with Google Apps Script | post | Querying video information from data in spreadsheets | YouTube Data API, Apps Script | |
Expediting expense reports with Gmail add-ons | post, codelab, source | Using Gmail Add-ons to scan receipts in your inbox to expedite expense reporting | Apps Script, Gmail API |
Google Slides API (playlist)
Video | Title | Link(s) | Description | Other featured APIs/tools |
---|---|---|---|---|
Replacing text & images in Google Slides | post | Perform the equivalent of a "slide deck template mail-merge" | ||
Formatting text in Slides | post | Basic text-formatting in slide decks | ||
Adding text & shapes to Google Slides | post | Adding objects to slide decks | ||
Generating Google Slides from images | post | Auto-generating slides in a deck based on a set of images | Apps Script | |
Making progress (bars) with Slides Add-ons | post | Adds a "progress bars" feature to Google Slides | Apps Script |
Google Chat API and bot/app platform (playlist)
Video | Title | Link(s) | Description | Other featured APIs/tools |
---|---|---|---|---|
The bots are coming! | post | Developing chat bots/apps | Apps Script, App Engine | |
Asynchronous messages in Google Chat | post | Sending asynchronous/out-of-band messages | (tbd) | |
Transform the way you work with Google Chat bots/apps | (n/a) | Launch presentation for Google Chat app/bot platform, a Google I/O 2018 featured presentation | (tbd) |
Video | Title | Link(s) | Description | Other featured APIs/tools |
---|---|---|---|---|
Auto-generating Google Forms | post | How to automatically generate Google Forms | Apps Script |
Video | Title | Link(s) | Description | Featured API(s), product(s), feature(s) |
---|---|---|---|---|
File Storage in the Cloud | (n/a) | Essentially Google Drive vs. Cloud Storage | Google Drive, Cloud Storage, Cloud Persistent Disk | |
Code that final mile: from big data analysis to slide presentation | post, codelab, source | Pushing BigQuery results to spreadsheets & slide decks | Apps Script, BigQuery, Sheets & Slides APIs | |
Better together: How Google Cloud makes Google Workspace better for you | (n/a) | Using GCP and GWS APIs in the same app(s) | (tbd) | |
Build WIth ALL of Cloud: GCP & GWS (formerly G Suite) Interoperability | (n/a) | Using GCP & GWS APIs in case study/demo app(s), a Cloud Next '19 featured presentation | (tbd) | |
GWS (formerly G Suite) + GCP: Building Serverless Applications with All of Google Cloud | (n/a) | Using GCP & GWS APIs in case study/demo app(s), a Cloud Next '18 featured presentation | (tbd) |
Video | Title | Link(s) | Description | Featured API(s), product(s), feature(s) |
---|---|---|---|---|
Easy path to Machine Learning | (n/a) | How to get up-to-speed with AI/ML by learning the GCP Vertex AI "building block" APIs backed by single-task, pre-trained models | GCP Vertex AI: Cloud Vision API & Cloud Natural Language APIs | |
Building an AI-enhanced enterprise image processing workflow | post, codelab, repo | Image archival & report generation: back up images from Google Drive to Cloud Storage, analyze with Cloud Vision, write data to Google Sheets | GWS (Drive & Sheets APIs) & GCP (Storage & Vision APIs) | |
Powering the next killer app with GCP | (n/a) | General intro to GCP | (tbd) |
Video | Title | Link(s) | Description | Featured API(s), product(s), feature(s) |
---|---|---|---|---|
Picking the right serverless platform | post | How to choose between serverless platforms | App Engine, Cloud Functions, Cloud Run | |
Top 3 pain points for serverless developers | (n/a) | The biggest hangups/headaches for serverless developers | (tbd) | |
How to design a serverless app | (n/a) | How to design the backend/server-side for serverless apps | Cloud Run | |
Deploy the same app to App Engine, Cloud Functions, and Cloud Run | post, multiple codelabs below, Python source, Node.js source | Can you deploy the same app to all platforms with no code changes? | App Engine, Cloud Functions, Cloud Run | |
Developing Scalable Apps with Google App Engine | (n/a) | App Engine product overview, part of the "Ask the Experts" series for developers | App Engine | |
Google App Engine | (n/a) | Product overview, a Google Developers Day - Berlin 2011 featured presentation | App Engine | |
Google App Engine Overview | (n/a) | Product overview, a Google I/O BootCamp 2011 featured presentation | App Engine | |
How to use Cloud Run "always-on" CPU allocation for background work | post, repo | Weather alerting Cloud Run app; "Always-on CPU" case study | Cloud Run, Cloud Datastore API | |
Change the world in 10 lines of code | (n/a) | Explores how you can change the world with inbound email processing | App Engine |
Deployment | Python 2 | Python 3 | Node.js |
---|---|---|---|
Local/hosted Flask | codelab | same as Python 2 | codelab |
App Engine | ^codelab | codelab | same as local/hosted |
Cloud Functions | N/A | codelab | same as local/hosted |
Cloud Run (Docker) | codelab | codelab | same as local/hosted |
Cloud Run (Buildpacks) | N/A | codelab | same as local/hosted |
^ — not recommended as of Jan 2024 as developers can no longer deploy Python 2 apps to App Engine (see sidebar above)
Google App Engine (GAE) migration from 1st-gen platform (playlist)
Video | Title | Link(s) | Description | Featured API(s), product(s), feature(s) |
---|---|---|---|---|
Migrating from App Engine webapp2 to Flask | post, codelab, Python 3 source, Python 2 source | Migrating (web) frameworks for long-time App Engine developers | ||
Migrating from App Engine ndb to Cloud NDB | post, codelab, Python 3 source, Python 2 source | How to slightly alter NDB access for better portability for long-time App Engine developers | Cloud NDB API | |
Google Cloud NDB to Cloud Datastore migration | post, codelab, source, Python 2 source | Migrating to the "new" Datastore API for long-time App Engine developers | Cloud NDB & Cloud Datastore APIs | |
Migrating from App Engine to Cloud Run with Docker | post, codelab, Python 3 source, Python 2 source | Migrating apps to Cloud Run with Docker for long-time App Engine developers | Cloud Run | |
Migrating from App Engine to Cloud Run with Cloud Buildpacks | post, codelab, source | Migrating apps to Cloud Run without Docker (with Buildpacks) for long-time App Engine developers | Cloud Run | |
Migrating from Cloud Datastore to Cloud Firestore | (n/a) | Optional/unnecessary migration from Datastore to Firestore APIs for long-time App Engine developers | Cloud Datastore & Cloud Firestore APIs | |
How to use App Engine push queues in Flask apps | post, codelab, Python 3 source, Python 2 source | How to use (push) Task Queues in Flask apps for long-time App Engine developers | ||
Migrating App Engine push queues to Cloud Tasks | post, codelab, source | Migrating from (push) Task Queues to Cloud Tasks for long-time App Engine developers | Cloud Tasks API | |
Refactoring a Python 2 Cloud NDB app to Python 3 & Cloud Firestore | codelab, source | Case study: double migration from Python 2 to 3 and Cloud NDB to Cloud Firestore for long-time App Engine developers | Cloud NDB & Cloud Firestore APIs | |
Migrating from App Engine to Cloud Functions | post, codelab, source | Breaking up monolithic apps into Cloud Functions (Gen 1) microservices for long-time App Engine developers | Cloud Functions | |
How to use App Engine Memcache in Flask apps | post, codelab, Python 3 source, Python 2 source | Using Memcache in Flask apps for improved portability for long-time App Engine developers | ||
Migrating App Engine memcache to Cloud Memorystore | post, codelab, Python 3 source, Python 2 source | Migrating from memcache to Cloud Memorystore for Redis for long-time App Engine developers |
Cloud Memorystore for Redis API | |
How to use App Engine blobstore in Flask apps | post, codelab, source | Using Blobstore in Flask apps for better portability for long-time App Engine developers | ||
Migrating App Engine Blobstore to Cloud Storage | post, codelab, source | Migrating Blobstore API usage to Cloud Storage for long-time App Engine developers | Cloud Storage | |
Extending support for App Engine bundled services: Part 1 | post, codelab, source | Accessing App Engine bundled services with its Gen2 platform for long-time App Engine developers | ||
How to use App Engine Task Queue pull tasks | post, codelab, source | Using pull tasks in Flask apps for long-time App Engine developers | ||
Migrating App Engine pull tasks to Cloud Pub/Sub | post, codelab, source | Migrating (pull) Task Queue to Cloud Pub/Sub for long-time App Engine developers | Cloud Pub/Sub | |
How to use App Engine Users service in Flask apps | post, codelab, source | Using the Users API for authentication in Flask apps for long-time App Engine developers | ||
Migrate App Engine Users service to Cloud Identity Platform | post, codelab, Python 3 source, Python 2 source | Migrating off the Users API to Cloud Identity Platform & Firebase Auth for long-time App Engine developers | Cloud Identity Platform & Cloud Resource Manager APIs | |
Extending support for App Engine bundled services: Part 2 | (n/a) | Using App Engine bundled services requiring more effort with its Gen2 platform for long-time App Engine developers |
Video | Title | Link(s) | Description | Featured API(s), product(s), feature(s) |
---|---|---|---|---|
Python at Google | (n/a) | How Google & YouTube use Python, a Google I/O 2011 featured presentation delivered with the inventor of Python, Guido van Rossum | ||
Faculty Summit: Create Your Own Codelab | (n/a) | How to create "codelabs" (self-paced, hands-on tutorials) | claat codelab generator tool |
Most of the videos above belong to one of these playlists:
Video Series | Info link | Intended audience (but open to all) |
---|---|---|
Launchpad Online | post | startup (and all) developers |
Workspace (GWS; formerly G Suite) Dev Show | Tweet | Gmail, Google Drive, Docs, and Sheets APIs users |
Serverless Migration Station | post | Python 2 App Engine users seeking to upgrade |
Google Cloud for Student Developers | page | student (and all) developers |
Google Apps Script | (deprecated) page | Serverless platform for enhancing, extending, and automating GWS, other Google, and non-Google resources |
Google Drive | page | Drive API users |
Google Slides | page | Slides API users |
Google Sheets | page | Sheets API users |
Google Chat | (deprecated) page | Chat bot/app platform developers |
Gmail (tbd) | page | Gmail API users |