Google mentoring programmes are plentiful. Events such as Summer of Code, CodeF, Google Top Black Talent and TechAbility offer amazing opportunities for students interested in technology to develop their careers, network with like-minded peers and work on interesting projects. In the past months I have had the opportunity to attend a variety of residential career development and mentoring events organised by companies from a range of industries. I can say without a doubt that Google’s TechAbility programme, organised in collaboration with EmployAbility, comes out on top for the following three reasons:
- Mentoring: The programme consists of 8 one-to-one mentoring meetings held either virtually and/or in Google’s London offices. This level of attention is completely unparalleled and enables participants to build meaningful relationships with their mentors.
- Flexibility: The programme is adaptive to participants’ backgrounds and interests. Rather than following a given schedule, mentees are free to propose their own projects to work on, conduct mock interview sessions with their mentors and work on professional skills.
- Impact: The above two points cumulate in a genuine opportunity for impact. The level of support offered by the mentors, together with the flexibility to work on any technology project the student wishes, means that there is enough time to create a project with lasting real-world impact.
To give an impression of what it is like to be part of a Google mentoring programme, I will now detail my experiences as a participant of TechAbility 2012.
The first one day event at the Google offices at St Giles High Street in Covent Garden set the tone for the programme that awaited us. We were welcomed by senior Google employees to a day packed with interesting lectures about their work. The day was fast paced, but there was also time to chat to people during the breaks and network with Googlers from a variety of backgrounds.
After this introductory day all participants were invited to propose a project that we would want to work on with a mentor.
I decided to propose a project related to my Ph.D. in the field of theory and simulation of materials. In laboratories, such as the one I work in, and biotech startups around the world, cheap and fast computers are increasingly used to replace expensive and slow laboratory experiments. This is possible through the use of materials simulation software. Based on our understanding of the laws of physics, these software products, running on some of the fastest supercomputers ever built, are used to discover new materials and drugs, optimise the polymers used in the aerospace industry and ensure the safety of nuclear reactors, to name just a few examples.
However, most people have never heard of this quiet revolution in science. I decided to propose a project that would address this awareness gap. The plan was to put school students in control of a supercomputer, giving them first hand experience with a tool that scientists in my field work with every day. By the end of my project, a web interface would control a powerful research-grade simulation of 500 virtual water molecules at arbitrary temperatures. Using a simple temperature control dial, users would be able to observe the molecular structure of water at different temperatures, from a frozen crystalline lattice at 10 Kelvin to an exploding vapor cloud at 5000 Kelvin.
Sylvie Sheil, who works out of Google’s Dublin office, agreed to mentor me over the course of eight one-to-one meetings through the creation of this project. In week 1 I met up with her for the first time, at the colourful Google offices at St Giles High Street in Covent Garden. Together we formulated my original mission statement, which was to put school students in control of a simulation that shows how medicine breaches the human skin barrier. To help me with the simulation aspects of the project, I decided to ask David Edmonds, a PhD candidate with extensive experience using molecular simulations, to be part of my project. David agreed, but suggested that simulating water would be a more achievable goal for my minimum viable product (MVP).
At this point, I realised that the wealth of scientific libraries that is available for Python, such as numpy and matplotlib, would make Python a sensible technology choice for my project long term. The only problem was that I have never used Python before. Despite my lack of experience, my mentor supported the choice of Python / Django, and I found that the framework set by the mentoring programme provided a good learning environment to pick up the skills that I needed to move forward with my project.
Working evenings and a few late nights, I put together version 1, the somewhat clunky yet fully functional prototype reproduced in Figure 1. Based on the popular open source molecular dynamics simulation package Gromacs, I created a website written in Python / Django that could be used to control the water simulations that David had put together. For easy collaboration, I put everything into source control using git, and deployed it on an Amazon EC2 Linux instance running Apache.
The second meeting with my mentor took part via a sketchy Google Hangout connection, with her in Dublin and me in London. After seeing my first prototype, Sylvie suggested that I should think more about my intended audience, possible user profiles and use cases. She introduced me to a more holistic product development process, based on creating user profiles, a study of customer needs,, proposed MVP specifications to address these needs and resultant user flows and finally interface mockups.
I was used to thinking of great products as something that somehow spontaneously emerges at the intersection of three things: user needs, developments in technology, and a team skilled at bringing these technologies to users. (see Figure 2 for a rough sketch). During our mentoring sessions, Sylvie has helped me to gain the skills needed to formalise the processes in this cycle into concrete and repeatable steps, such as user flow analysis (Figure 3), wireframing (Figure 4) and mockup creation. I had not been exposed to such formal product development cycles before, yet after reading up on them further found them extremely useful and time saving. I was impressed by how well the mentoring scheme adapted to my interests, giving me the opportunity to gain skills in an area that made sense for my particular situation.
After the first four weeks we had a clearer grasp on what the final version of my MVP would look like. However, my mentor encouraged me to create a more streamlined interface, as well as a more attractive design. The encouragement was welcome and so I created a more compact layout aimed at providing a frictionless user experience. This point was especially important to me since materials simulation software is usually notoriously difficult to use. After discovering ‘less’, a CSS framework allowing for the use of variables and nesting of statements, I put together the layout shown in Figure 5.
With the end of the project quickly approaching, I moved on to early user testing. My aim was to test the site in schools, however due to scheduling constraints I had to make do with my fellow PhD students for the moment. One of the most frequent user feedback was the lack of information whilst the simulation was running, so I created some mockups for a sliding drawer that could be expanded whilst the user is waiting for the simulation to complete. I implemented the drawer using jQuery and filled it with some background information about the simulation technique used in my project (see Figure 5, right).
Finally, I realised that running this project on Amazon EC2 at scale would be rather expensive long term. As part of my search for alternative hosting solutions I applied for funding and am grateful to Prof Peter D Haynes, who agreed to sponsor my project with £1000, to be spent on compute infrastructure. After surveying the market, I decided to use this funding to migrate my project from EC2 onto a small cost effective dedicated server in Germany. I also wrote and beta tested a shell script that could make use of reverse SSH tunnels to farm out simulations to external machines should the need arise in the future.
Looking back after eight weeks, I would strongly recommend the Google TechAbility mentoring programme to others. It has been an amazing opportunity that has enabled me to pick up new skills from a mentor working in one of the world’s leading technology companies. The most useful lesson I learned from my mentor was the use of a repeatable product development cycle based on user studies, user flow analysis and wireframes / mockups. It has also given me a welcome excuse to learn new technologies (Python / Django, molecular dynamics simulation package Gromacs, the Amazon EC2 compute infrastructure, Unix administration) as well as brushing up on some old friends (such as collaborative working through the use of version control software git, the creation of interactive web interfaces using AJAX, and Apache web server administration).
The project that I have created as part of the mentoring programme, now located at hermesacademy.org/water, is at the heart of a trend towards open science. By giving the public access to the same research-grade simulation infrastructure that scientists use every day, it is my goal that, going forward, this project will break down some of the barriers that exist between academia and the general public.