Category Archives: Google Developers Blog

News and insights on Google platforms, tools and events

Google Cloud for Student Developers: Accessing G Suite REST APIs

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

Recently, we introduced the "Google Cloud for Student Developers" video series to encourage students majoring in STEM fields to gain development experience using industry APIs (application programming interfaces) for career readiness. That first episode provided an overview of the G Suite developer landscape while this episode dives deeper, introducing G Suite's HTTP-based RESTful APIs, starting with Google Drive.

The first code sample has a corresponding codelab (a self-paced, hands-on tutorial) where you can build a simple Python script that displays the first 100 files or folders in your Google Drive. The codelab helps student (and professional) developers...

  1. Realize it is something that they can accomplish
  2. Learn how to create this solution without many lines of code
  3. See what’s possible with Google Cloud APIs

While everyone is familiar with using Google Drive and its web interface, many more doors are opened when you can code Google Drive. Check this blog post and video for a more comprehensive code walkthrough as well as access the code at its open source repository. What may surprise readers is that the entire app can be boiled down to just these 3-4 lines of code (everything else is either boilerplate or security):

    DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
files = DRIVE.files().list().execute().get('files', [])
for f in files:
print(f['name'], f['mimeType'])

Once an "API service endpoint" to Google Drive is successfully created, calling the list() method in Drive's files() collection is all that's needed. By default, files().list() returns the first 100 files/folders—you can set the pageSize parameter for a different amount returned.

The video provides additional ideas of what else is possible by showing you examples of using the Google Docs, Sheets, and Slides APIs, and those APIs will be accessed in a way similar to what you saw for Drive earlier. You'll also hear about what resources are available for each API, such as documentation, code samples, and links to support pages.

If you wish to further explore coding with G Suite REST APIs, check out some additional videos for the Drive, Sheets, Gmail, Calendar, and Slides APIs. Stay tuned for the next episode which highlights the higher-level Google Apps Script developer platform.

We look forward to seeing what you build with Google Cloud!

Alfred Camera: Smart camera features using MediaPipe

Guest post by the Engineering team at Alfred Camera

Please note that the information, uses, and applications expressed in the below post are solely those of our guest author, Alfred Camera.

In this article, we’d like to give you a short overview of Alfred Camera and our experience of using MediaPipe to transform our moving object feature, and how MediaPipe has helped to get things easier to achieve our goals.

What is Alfred Camera?

AlfredCamera logo

Fig.1 Alfred Camera Logo

Alfred Camera is a smart home app for both Android and iOS devices, with over 15 million downloads worldwide. By downloading the app, users are able to turn their spare phones into security cameras and monitors directly, which allows them to watch their homes, shops, pets anytime. The mission of Alfred Camera is to provide affordable home security so that everyone can find peace of mind in this busy world.

The Alfred Camera team is composed of professionals in various fields, including an engineering team with several machine learning and computer vision experts. Our aim is to integrate AI technology into devices that are accessible to everyone.

Machine Learning in Alfred Camera

Alfred Camera currently has a feature called Moving Object Detection, which continuously uses the device’s camera to monitor a target scene. Once it identifies a moving object in the area, the app will begin recording the video and send notifications to the device owner. The machine learning models for detection are hand-crafted and trained by our team using TensorFlow, and run on TensorFlow Lite with good performance even on mid-tier devices. This is important because the app is leveraging old phones and we'd like the feature to reach as many users as possible.

The Challenges

We had started building our AI features at Alfred Camera since 2017. In order to have a solid foundation to support our AI feature requirements for the coming years, we decided to rebuild our real-time video analysis pipeline. At the beginning of the project, the goals were to create a new pipeline which should be 1) modular enough so we could swap core algorithms easily with minimal changes in other parts of the pipeline, 2) having GPU acceleration designed in place, 3) cross-platform as much as possible so there’s no need to create/maintain separate implementations for different platforms. Based on the goals, we had surveyed several open source projects that had the potential but we ended up using none of them as they either fell short on the features or were not providing the readiness/stabilities that we were looking for.

We started a small team to prototype on those goals first for the Android platform. What came later were some tough challenges way above what we originally anticipated. We ran into several major design changes as some key design basics were overlooked. We needed to implement some utilities to do things that sounded trivial but required significant effort to make it right and fast. Dealing with asynchronous processing also led us into a bunch of timing issues, which took the team quite some effort to address. Not to mention debugging on real devices was extremely inefficient and painful.

Things didn't just stop here. Our product is also on iOS and we had to tackle these challenges once again. Moreover, discrepancies in the behavior between the platform-specific implementations introduced additional issues that we needed to resolve.

Even though we finally managed to get the implementations to the confidence level we wanted, that was not a very pleasant experience and we have never stopped thinking if there is a better option.

MediaPipe - A Game Changer

Google open sourced MediaPipe project in June 2019 and it immediately caught our attention. We were surprised by how it is perfectly aligned with the previous goals we set, and has functionalities that could not have been developed with the amount of engineering resources we had as a small company.

We immediately decided to start an evaluation project by building a new product feature directly using MediaPipe to see if it could live up to all the promises.

Migrating to MediaPipe

To start the evaluation, we decided to migrate our existing moving object feature to see what exactly MediaPipe can do.

Our current Moving Object Detection pipeline consists of the following main components:

  • (Moving) Object Detection Model
    As explained earlier, a TensorFlow Lite model trained by our team, tailored to run on mid-tier devices.
  • Low-light Detection and Low-light Filter
    Calculate the average luminance of the scene, and based on the result conditionally process the incoming frames to intensify the brightness of the pixels to let our users see things in the dark. We are also controlling whether we should run the detection or not as the moving object detection model does not work properly when the frame has been processed by the filter.
  • Motion Detection
    Sending frames through Moving Object Detection still consumes a significant amount of power even with a small model like the one we created. Running inferences continuously does not seem to be a good idea as most of the time there may not be any moving object in front of the camera. We decided to implement a gating mechanism where the frames are only being sent to the Moving Object Detection model based on the movements detected from the scene. The detection is done mainly by calculating the differences between two frames with some additional tricks that take the movements detected in a few frames before into consideration.
  • Area of Interest
    This is a mechanism to let users manually mask out the area where they do not want the camera to see. It can also be done automatically based on regional luminance that can be generated by the aforementioned low-light detection component.

Our current implementation has taken GPU into consideration as much as we can. A series of shaders are created to perform the tasks above and the pipeline is designed to avoid moving pixels between CPU/GPU frequently to eliminate the potential performance hits.

The pipeline involves multiple ML models that are conditionally executed, mixed CPU/GPU processing, etc. All the challenges here make it a perfect showcase for how MediaPipe could help develop a complicated pipeline.

Playing with MediaPipe

MediaPipe provides a lot of code samples for any developer to bootstrap with. We took the Object Detection on Android sample that comes with the project to start with because of the similarity with the back-end part of our pipeline. It did take us sometimes to fully understand the design concepts of MediaPipe and all the tools associated. But with the complete documentation and the great responsiveness from the MediaPipe team, we got up to speed soon to do most of the things we wanted.

That being said, there were a few challenges we needed to overcome on the road to full migration. Our original pipeline of Moving Object Detection takes the input frame asynchronously, but MediaPipe has timestamp bound limitations such that we cannot just show the result in an allochronic way. Meanwhile, we need to gather data through JNI in a specific data format. We came up with a workaround that conquered all the issues under the circumstances, which will be mentioned later.

After wrapping our models and the processing logics into calculators and wired them up, we have successfully transformed our existing implementation and created our first MediaPipe Moving Object Detection pipeline like the figure below, running on Android devices:

Fig.2 Moving Object Detection Graph

Fig.2 Moving Object Detection Graph

We do not block the video frame in the main calculation loop, and set the detection result as an input stream to show the annotation on the screen. The whole graph is designed as a multi-functioned process, the left chunk is the debug annotation and video frame output module, and the rest of the calculation occurs in the rest of the graph, e.g., low light detection, motion triggered detection, cropping of the area of interest and the detection process. In this way, the graph process will naturally separate into real-time display and asynchronous calculation.

As a result, we are able to complete a full processing for detection in under 40ms on a device with Snapdragon 660 chipset. MediaPipe’s tight integration with TensorFlow Lite provides us the flexibility to get even more performance gain by leveraging whatever acceleration techniques available (GPU or DSP) on the device.

The following figure shows the current implementation working in action:

Fig.3 Moving Object Detection running in Alfred Camera

Fig.3 Moving Object Detection running in Alfred Camera

After getting things to run on Android, Desktop GPU (OpenGL-ES) emulation was our next target to evaluate. We are already using OpenGL-ES shaders for some computer vision operations in our pipeline. Having the capability to develop the algorithm on desktop, seeing it work in action before deployment onto mobile platforms is a huge benefit to us. The feature was not ready at the time when the project was first released, but MediaPipe team had soon added Desktop GPU emulation support for Linux in follow-up releases to make this possible. We have used the capability to detect and fix some issues in the graphs we created even before we put things on the mobile devices. Although it currently only works on Linux, it is still a big leap forward for us.

Testing the algorithms and making sure they behave as expected is also a challenge for a camera application. MediaPipe helps us simplify this by using pre-recorded MP4 files as input so we could verify the behavior simply by replaying the files. There is also built-in profiling support that makes it easy for us to locate potential performance bottlenecks.

MediaPipe - Exactly What We Were Looking For

The result of the evaluation and the feedback from our engineering team were very positive and promising:

  1. We are able to design/verify the algorithm and complete core implementations directly on the desktop emulation environment, and then migrate to the target platforms with minimum efforts. As a result, complexities of debugging on real devices are greatly reduced.
  2. MediaPipe’s modular design of graphs/calculators enables us to better split up the development into different engineers/teams, try out new pipeline design easily by rewiring the graph, and test the building blocks independently to ensure quality before we put things together.
  3. MediaPipe’s cross-platform design maximizes the reusability and minimizes fragmentation of the implementations we created. Not only are the efforts required to support a new platform greatly reduced, but we are also less worried about the behavior discrepancies on different platforms due to different interpretations of the spec from platform engineers.
  4. Built-in graphics utilities and profiling support saved us a lot of time creating those common facilities and making them right, and we could be more focused on the key designs.
  5. Tight integration with TensorFlow Lite really saves lots of effort for a company like us that heavily depends on TensorFlow, and it still gives us the flexibility to easily interface with other solutions.

With just a few weeks working with MediaPipe, it has shown strong capabilities to fundamentally transform how we develop our products. Without MediaPipe we could have spent months creating the same features without the same level of performance.

Summary

Alfred Camera is designed to bring home security with AI to everyone, and MediaPipe has significantly made achieving that goal easier for our team. From Moving Object Detection to future AI-powered features, we are focusing on transforming a basic security camera use case into a smart housekeeper that can help provide even more context that our users care about. With the support of MediaPipe, we have been able to accelerate our development process and bring the features to the market at an unprecedented speed. Our team is really excited about how MediaPipe could help us progress and discover new possibilities, and is looking forward to the enhancements that are yet to come to the project.

Join us for the digital Google for Games Developer Summit

Posted by the Google for Games TeamGDC banner

Last month, Game Developers Conference (GDC) organizers made the difficult decision to postpone the conference. We understand this decision, as we have to prioritize the health and safety of our community. GDC is one of our most anticipated times of the year to connect with the gaming industry. Though we won’t be bringing the news in-person this year, we’re hosting the Google for Games Developer Summit, a free, digital-only experience where developers can watch the announcements and session content that was planned for GDC.

Google for Games Developer Summit

The Developer Summit kicks off on March 23rd at 9:00AM PT with our broadcasted keynote. Immediately following, we’ll be releasing a full lineup of developer sessions with over 10 hours of content to help take your games to the next level.

Here are some types of sessions to expect:

  • Success stories from industry leaders on how they’ve conquered game testing, built backend infrastructure, and launched great games across all platforms.
  • New announcements like Android development and profiling tools that can help deploy large APKs to devices faster, fine tune graphic performance, and analyze device memory more effectively.
  • Updates on products like Game Servers (currently in alpha)—a fully managed offering of Agones, letting developers easily deploy and manage containerized game servers around the globe.

Sign up to stay informed at g.co/gamedevsummit.

Support for the game developer community

We recognize every developer is impacted differently by this situation. We’re coordinating with the GDC Relief Fund to sponsor and assist developers who’ve invested in this moment to further grow their games.

We also understand many developers were looking forward to sharing their content with peers. To help with this, developers can use YouTube to stream events from small to large using tools like Live Streaming and Premieres.

We can’t wait to share what we have in store for gaming. Discover the solutions our teams have been building to support the success of this community for years to come.

Google Cloud for Student Developers: G Suite APIs (intro & overview)

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

Students graduating from STEM majors at universities with development experience using industry APIs (application programming interfaces) have real-world practice that can prove valuable in terms of career readiness.

To that end, the Google Cloud team is creating a "Google Cloud for Student Developers" YouTube video series crafted specifically for the student developer audience.

While viewable by developers with any experience with Google Cloud, this series focuses on developing skills that will help student developers in their future careers. Google Cloud includes a pair of well-known product groups, Google Cloud Platform (GCP) as well as G Suite. While most equate GCP for developers and G Suite for users, many don't know that behind each G Suite application like Gmail, Google Drive, Calendar, Docs, Sheets, and Slides, are developer APIs.

The Google Cloud higher education team is happy to announce the first of a 5-episode mini-series to kickoff the video collection that shows student developers how they can code G Suite, starting with this first one introducing the G Suite developer landscape. Viewers will hear about the HTTP-based RESTful APIs as well as Google Apps Script, a serverless higher-level development environment that allows for automation, extension of G Suite app functionality, as well as integration of your apps with Gmail, Drive, Calendar, Docs, Sheets, Slides, and many more G Suite, Google, and even external services.

Succeeding episodes dig deeper into the RESTful APIs as well as Apps Script, with the final pair of videos showing students full-fledged apps they can build with G Suite developer tools. To learn more about integrating with G Suite, see its top-level documentation site and overview page as well as the set of all G Suite developer videos. Also stay tuned for new episodes in the series that focus on GCP developer tools. We look forward to seeing what you can build with G Suite, but also with GCP as well… or both at the same time!

Celebrating International Women’s Day with 20 tech trailblazers

Posted by Google Developer Studio

Today is International Women’s Day and we’re kicking off the celebration with a profile series featuring 20 tech trailblazers who have made significant contributions to the developer community. Many of the women we spoke to work directly with some of our educational outreach and inclusivity programs like Google Developer Groups and Women Techmakers, while others are Google Developers Experts or Googlers who do amazing work around the globe. One thing they all have in common is a dedication to making the developer community more approachable and inclusive for generations of women to come.

Read the interviews below to learn more about these amazing individuals whose passion and drive contribute to a better workplace and world.

We’re proud to celebrate #IWD2020 with them.

Garima Jain

Bengaluru, Karnataka, India 🇮🇳

Android GDE
Photo of Garima Jain

Photo of Garima Jain

Tell us about something you’re working on?

I am currently working on learning OpenGL for my next task on Over’s Android application, i.e. porting image filters to use OpenGL. Last time, when I implemented filters, I used RenderScript with Lookup Tables (LUTs), which was an educational journey in itself. The team recently migrated to use OpenGL for some other features on the application and I am excited to learn and apply it to port image filters. This could then be extended and will act as a building block for video filters in the future. Personally, I am exploring Kotlin Multiplatform (KMP) as I believe multi-platform is the future and looks quite promising for it.

What is one tip you would give your fellow women developers or developers in general?

My suggestion to fellow developers is to believe in yourself and focus on positive things. The world is full of both enablers and disablers, do what is best for you :)

Do you have any special interests, hobbies, or other fun facts you’d like to share?

I love watching TV shows, dancing, and playing basketball. Recently, I have a new hobby of creating and sharing videos on TikTok :P


Moyinoluwa Adeyemi

Lagos, Nigeria 🇳🇬

Android GDE, Women Techmakers Ambassador, GDG Lagos
Photo of Moyinoluwa Adeyemi

Photo of Moyinoluwa Adeyemi

Tell us about something you’re working on?

I’m currently preparing to give two talks. The first one will introduce two programming concepts to beginner Android developers. I’ll also teach them how to build a portfolio which will come in handy when they are job hunting. The other is a Keynote Address for a developer festival focusing on my journey to becoming a GDE.

What is one tip you would give your fellow women developers or developers in general?

Keep learning. That’s probably the only task that’ll remain constant throughout the span of one’s career.

Do you have any special interests, hobbies, or other fun facts you’d like to share?

Ich lerne Deutsch and I run marathons for fun.


Amanda (Chibi) Cavallaro

London, United Kingdom 🇬🇧

Assistant GDE, Women Techmakers Ambassador, GDG London

Photo of Amanda (Chibi) Cavallaro

Tell us about something you’re working on?

I’ve been currently working on presentations about Actions on Google, Firebase and web technologies to give presentations and share the knowledge.

What is one tip you would give your fellow women developers or developers in general?

If you’re a beginner in tech, one thing I wish I knew before is how to study, model and understand the problem and then try to code it - ask ‘why?’ and ‘what if?’. To practice as much as I could. Not just read books and other resources but to challenge myself into practising more.

Do you have any special interests, hobbies, or other fun facts you’d like to share?

I’m an aikidoka and practicing martial arts helps me both physically and mentally. I’ve also created an action about aikido you can check it out here.


Eliza Camberogiannis

Utrecht, Netherlands 🇳🇱

Assistant GDE, Women Techmakers Ambassador, GDG Netherlands
Photo of Eliza Camber

Photo of Eliza Camber

Tell us about something you’re working on?

As I work for a creative tech agency, most of the apps and tools we develop are under NDA, so, unfortunately, I can't share something specific. I am lucky enough to work somewhere I have the chance to play with all the different Android and AoG SDKs, and not only! From pilots to doctors and from athletes to anyone that takes a bus, seeing something you've built making someone's life easier or better is priceless.

What is one tip you would give your fellow women developers or developers in general?

To ask themselves every day: if not you, then who? Sometimes we assume that someone that "knows better" will reply to that Stackoverflow question; that someone else can give that talk because "I don't have something interesting to say"; or that someone else will raise their voice about the lack of inclusion in the tech world because "what do I know about this"? And at the end, we end up with dozens of unanswered questions, or only a handful of people talking about diversity, because everyone made the same assumption.

Do you have any special interests, hobbies, or other fun facts you’d like to share?

I'm a person with 100 hobbies! I get easily bored so I try to learn and do as many things as possible. One day I'll be learning how to knit, the next how to box, the other one how to decorate cakes and it goes on and on. The only two hobbies that I have since I can remember myself are books and puzzles.


Evelyn Mendes

Rio Grande do Sul, Brazil 🇧🇷

Firebase GDE, Women Techmakers Ambassador
Photo of Evelyn Mendes

Photo of Evelyn Mendes

Tell us about something you’re working on?

Today I am a mobile architecture consultant and software engineer, helping my team improve the software we develop, both in the back-end and front-end and, of course, implementing Firebase in mobile applications.

What is one tip you would give your fellow women developers or developers in general?

For women, never give up. I know, sometimes it's hard to wake up every day and fight something that never seems to end, facing people who never appear to learn that we just want a place to work like anyone else without worrying about harassment, sexism, prejudice or other kinds of discrimination. Together we will end these places and create more and better places, not just for women, but for all people, because I believe this is equity, this is the future, and we just want to be respected, happy and welcome where we work.

Always remember, we are together, we fight together, we win together! <3

Do you have any special interests, hobbies, or other fun facts you’d like to share?

I always pay attention to what happens in the IT world when it comes to Trans issues and about how companies and people are dealing with it. I work a lot for inclusion and diversity. After all, for me, it's not just values and attitudes. They are part of my life, my struggle, and represent who I am.

I love to find new ways, new technologies, to teach people the things I know, and even express myself better to make the learning experience more pleasurable.

I don't know if I have a fun fact. I consider myself so boring. I spend most of my time in front of the computer or watching series, or, of course, defending my girlfriends on the internet =D



Niamh Power

Wrexham, United Kingdom 🇬🇧

Firebase GDE
Photo of Niamh Power

Photo of Niamh Power

Tell us about something you’re working on?

I currently work at the bank, Monzo, in the UK. Mainly on iOS, but occasionally on Android tasks that pop up too. I’m in the borrowing team, so I work on the flows for applying for a loan, managing it, and making the experience as delightful as possible. We’re also working on some new tools to help our users understand their credit scores, which is really exciting.

What is one tip you would give your fellow women developers or developers in general?

I think a tip that I would give would be to never be afraid to be wrong and to ask questions. I spent a lot of time in my first few years worrying about what others would think, which only slowed down my own development. Another one would be to get involved in the community side of things - pursuing the GDE program. Speaking and participating in events helped my networking massively and it’s really boosted my career progression.

Do you have any special interests, hobbies, or other fun facts you’d like to share?

I work remotely, living in North Wales, so I get to go on hikes and mountain bike rides straight after work or even at lunchtime. Working in an industry which offers such flexibility is fantastic and not having to commute is such a game changer! I’ve also just returned from a month long skiing holiday in the alps, and hoping to go back again for three weeks in the summer for some mountain biking!


Joannie Huang

Taipei City, Taiwan 🇹🇼

#Flutterista
Photo of Joannie Huang

Photo of Joannie Huang

Tell us a bit about something you’re working on?

I’m now mainly working on the EdTech, teaching kids coding like Scratch and Python basics. I enjoy cultivating a new generation with tech ability through my computer science background. I've also run the Flutter Taipei with some passionate female developers since 2018 and just officially established the local branch in 2020 in order to encourage people to start using/learning Flutter!

What is one tip you would give Flutter developers?

Flutter has a strong and friendly community around the world. I would recommend searching meetup.com to see if there are any local workshops in your city. And just walk in to meet people! People always tell us that following the examples on the flutter.io is a good way to start.

Do you have any special interests, hobbies, or other fun facts you’d like to share?

I love walking in the alleys in Taipei and seeing the combination of old and modern. You might discover unique coffee or noodles from a generational street vendor. You won’t get bored while living in Taipei, a small but energetic city.


Nilay Yener

Sunnyvale, United States 🇺🇸

#Flutterista, Program Manager

Photo of Nilay Yener

Tell us a bit about something you’re working on?

I work for the Flutter Developer Relations team as a Program Manager, specifically working on community programs. Community is an important part of Flutter. The goal of our community programs is to build, support, and foster the communities around Flutter and make the Flutter developers successful. Some of the programs I work on are, Flutter Google Developer Experts (GDEs) and Flutter meetups.

What is one tip you would give Flutter developers?

I encourage Flutter developers to contribute to Flutter. This has many benefits like improving the technology you work with, as well as improving your existing skills, meeting other people and giving back to the community. Flutter is an open source project and there are many ways to contribute. Flutter has a great team that welcomes everyone to join the project. You are very welcome to contribute to Flutter's code via pull requests, filing issues on Github, adding to documentation, or contributing to packages and plugins. You can help other people by asking questions in the chat channels. You can join Flutter's community programs, be a GDE, and give talks or run a Flutter meetup in your city to help other developers locally.

Do you have any special interests, hobbies, or other fun facts you’d like to share?

Before joining Google, I was one of the Google Developer Groups organizers and ran a Google meetup as a "hobby". Years later, I joined Google and now Google pays me for what I did as a hobby.


Shoko Sato

Tokyo, Japan 🇯🇵

GDG Tokyo Lead, Women Techmakers Ambassador
Photo of Shoko Sato

Photo of Shoko Sato

Tell us about something you’re working on?

Hi! My name is Shoko, I'm one of three organizers of GDG Tokyo and I host various types of meetups, hands-on workshops, codelabs, and tech conferences. I was also involved in the management of Women DevFest Tokyo which focused more on the career of women engineers. I like promoting activities that support women in different industries related to IT as an engineer. I feel that our tech conferences and others need to be gender-balanced. To achieve this, I have been working to arrange a daycare center at the venues, share information on events to ensure psychological safety before the event, increase the number of women involved, and focus on creating easy access to the event.

I believe an event that women can easily participate in can be one, where anyone, regardless of being a man and a woman, is welcomed. Therefore, I am taking the initiative to create a community where people can easily join.

In my private time, I spend a lot of time planning and going to activities for GDG Tokyo. Professionally speaking, I actually work in Developer Relations at an IT company in Tokyo to support engineers; including technical public relations and tech conference management. I would like to support both the minority and majority, regardless of gender, age, nationality, corporate history, and all types of attributes and layers, working to create a place where each one of engineers can shine.

What is one tip you would give your fellow women developers or developers in general?

You don't need to compare gender, age, nationality, company history, career, and so on to others.

"I'm sure you’re doing great! You should have confidence and believe in yourself."

If there are 100 people, there are 100 ways of living. It may be important to look for a role model thinking, "I want to be like that person in the future." You don't have to think you are inferior, compared to others. What really matters to you? It’s that “you have confidence and you believe in yourself.”

I would say you should work on what you like with confidence. And have a diverse group of friends. If you have any concerns, your friends will help you.

Do you have any special interests, hobbies, or other fun facts you’d like to share?

I spend a lot of my time and work planning activities related to "engineers’ empowerment." The purpose of those activities is different but the basic idea is the same. I have experienced many kinds of jobs and setbacks before. They often told me in the past that life would be difficult because I’m a woman, so I constantly wished I was born as a man. It was an unpleasant experience and I do not want the next generation to experience that.

A lot of people see things in their culture following their experiences, so I think it's inevitable that there is an unconscious bias. This is why I would like to change that bias. I am keen to create organizations and communities where a wide variety of engineers can spend time together. I will continue to work in such a manner so that my work and my personal life can be linked to different activities, leaving eventually a positive impact on the entire IT industry.



Neem Serra

Missouri, United States 🇺🇸

Women Techmakers Ambassador, GDG St. Louis Lead

Photo of Neem Serra

Tell us about something you’re working on?

I just finished working on a chapter for the Swift For Good book! All revenue from the book goes to Black Girls Code. I wrote my chapter on extensions in Swift, and examples of how a mommy class would interact with a baby class. I plan on writing more things in the future that use real-world examples to make complicated technical topics more understandable.

What is one tip you would give your fellow women developers or developers in general?

Find a safe group of friends that will act as your board of advisors and help you grow towards your best self. Some days, it feels like there can only be one person that can succeed, but it's not true! Every time you feel the urge to tear someone down, try to instead find someone to help out instead.

Do you have any special interests, hobbies, or other fun facts you’d like to share?

I thought that I would have to take a step back after having my baby, but I've learned that I've become laser focused on doing what I want to do. I was able to write a new technical talk with a mommy class learning how to handle a baby class and I even brought my baby on stage while giving the talk at a conference.


Lynn Langit

Minneapolis, United States 🇺🇸

Google Cloud GDE
Photo of Lynn Langit

Photo of Lynn Langit

Tell us about something you’re working on?

I have been contracting with bioinformatics research groups, providing guidance and artifacts as they adopt public cloud for analysis.

Projects included reviewing, creating and delivering cloud pipelines and training materials. Clients include The Broad Institute, CSIRO Bioinformatics and Imperial College of London. As part of this work, I created an open source course on GitHub `GCP-for-Bioinformatics'.

What is one tip you would give your fellow women developers or developers in general?

Build and iterate often. Get feedback from actual customers. I also say this as `MVP-often`. For my team, this has meant building minimum viable genomics pipelines. I wrote about one example of this, using the `blastn` analysis tool, on Medium.

Do you have any special interests, hobbies, or other fun facts you’d like to share?

I learned Calculus at age 51 from Khan Academy and 3Blue1Brown (Grant Sanderson). I love math.


Daniela Petruzalek

London, United Kingdom 🇬🇧

Google Cloud GDE
Photo of Daniela Petruzalek

Photo of Daniela Petruzalek

Tell us about something you’re working on?

I’m currently working on a follow up project to my Pac Man from Scratch tutorial. I’ve built this tutorial to teach the Go programming language using game development as a background. Now the next phase will be to make a second game that will be used to teach about cloud technologies and streaming using WebRTC.

What is one tip you would give your fellow women developers or developers in general?

Make a list of the things you hate and study those, and try to understand them to the best of your capabilities. The things that we love are usually easy to learn, but the things that we hate are our weaknesses. You don’t need to become an expert in any of them, but by just understanding you will be able to overcome your weaknesses and maybe even start to love them, at which point they become less of your weaknesses and start compounding to become another part of your strengths.

Do you have any special interests, hobbies, or other fun facts you’d like to share?

I really love video games, and they are the main reason I’ve started my career in IT. I never became a game developer, but I really like how games challenge you to solve cool problems while also allowing your creativity to run free. Nowadays I’m slowly starting to introduce game development as one of my hobbies and I still dream of someday publishing my own indie game. When not working on game development, I’m really into playing classic games from the 8 and 16-bit era.


Katerina Skroumpelou

Athens, Greece 🇬🇷

Google Maps Platform GDE
Photo of Katerina Skroumpelou

Photo of Katerina Skroumpelou

Tell us about something you’re working on?

Right now, I'm working on an enterprise application using Angular and the Google Cloud. I usually have a side project running, and at the moment my side projects include experimenting with features of the Google Maps Platform!

What is one tip you would give your fellow women developers or developers in general?

I don't know if that feeling exists because I am a woman, or if everyone feels the same, but here it goes: I have most usually worked in teams where there are no other women developers. So I have always felt like I have to push myself and constantly work harder to prove I am worthy of that position "despite being me/despite being a woman". Well, don't do that. Work hard and push your limits if you want to and if it makes you happy. But do it for yourself, if you want to. Don't do it for others. Nobody is in any position to judge you or measure you or question your worthy-ness.

Do you have any special interests, hobbies, or other fun facts you’d like to share?

I love walking and hiking. It clears my mind, and it's one of the few places I really feel "at home". I also like to pole dance, and I have a quest to visit as much of the world as I possibly can. I have an actual paper map, and I pin actual metallic pins on it with all the places I've visited! Fun fact, though, I've lived in the same neighbourhood for all my life, with cats all around me.


Kristina Simakova

Oslo, Norway 🇳🇴

Google Maps Platform GDE

Photo of Kristina Simakova

Tell us about something you’re working on?

I have recently started working on a side-project: wall decoration AR app. When I moved to a new place, I was struggling with trying to imagine how and where I should place wall decorations, so I hope to solve it with AR.

What is one tip you would give your fellow women developers or developers in general?

Be an expert in your field but keep an eye on other technologies. Challenge yourself, experiment and keep learning. Are you an Android developer? Do Flutter Codelabs, learn about actions for Google Assistant.

Do you have any special interests, hobbies, or other fun facts you’d like to share?

Fun facts:

I have been on a research expedition for 7 days on an icebreaker ship somewhere between Greenland and Svalbard studying ice :)

I made the “Around the World” trip alone.

Hobbies: travel, reading stories about startups, trying to cook Asian cuisine, making cakes when I cannot solve a problem in my code.



Moonlit Beshimov

Mountain View, United States 🇺🇸

Partner Development Manager, Google Play Games, Google
Photo of Moonlit Beshimov

Photo of Moonlit Beshimov

Tell us about something you’re working on?

I am a Business Development Manager on Google Play's Games business development team. My baby brother thinks that this means that I can play mobile games all day long, which is half true. :) I partner with the best-in-class mobile game developers to help them grow their businesses on Google Play, working together on new games' go-to-market strategies as well as evolving their business models and monetization designs. Representing the world's largest mobile gaming platforms, I often share market and industry level insights that help all developers grow. At the same time, representing the complex ecosystem of mobile game developers, I work with Google Play's product teams to ensure developers' feedback, pain points and needs are addressed by us!

In the past two years, I've been leading a global initiative to boost growth and adoption of a recent monetization innovation in the mobile gaming industry: in-game subscriptions. I partnered with the early innovators to teach other developers, and also consulted developers on how to incorporate the new model into their existing design. Rising tide raises all boats. I love my job because even though the mobile gaming industry is competitive, there are tons of opportunities to learn from each other, build on each other's ideas, innovate and grow together. As leaders of the industry, we also discuss difficult questions such as digital well-being in the context of mobile gaming. More to come on this, let me know if you have ideas!

What is one tip you would give your fellow women developers or developers in general?

Your most valuable asset is your unique perspectives and crazy ideas. Women developers are still the minority in the workforce, but women consumers are a major business opportunity. Your ideas and points of view, especially the ones that no one else seems to have thought of, are the ones that will make the biggest difference. So confidently offer your most unique perspectives and craziest ideas, speak up. Be brave, not perfect!

Do you have any special interests, hobbies, or other fun facts you’d like to share?

I love challenging myself with hobbies that I'm not naturally good at, such as public speaking and athletics. I've been doing Toastmasters to overcome my fear of public speaking. I shared this journey in my recent TEDx talk. I was also that chubby kid growing up, so I signed up for Tough Mudder, Spartan races with my friends and colleagues (peer pressure is the best motivator to work out regularly!) and picked up rock climbing. However, mostly recently, my new found love is my three-months old daughter! Motherhood is probably the most challenging activity I've ever done. Hats off to all the working moms out there!



Vesna Doknic

London, United Kingdom 🇬🇧

Strategic Partner Manager, Google Play - London, Google
Photo of Vesna Doknic

Photo of Vesna Doknic

Tell us about something you’re working on?

I am currently working as a Strategic Partner Manager on Google Play, helping developers from all over Europe be more successful on Android. I have been in the mobile space for most of my career, working in Mobile Product Management before joining Google.

What is one tip you would give your fellow women Product Managers or Product Managers in general?

Product management work is extremely cross-functional, and it pays to remember that relationships are everything. Making sure all the pieces fit together calls for master planning and lots of trust, so make sure you invest and nurture your key working relationships.

Do you have any special interests, hobbies, or other fun facts you’d like to share?

My other great passions in life are food (I run a culinary blog and have a robust appetite), cinema and its history (Mark Kermode = god), music and festivals (but sadly not the muddy kind), and corgis (especially my own - Taxi. He is a good boy.)


Alexandrina Garcia-Verdin

Sunnyvale, United States 🇺🇸

G Suite Developer Advocate, Google
Photo of Alexandrina Garcia-Verdin

Photo of Alexandrina Garcia-Verdin

Tell us about something you’re working on?

I am interested in making the word "developer" be more inclusive of citizen developers and creating samples, tutorials, videos, and hopefully a podcast for that audience. These are folks like myself, who do not come from traditional computer science backgrounds but love learning about how to build apps as a hobby or learn from tinkering with projects at work. You see, a "developer" is someone who builds apps or automations on a computer, sometimes it's with code and sometimes it's with programs that abstract code, but people have a strong association with the word as only meaning "coder" exclusively. What that does is it creates limiting beliefs about what content to explore because they see articles with the title "developer" included and think "oh that's not for me", omitting content that is indeed for them. I am actively interested in changing the conversation to make the "developer world" a more inclusive place where anyone who builds SQL queries, dashboards, workflows, or code -- all understand they are developers aka "builders" on computers. I believe this would also make content accessible to more diverse audiences. Google has created so many amazing products, and with user experience always in mind, I think it's important for everyone to feel comfortable reading what's out there before making a decision on whether it's for them, because I have personally found myself building all types of things because of the sheer ease of use of the products, and this is thanks to opening myself up to learning from all developer content.

What is one tip you would give your fellow women developers or developers in general?

My peer Jennifer Thomas upon returning from her first coding bootcamp said it best. She learned there is no "one way" of doing things, and that "every person builds things in their specific area of expertise." I think this is a powerful reminder that "I am enough" whenever we are haunted by imposter syndrome. I strongly believe that conversations like these, where we expose limiting beliefs and create safe spaces for vulnerable and empowering exchanges, are the biggest accelerators to making developer communities more diverse. When people feel like they can be themselves in their own happy capacity as a builder (without expectations imposed), we will rapidly help each other to thrive.

So please keep talking and sharing about your learnings, it helps support everyone on their journey.

Do you have any special interests, hobbies, or other fun facts you’d like to share?

I am extremely passionate about everything I can learn on regenerative ecological design, which is a framework for living in a harmonious way with our planet by optimizing my habits (inputs and outputs). My top three subjects at hand are being plastic free (zero waste), growing food via permaculture methods, and building cob homes (earthquake and fire proof earthen homes). As such l took a week long course to learn how to build a home out of cob (a monolithic structure made of clay, sand, and straw) at Quail Springs (a nonprofit in Santa Barbara). I am in love with how accessible it makes home building, and am working on making that content available on YouTube for my teachers Sasha and Johno. I am also volunteering to modernize a nonprofit's website that has written building codes for cob structures called CobCode.org. Their work is amazing, and I wish to support the movement in whatever way I can so more people can legally build healthy and affordable homes.

Follow updates and content by AGV on Twitter at @TechAndEco



Anu Srivastava

New York City, United States 🇺🇸

G Suite Developer Advocate, Google
Photo of Anu Srivastava

Photo of Anu Srivastava

Tell us about something you’re working on?

G Suite Solutions Gallery

I created a gallery for both Googlers and external developers to showcase how developing with G Suite solves real business problems. Our goal is to inspire new developers to create meaningful integrations to boost productivity and collaboration like team time management solutions and event planning, etc.

What is one tip you would give your fellow women developers or developers in general?

Find a mentor and create a strong network of developers in your community.

Do you have any special interests, hobbies, or other fun facts you’d like to share?

I used to be a dancer in a group that recreated pop music videos in local performances around the SF Bay Area.



Margaret Maynard-Reid

Seattle, United States 🇺🇸

Machine Learning GDE, Women Techmakers Ambassador, GDG Seattle
Photo of Margaret Maynard-Reid

Photo of Margaret Maynard-Reid

Tell us about something you’re working on?

I recently curated an awesome-list of TensorFlow Lite models, samples and tutorials on GitHub. This is a project that could be very impactful for the TensorFlow community by helping those who want to implement their models on mobile and edge devices. I’m working on engaging the community to further expand the list. ML practitioners, engineers and researchers can contribute.

What is one tip you would give your fellow women developers or developers in general?

Stay curious and keep learning. My emphasis on continuous learning opens doors for me. It has helped provide the greatest opportunities to solve interesting problems with cutting edge tech.

Do you have any special interests, hobbies, or other fun facts you’d like to share?

Outside of work I write blog posts, speak at conferences, and lead tech communities. I’ve always wanted to study art - I recently started drawing and I absolutely love it! I’m excited about applying AI/ML to art and design.



Lesly Zerna

Cochabamba, Bolivia 🇧🇴

Machine Learning GDE
Photo of Lesly Zerna

Photo of Lesly Zerna

Tell us about something you’re working on?

I am working on a project to get started with teaching machines to play and compose!

I was inspired by this book: "Generative Deep Learning" by David Foster.

I have loved music since I was a child! And since the first time I learned about Google Magenta, I wanted to learn more about teaching machines about music and art in general.

This is a great opportunity to get started with something a bit different from what I have done before, but one that helps me to combine my passion for technology and music.

What is one tip you would give your fellow women developers or developers in general?

Give it a try!

I think when you are new to something it is normal to be nervous or scared, but everyone should take that first step! It is not easy but it is rewarding. Either you learn or win!

Don't be afraid to try something with tech, just baby steps and you'll have fun!

Do you have any special interests, hobbies, or other fun facts you’d like to share?

Oh I love music, learning about tech and traveling to meet new cultures, people and landscapes. I love outdoor activities as well as staying home or being at a coffee place studying. Also, sharing knowledge and helping other people to find new perspectives to see the world.







_____________________________






Interested in becoming a part of the Google developer community? Here’s more information on the programs we’ve shared above:

GDG logo

The Google Developer Groups program gives developers the opportunity to meet local developers with similar interests in technology. A GDG meetup event includes talks on a wide range of technical topics where you can learn new skills through hands-on workshops. The community prides itself on being an inclusive environment where everyone and anyone interested in tech - from beginner developers to experienced professionals - all are welcome to join.

Join a Google Developer Group chapter near you here.

Apply to become a Google Developer Group organizer here.

Follow Google Developer Groups on Twitter here.

Subscribe to the Google Developer Groups YouTube channel here.

Women Techmakers logo

Founded in 2014, Google’s Women Techmakers is dedicated to helping all women thrive in tech through community, visibility and resources. With a member base of over 100,000 women developers, we’re working with communities across the globe to build a world where all women can thrive in tech. Our community consists of over 740 Women Techmakers Ambassadors across over 100 countries. These ambassadors are the north star of our movement. They are leaders committed to their communities, using Women Techmaker resources to build space and visibility so that all women could thrive in tech.

Become a Women Techmakers Member here.

Follow Women Techmakers on Twitter here.

GDE logo

The Google Developers Experts program is a global network of highly experienced technology experts, influencers and thought leaders who actively support developers, companies and tech communities by speaking at events, publishing content, and building innovative apps. Experts actively contribute to and support the developer and startup ecosystems around the world, helping them build and launch highly innovative apps. More than 800 Experts represent 18+ Google technologies around the world!

Learn more about the Google Developers Experts program and its eligibility criteria here.

Follow Google Developers Experts on Twitter here and LinkedIn here.

Evolving automations into applications using Apps Script

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

Editor’s Note: Guest authors Diego Moreno and Sophia Deng (@sophdeng) are from Gigster, a firm that builds dynamic teams made of top global talent who create industry-changing custom software.

Prelude: Data input & management … three general choices

Google Cloud provides multiple services for gathering and managing data. Google Forms paired with Google Sheets are quite popular as they require no engineering resources while being incredibly powerful, providing storage of up to 5 million rows of data and built-in analytics for small team projects.

At the other end of the spectrum, to support a high volume of users or data, Google Cloud provides advanced serverless platforms like Google App Engine (web app-hosting) and Google Cloud Functions (function/service-hosting) that can use Google Cloud Firestore for fast and scalable data storage. These are perfect for professional engineering teams that need autoscaling to respond to any level of user traffic and data input. Such apps can also be packaged into a container and deployed serverlessly on Google Cloud Run.

However, it's quite possible your needs are right in-between. Today, we're happy to present the Gigster story and their innovative use of Google Apps Script—a highly-accessible service conventionally relegated to simple macro and add-on development, but which Gigster used to its advantage, building robust systems to transform their internal operations. Apps Script is also serverless, meaning Gigster didn't have to manage any servers for their application nor did they need to find a place to host its source code.

The Gigster story

Gigster enables distributed teams of software engineers, product managers and designers to build software applications for enterprise clients. Over the past five years, Gigster has delivered thousands of projects, all with distributed software teams. Our group, the Gigster Staffing Operations Team, is responsible for assembling these teams from Gigster’s network of over 1,000 freelancers.

Two years ago, our team began building custom software to automate the multi-stage and highly manual team staffing process. Building internal software has allowed the same-size Staffing Operations Team (3 members!) to enjoy a 60x reduction in time spent staffing each role.

The Apps Script ecosystem has emerged as the most critical component in our toolkit for building this internal software, due to its versatility and ease of deployment. We want to share how one piece of the staffing process has evolved to become more powerful over time thanks to Apps Script. Ultimately, we hope that sharing this journey enables all types of teams to build their own tools and unlock new possibilities.

End-to-end automation in Google Sheets

Staffing is an operationally intensive procedure. Just finding willing and able candidates requires numerous steps:

  1. Gathering and formatting customer requirements.
  2. Communicating with candidates through multiple channels.
  3. Logging candidate responses.
  4. Processing paperwork for placement

To add complexity, many of these steps require working with different third-party applications. For awhile, we performed every step manually, tracking every piece of data generated in one central Sheet (the “Staffing Broadcast Google Sheet”). At a certain point, this back-and-forth work to log data from numerous applications became unsustainable. Although we leveraged Google Sheets features like Data Validation rules and filters, the Staffing Broadcast Sheet could not alleviate the high degree of manual processes that were required of the team.

centralized Staffing Broadcast Google Sheet

The centralized Staffing Broadcast Google Sheet provided organization, but required a high degree of manual entry for tracking candidate decisions.

The key transformation was integrating Sheets data with third-party APIs via Apps Script. This enabled us to cut out the most time-consuming operations. We no longer had to flip between applications to message candidates, wait for their replies, and then manually track responses.

To interact with these APIs, we built a user interface directly into the Staffing Broadcast Google Sheet. By introducing an information module, as well as drop-down lists and buttons, we were able to define a small set of manual actions versus the much wider list of tasks the tool would perform automatically across multiple applications.

integrating Apps Script with third-party APIs

By integrating Google Apps Script with third-party APIs and creating a user interface, we evolved the Staffing Broadcast Tool to centralize and automate almost every step of the staffing process.

doPost() is the key function in our staffing tool that facilitates third-party services triggering our Apps Script automations. Below is a snippet of how we listened to candidates' responses from a third-party messaging application. In this case, queueing the third-party message in a Google Sheet so it can be processed with improved error-handling.

/**
* Receive POST requests and record to queue.
*/
doPost(e) {
var payload = e.postData.contents;
SpreadsheetApp.openById(SPREADSHEET_ID)
.getSheetByName("Unprocessed")
.appendRow([payload]);
return ContentService.createTextOutput(""); // Return 200
}

Almost all manual work associated with finding candidates was automated through the combination of integrations with third-party APIs and having a user interface to perform a small, defined set of actions. Our team’s day-to-day became shockingly simple: select candidates to receive messages within the Staffing Broadcast Tool, then click the “Send Broadcast” button. That’s it. The tool handled everything else.

Leveraging Sheets as our foundation, we fundamentally transformed our spreadsheet into a custom software application. The spreadsheet went from a partially automated datastore to a tool that provided an end-to-end automated solution, requiring only the click of a few buttons to execute.

Evolution into a standalone application

While satisfied, we understood that having our application live in Google Sheets had its limitations, namely, it was difficult for multiple team members to simultaneously use the tool. Using doGet(), the sibling to doPost(), we began building an HTML frontend to the Staffing Broadcast Tool. In addition to resolving difficulties related to multiple users being in a spreadsheet, it also allowed us to build an easier-to-use and more responsive tool by leveraging Bootstrap & jQuery.

Having multiple users in a single Google Sheet can create conflicts, but Apps Script allowed us to build a responsive web app leveraging common libraries like Bootstrap & jQuery that eliminated those problems while providing an improved user experience.

When other teams at Gigster got wind of what we built, it was easy to grant access to others beyond the Staffing Operations Team. Since Apps Script is part of the G Suite developer ecosystem, we relied on Google’s security policies to help deploy our tools to larger audiences.

While this can be done through Google’s conventional sharing tools, it can also be done with built-in Apps Script functions like Session.getActiveUser() that allow us to restrict access to specific Google users. In our case, those within our organization plus a few select users.

To this day, we continue to use this third version of the Staffing Broadcast Tool in our daily operations as it supports 100% of all client projects at Gigster.

Conclusion

By fundamentally transforming the Staffing Broadcast Tool with Apps Script, Gigster’s Staffing Operations Team increased its efficiency while supporting the growth of our company. Inspired by these business benefits, we applied this application-building approach using Apps Script for multiple tools, including candidate searching, new user onboarding, and countless automations.

Our team’s psychological shift about how we view what we are capable of, especially as a non-engineering team, has been the most valuable part of this journey. By leveraging an already familiar ecosystem to build our own software, we have freed team members to become more self-sufficient and valuable to our customers.

To get started on your Apps Script journey, we recommend you check out the Apps Script Fundamentals playlist and the official documentation. And if you're a freelancer looking to build software applications for clients, we’re always looking for talented software engineers, product managers or designers to join Gigster’s Talent Network.

Thank you to Sandrine Bitton, the third member of the Staffing Operations Team, for all her help in the development of the Staffing Broadcast Tool.

Update on Google at GDC 2020

Posted by the Google for Games Team

Last Friday, GDC 2020 organizers made the difficult decision to postpone the conference. We understand this decision, as we have to prioritize the health and safety of our community.

Every year, we look forward to the Game Developers Conference and surrounding events because it gives our teams a chance to connect with game developers, partners, and friends in the industry.

Although we won’t be connecting in-person this year, we’re still excited to share the latest announcements from Google with everyone through our digital experience. We'll be sharing plans for our digital experience in the coming days.

Thank you to all who keep this community thriving and check back soon at g.co/gdc2020 for more details.

3 Ways DevFest is Solving for the Environment

GDG DevFest banner

In 2019, powerful conversations on how to solve climate change took place all over the world. In that spirit, the DevFest community recently joined the discussion by looking at how tech can change how we approach the environment. For our new readers, DevFests are community-led developer events, hosted by Google Developer Groups, that take place all around the world and are focused on building community around Google’s technologies.

From DevFests in the rainforests of Brazil to the Mediterranean Sea, our community has come together to take part in a high-powered exchange of ideas, focused on how to solve for the environment. Out of these DevFests have come 3 new solutions, aimed at using tech to create eco-friendly economies, safer seas, and care for crops. Check them out below!

1. Blockchain for Biodiversity - DevFest Brazil

Blockchain for Biodiversity - DevFest Brazil

Blockchain for Biodiversity comes out of the “Jungle’s DevFest”, an event hosted by GDG Manaus that took place in the Brazilian Rainforest with over 1,000 participants. Imagined by Barbara Schorchit’s startup GeneCoin, the idea focuses on using blockchain based solutions to track how “biodiversity friendly” different products and companies are. Her goal is to help create a more eco-friendly economy by providing consumers with information to hold companies accountable for their environmental footprint. This tool for tracking environmentally conscious products will allow consumers to better understand what materials goods are made from, what energy sources were used to produce them, and how their creation will impact climate change. Welcome to a whole new take on purchasing power.

2. ECHO Marine Station - DevFest Mediterranean

ECHO Marine Station - DevFest Mediterranean

The ECHO Marine Station comes from a partnership between the Italian Coast Guard and DevFest Mediterranean hosted by GDG Nebrodi, Palermo, and Gela. The marine vehicle was created with the hope of becoming the “space station of the seas” and is rechargeable via solar panels, equipped with low-consumption electric motors, and does not create waves or noise - so as to not disturb marine life. The DevFest team took the lead on developing the software and hardware for the station with the intention of creating a tool that can analyze and monitor any marine environment.

At the DevFest, two innovative ideas were proposed on how to best purpose the marine station. The first was to program it to collect radioactive ions released by nuclear power plants, with the goal of analyzing and eventually disposing the waste. The second was to program the station to carry out expeditions to collect water samples, analyze pollution levels, and report dangerous conditions back to the coast guard.

With DevFest and the Italian Coast Guard working together, the ECHO Marine Station is ready to change how we save our seas.

3. Doctor's Eyes for Plants - DevFest MienTrung, Vietnam

Doctor's Eyes for Plants - DevFest MienTrung, Vietnam

Doctor’s Eyes for Plants is an idea that came out of DevFest Vietnam’s “Green Up Your Code event”, hosted by GDG MienTrung, Vietnam. You can watch highlights from their event here. Created by local students, the program uses a public dataset with Tensorflow to train a region-convolutional neural network to recognize 6 diseases on 3 different plant species, all in 48 hours. The team was recently able to apply the technology to rice plants, which could revolutionize the world’s capacity and efficiency for growing the crop. The rewards of this technology could be unprecedented. The creation of a healthier eco-system paired with the chance to feed more people? Now that’s high impact.

Inspired by these stories? Find a Google Developer Groups community near you, at developers.google.com/community/gdg/

Improving Smart Home Action Reviews

Posted by Dave Smith, Developer Advocate

Today we're announcing some improvements to the review process for smart home Actions, aimed at making the experience more transparent in the Actions console and reducing the time it takes for your Actions to get approved.

The smart home review process is slightly different from other Actions on Google projects because it has two separate phases: a policy review and a certification review. All Actions undergo a policy review, which verifies that your Action follows the policy guidelines for Actions on Google. Smart home Actions go through certification review for additional quality assurance validation. Certification reviewers verify the content you provide through the certification request form, including your test suite for smart home results.

Until now, developers did not have visibility into both phases of the review process. This was a common source of confusion as developers would receive notifications that their Action was approved during policy review, without realizing that certification was incomplete or still in process.

To address this concern, we've introduced a new view in the Release section of the Actions console to display detailed status for both policy and certification review. This provides a more complete picture of your submission and when it's ready to go live in production. When your Action encounters an issue during review that requires your attention, you are now able to see that status directly in the console user interface for your project.

Action submission requiring developer attention

These console updates reflect additional internal changes we've made to better synchronize the policy and certification review teams, enabling reviewers advance submissions through the process more quickly and reducing delays between Actions being approved and ready for production.

We're excited to bring these improvements to the Actions on Google developer community! Share your thoughts or questions with us on Reddit at r/GoogleAssistantDev.

Follow @ActionsOnGoogle on Twitter for more of our team's updates, and tweet using #AoGDevs to share what you’re working on.

Glass Enterprise Edition 2 now available for developers

Posted by Jay Kothari, Project Lead, Glass


Glass Enterprise Edition 2 has helped people working in logistics, manufacturing, field services and a variety of other industries do their jobs more efficiently through hands-free access to the information and tools they need to do their job. Enterprises who have deployed Glass with experiences built by our network of solution providers, have seen faster production times, improved quality, and reduced costs.

Since Glass Enterprise Edition 2 launched last May, we’ve seen strong demand from developers and businesses who are interested in building new, helpful enterprise solutions for Glass. In order to make it easier for them to start working with Glass, they can now purchase devices directly from one of our hardware resellers, such as CDW, Mobile Advance or SHI.

glasses"/

Glass Enterprise Edition 2 is built on Android, so it’s easy for developers to work with, and for businesses to integrate the services and APIs (application programming interfaces) they already use. We’ve also shared new open source applications and code samples, including sample layouts and UI components that may be helpful examples for those just getting started developing for Glass.

We’re excited to see what kinds of new experiences and solutions developers will make for Glass to shape the future of work.