GDG Silicon Valley
All Sessions

A Gentle Introduction to TensorFlow 2.0

9:00am - 9:30am, Luca Pacioli
Paige Bailey
TensorFlow 2.0 has landed! In this talk, you'll learn all about the latest version of Tensorflow, as well as how you can upgrade your existing TensorFlow 1.x models.

Can AI understand doctor's notes?

9:30am - 10:00am, Luca Pacioli
Alex Ermolaev
US Healthcare system generates massive amount of information, with up to 400 pages per hospital visit. This information can be used in variety of ways to improve diagnostics, personalize treatments or optimize healthcare system. This talk will discuss large scale healthcare information processing using Google Cloud Vision API and extracting actionable knowledge using TensorFlow deep learning.

Deep Learning for Android with TensorFlow

10:00am - 11:00am, Luca Pacioli
Margaret Maynard-Reid
Are you interested in making intelligent apps with the most popular deep learning framework TensorFlow? Come to this talk to learn your various options: from using ready made APIs to training your own custom models. You will learn the end to end process of how to train a model with TensorFlow high level API tf.Keras, convert to a TensorFlow Lite model and deploy it to an Android app. Topics covered in this talk: - Intro to TensorFlow, tf.Keras, TensorFlow Lite and ML Kit - How to integrate ML Kit, a Mobile SDK powered by TensorFlow Lite - Transfer learning with Pre-trained ConvNets - Train a model from scratch and deploy it to Android for inference

Let's build Apps for Google Assistant!

11:00am - 12:00am, Luca Pacioli
Jessica Dene Earley-Cha
Learn how to give your users engaging experiences through hundreds of millions of devices including smart speakers, phones, cars, TVs, headphones, and more with Google Assistant. Cloud Functions provides the easiest way to build your Assistant Action and auto-scales underlying infrastructure to match your app's usage. Join us for live coding as we build an Action for Google Assistant onstage -- using Actions on Google & Dialogflow!

Smoth Criminals: Android Animations and How not to get Robbed

9:00am - 10:00am, Elinor Ostrom
Stacy Devino
"How did they do that?!" How many times have you been just stunned, STUNNED by the work you see others do in a fully native app? Smooth, layered animations for every transition that work on even $20 phones? It's not magic and it may not be as difficult or as "mathy" as you might think. "Wow" effects that impress and delight! Stacy will be exploring how to use multiple ways to accomplish a standard set of animations and much slicker more complicated ones using native and external libraries.From the native side you will cover topics like using the new MotionLayout, animation XML definitions, Material Design AppCompat included tools, moving through ObjectAnimators, Animation Properties, Listeners, View Animators, AnimationSets, even AnimatedVectorDrawables, Morphs, and libraries like Lottie. You will learn what to use where and how for Best Performance and Best Practices.

5 tips on Android UI reusability

10:00am - 10:30am, Elinor Ostrom
Carlos Palacin
In this talk, we will do a deep dive into UI reusability on Android. We will use some examples to highlight some common issues that affect the reusability of our UI. We will propose alternative patterns to overcome these issues and evaluate their impact on our day to day work.

Flutter for Android developers

10:30am - 11:00am, Elinor Ostrom
Denis Neklyudov
Flutter became very popular among Android devs after release. But developers have many questions. With new framework and programming language, they lost tools and approaches that they familiar with. No Retrofit, Room, Realm, DataBinding, RxJava and what architecture is the best for Flutter apps? This talk is addressed to answer Android developers questions to help them to enjoy creating production-ready mobile apps.

Groovy: More than Gradle's DSL

11:00am - 11:15am, Elinor Ostrom
James Williams
Every time you edit a Gradle file and build an Android app, a lot of magic is going on behind the scenes thanks to Groovy. Created as a dynamic language in 2007, modern Groovy has speeds equivalent to Java and added features like static compilation to make it possible to, don't laugh, write Android code. Come learn a bit how to teach your build files a few new tricks, some cautionary tales Groovy's history has for the new Kotlin developer, and what makes Groovy more than Gradle's DSL.

Following the North Star: Navigation in Android

11:15am - 11:45am, Elinor Ostrom
Murat Yener
From Medieval age to Modern times, ones desire to go from place to another hasn’t changed a bit but became much easier. Navigating in your mobile app is no different. In this session we will see how the new Navigation Architecture Component can greatly help to navigate from one view to another as well we helping you to pass data, create deep links and let your users find their way more effectively!

WorkManager the Workshop

11:00am - 12:00am, Dan Bricklin
Lyla Fujiwara
WorkManager is the Android Jetpack component for deferred and guaranteed background work. Not only does WorkManager handle background work compatibility to API level 14, it also introduces new features, such as chaining work, listening to work status and handling asynchronous work. In this workshop, you'll learn strategies for background work on Android, when it makes sense to use WorkManager and the ins and outs of the WorkManager API. Note: This is a guided tutorial - please come ready to "work" with a laptop with Android Studio installed!

Migrating your Monolith System to Microservices

1:30pm - 2:30pm, Luca Pacioli
Martin Omander
Microservices enable development teams to be more agile, but it’s hard to break up an existing monolithic application or to run many services. Come to see a time-lapse refactoring of a fictional monolithic web application into decoupled services. An incremental approach and GCP serverless products for hosting, communication, and storage come to the rescue. We will explore how to get started and use best practices for your journey to a low-ops, high-velocity future.

Exploring Google APIs with Python & JavaScript

2:30pm - 3:30pm, Luca Pacioli
Wesley Chun
Want to integrate Google technologies into the web+mobile apps that you build? Google has various open source libraries & developer tools that help you do exactly that. Users who have run into roadblocks like authentication or found our APIs confusing/challenging, are welcome to come and make these non-issues moving forward. The first half of the talk covers the Google APIs Client Library, specifically with Python, although you could use any of the other languages supported. We'll then describe the steps necessary to create projects & enable Google APIs from the Google Developers Console. Then we discuss how to create & access the needed credentials. Code demos will show you how to use this code to talk to a variety of Google APIs. While you do the same thing using JavaScript, there is another developer tool that gives you access to Google APIs but in a slightly different way. The second half of the talk covers Google Apps Script, a self-contained JavaScript environment in the Google cloud. You'll learn what Apps Script is and how it's more like using "services" than traditional APIs. We'll show you how to use its development environment and create a Google Sheets spreadsheet that talks to several Google APIs. The applications you build, whether they use the Client Library or Apps Script are reachable by any client, browser, desktop/laptop or mobile. Come join us and learn how to leverage the power of Google technologies in the next apps you build!

Go “serverless” with Cloud Functions for Firebase

4:00pm - 5:00pm, Luca Pacioli
Doug Stevenson
Firebase makes it incredibly easy to write, deploy, and scale a serverless backend, written in TypeScript, for your app. In this session, you’ll get to experience that using nothing more than a code editor and the Firebase CLI. You'll see a live demo of an HTTP API, a Firestore trigger, and other deceptively powerful functions that glue together Google APIs and services.

Google Cloud Functions for Go

1:30pm - 2:00pm, Luca Pacioli
Grant Timmerman
The Serverless Movement: Serverless abstracts away the most menial parts of building an application, leaving developers free to actually spend their days coding. In this talk, Grant will introduce the basics using Google Cloud Functions, featuring the new Go runtime.

Secrets to Effective Remote Work

2:00pm - 2:30pm, Luca Pacioli
Ben Oberkfell
More and more companies are embracing remote work, and more and more employees are finding that the remote work model affords them flexibility and opportunity. But it also poses challenges to people who are new to working remotely, like: - what to ask in an interview to determine just how remote-friendly a company happens to be - setting up a workspace at home - having high quality remote interactions with your colleagues- avoiding overwork and burnout - just plain maintaining sanity I'll share some lessons learned from years of working remotely, both pitfalls and great habits to establish.

Design Sprint - Building @ Speed of thought

2:30pm - 3:30pm, Luca Pacioli
Siamak (Ash) Ashrafi
Breaking away from the traditional steps of a design sprint (http://www.gv.com/sprint) we blur them together to further reduce the development cycle in what we call "Building @ Speed of Thought". Over the years my group has been perfecting how to build world-class Android Apps at the speed of thought first for hackathons, then products and now for design sprints. In this session, we will detail the “Speed of Thought” methodology, steps, tools and components involved. We start by utilizing a design sprint to explore the power of mobile and how it fits into the market/problem we are trying to solve. Then focusing on the crucial step in a design sprint we build high fidelity prototypes in rapid succession utilizing the JetPack Android software components (UI, Behavior, Foundation, Architecture) to take full advantage of the Android platform. We do this by leveraging the design features of Android Studio (material components / theme editor, constraint library, motion editor) along with open source/industry resources to build an intuitive and beautiful UI. Once the UI framework is done we write the Kotlin application logic utilizing the Android Architecture Components with data binding connected to Firebase for the synchronized backend. With our application finished we execute our strategy for marketing, distribution, and monetization guided by Data-Driven Ethnography (DDE). At the end of the session, the audience will have a good idea of how in rapid secession all these tools and components come together to produce magic.

GraphQL and state management

4:00pm - 4:30pm, Luca Pacioli
Shruti Kapoor
How does state management work with GraphQL? Do you need Redux to store your data? What benefits does GraphQL clients have over flux architectures? This talk answers these questions.

The power of Typescript to work with Node.js Applications

4:30pm - 5:00pm, Luca Pacioli
Erick Wendel
Typescript is a superset of Javascript, helping developers to make powerful applications with better organization, maintainability and solves many problems that Javascript has. In this talk you can know the power to build applications with Typescript, using design patterns and features that can help us to build better software.

Let's build Apps for Google Assistant!

1:30pm - 5:00pm, Alexander Hamilton
Jessica Dene Earley-Cha
Learn how to give your users engaging experiences through hundreds of millions of devices including smart speakers, phones, cars, TVs, headphones, and more with Google Assistant. Cloud Functions provides the easiest way to build your Assistant Action and auto-scales underlying infrastructure to match your app's usage. Join us for live coding as we build an Action for Google Assistant onstage -- using Actions on Google & Dialogflow!

End to End Machine Learning on Google Cloud

1:30pm - 5:00pm, Dan Bricklin
Vikram Tiwari
We will start by developing an ML model using TensorFlow, training and deploying it on Google Cloud and then finally use it to get inferences.