How it started

Growing up in Lebanon, I was never exposed to the glamour of Silicon Valley. In a country where we had slow internet speeds and electricity for only half the day, the high tech world seemed to be galaxies away. My first exposure to Silicon Valley came when I watched The Internship back in 2013. If you're not familiar with the movie, the two main characters land coveted internships at Google and get the unique opportunity to experience everything that Silicon Valley has to offer.

When I moved to Canada in 2015, working in Silicon Valley didn't seem so far-fetched anymore. It took a lot of hard work and many rejected applications, but I was able to land a UX Engineering internship at Google's HQ in Mountain View, California, for the summer of 2019. The day I got the offer was one of the happiest days of my life.

What is UX Engineering?

UX Engineers bridge the gap between UX Designers and Software Engineers: they're skilled in both design and development. They partner with UX Designers to define and design new features, which they will turn into coded prototypes that use dynamic data and animations to simulate the experience. They also work closely with UX Researchers to conduct user testing and assist Software Engineers in implementing these features. Think of UX Engineers as jacks of all trades that can contribute to any part of the product development lifecycle.

If you're interested in learning more, check out a fellow UX Engineer's article about UX Engineering or UX Engineering on Google Design.

Working on the Google Search team

I joined the Google Search team to design and prototype new features for the Google Search iOS app. My intern project involved creating a visualization of Google's Knowledge Graph. The Knowledge Graph stores all of Google's public data that you see when searching for a topic. You may be familiar with the nice block of information you see on the right when you search for a celebrity or movie: the Knowledge Graph supplies all of that information. The power of the Knowledge Graph is connecting each piece of information to many other pieces of information, and so on.

Here's a great video that can help you understand what the Knowledge Graph is and how it works:

My 12 weeks at Google

Unfortunately, my project is protected by a non-disclosure agreement, which means I cannot show any of my work.

Week 1: Orientation + Training

I spent my first week in orientation and training sessions with other interns. We learned about Google's culture and values, met our fellow "Nooglers", and explored the Google campus. After our general orientation, we had UX-specific training sessions for UX Design, Engineering, and Research interns. Training sessions focused on research methodologies, design tools such as Figma and Framer, and designing for accessibility.

orientation

Week 2: Meeting my team and discussing projects

The following week, I got to meet my manager Richard and the UX Engineering team for Google Search. The team had a mix of people who each specialize in either iOS, Android, or Web Development. I also spent significant time with my manager discussing potential projects I could be working on. Out of all the projects he proposed, the Knowledge Graph visualization seemed like the most challenging and interesting one, so I decided to take it.

Week 3: Ideating and paper sketching

To kickstart the project, I met with the stakeholders and subject matter experts for the Knowledge Graph, including Product Managers, UX Designers, and Ontologists. After gaining some background knowledge and understanding how the Knowledge Graph worked, I started sketching different designs which I presented to them by the end of the week.

Week 4: Prototyping with Keynote

Both the stakeholders and I wanted to explore one of my proposed ideas further, so I decided to make a low-fidelity prototype. Since the concept involved animating relations between topics in the Knowledge Graph, I decided to create the prototype using Keynote and the Magic Move feature since it would be the easiest and fastest way. The animations I wanted to prototype would have taken longer to make using tools like Principle or Framer, which would have slowed me down in the early stages of the project.

Week 5-6: Prototyping with Swift and static data

UX Engineers focus on creating living and breathing prototypes with code. It was my first time creating a prototype with code instead of using tools like Figma or InVision, so it felt strange to dive into code so early in the project. However, the goal of a UX Engineer isn't to write perfect code that was ready to be pushed for the next release; it was to make a minimum viable product to gather feedback for future development. For my project, I created my first prototype using Swift and populated it with static data. The goal of this prototype was to visualize the animations at a higher fidelity while adhering to Google's design system and guidelines.

Week 7: Internal Conference

Halfway into my internship, we had an internal conference where Googlers from around the country flew in to participate in workshops and attend talks and fireside chats. I learned about what was happening around the company and discovered different projects that Googlers were working on.

Week 8-10: Prototyping with real data

After presenting my prototype with static data, I received positive feedback from the project stakeholders and some valuable input for the next iteration. The final step of my project was to create a prototype that used real data to conduct testing internally with employees. I needed to connect the prototype to the Knowledge Graph back-end and display the relations between different pieces of data on the device. The Knowledge Graph can be tricky since each piece of data is connected to hundreds of other data points. It took two entire weeks of coding (and a lot of debugging 😅) to get it working. With the new prototype, a user could type in a specific topic and the relations to other topics would be displayed. It was my first time dabbling with back-end programming, connecting to a database, and parsing the correct data to display after each user interaction. It was extremely challenging, but it allowed me to create a prototype that interacted and updated in real-time based on user input.

Week 11: User Testing

Once the final prototype was complete, I partnered with the UX Designer to create a plan to conduct testing with employees in Google's San Francisco office. We tested internally with five employees and received valuable feedback for the project stakeholders to use after I wrap up my internship.

Week 12: Final presentation + Off-boarding

I spent the final week of my internship presenting my final project to my team, stakeholders, and other Googlers. Since there was a lot of interest in the project, I created an internal website where people can read about the work that I did, view/download all the prototypes I created, and even access the code for the prototype. I also shared my project and findings with other design teams in California, New York, and Zurich.

What I learned

Prototyping with code is essential for data-heavy projects

When a project is complex and the experience depends on the data you display to users, prototyping with code will help you better simulate the user experience, even if it takes more time to make. It would've been impossible to get actionable insights for the Knowledge Graph project if I had just made a prototype with static data using a design tool. However, for projects that are much less complex, prototyping with tools like InVision or Figma is more suitable and much faster.

Empathizing with developers

In my past internships, I was solely focusing on design. In the UX Engineering role, I had to get out of my comfort zone and dive deep into code. Although I like designing much more than coding, this experience helped me understand what developers go through when we hand off our designs. Turning our designs into real products that people can use is much more than just copying design specs: what looks simple to us as designers can sometimes require much more effort to code.

Interning at Google isn't just about the cool perks

Whenever someone asks me about my internship at Google, they tend to focus on the fantastic perks that we get as interns like the free food and nap pods. Although these are nice to have, I don't see them as the best part of my internship. My favourite part was being able to be around some of the most accomplished people in their respective fields and being able to chat with them at any time. During my 12 weeks, I met and spoke with people from Nest, Stadia, Google Maps, Gmail, and many more. If you do get an internship at Google (or any other big tech company), I encourage you to learn as much as you can from the people around you because it's a learning experience like no other.

Continue reading

Royal Bank of Canada

Winning the top prize in RBC's global innovation program for students

Read story →
← Home