EXPEDIA GROUP TECHNOLOGY — SOFTWARE

My Internship Experience with Expedia Group

Braving the pandemic by learning with a passionate team

Subham Sai Behera
Expedia Group Technology

--

Photograph of a laptop computer
Ready to get to work! (Image by the author)

Last year, I reached a major milestone in my life. I got a two-month internship offer from Expedia Group™, one of the largest travel tech companies in the world. It was my first opportunity to step into a new world and explore how the corporate world works. I was extremely excited to embark on this journey. Moreover, being the first student from my college to get an opportunity to work with Expedia Group, I was pumped up to give my best, but was equally jittery about how things would unfold.

Expectations of my internship

One of my greatest expectations from the internship was to work on production code with the right balance in the complexity of code. I wanted to learn with a team that is passionate to achieve great heights. I wanted to learn new technologies and soft skills and to network with like-minded people all around the country and the globe. Looking back I can gladly say that this internship gave me all that I had expected and much more.

Onboarding

The first week was filled with various activities and workshops that were planned by the Early Careers team. These workshops made us familiar with Expedia Group culture, values, our API first strategy and various leadership skills. We also had a warm welcome from our managers and our buddies where we got to know about each other and the project I would be working on. That was followed by setting up our laptops with VPN, Git, Artifactory and other build tools required by the project. Setting up took some time but thanks to my buddy and manager the process was completed smoothly.

Project 👷

My project was to make Stay UI modular by adopting atomic design methodology for amenities component.

Motivation

Our aim is to make the amenities component of Stay UI modular and self-sufficient (in terms of data fetching) so that we can plug this component into any of our Stay UI pages or other Expedia brand websites and the component should simply work. By doing this, we can remove redundancy in code and reduce work for developers who can now focus on tasks that are specific to their needs. And we can create a seamless and uniform experience for our travelers across all Expedia brands.

What is atomic design methodology?

Atomic design is a methodology inspired by chemistry. We all must have learnt that all things in the universe are made out of atoms that combine to form molecules, some of which combine to form more complex organisms. Atomic design involves breaking a website down into its basic components and then building up from there to create a site.

Work

Initially, I was assigned some good first tasks to get familiar with the Stay UI repo. These tasks helped me understand how Git and GitHub work in a production environment. We raise a pull request, request review, and ask how we can deliver the result on time. My team followed agile methodology, so we had grooming sessions, daily scrum meetings, and weekly feedback sessions. I was taught agile through slides in college but practising it here was something of an experience in itself.

After I got comfortable with the repo, I steadily took up the responsibility of making some atoms and molecules for Stay UI amenities. Working on them was a great experience since I got to learn how different components interact with each other, how data is fetched and used, and how redundancy is avoided. I learnt how to write unit test cases and perform regression testing for my code to be confident before shipping it to production. I learnt how to make queries using GraphQL, something entirely new to me, and inject them inside a component. What blew my mind were the optimizations and caching that GraphQL provided. So much so that it will be really difficult for me to go back to the regular REST API now 😄. Last but not least I learnt how to efficiently find relevant code and debug errors in a large codebase.

Diagram showing the breakdown of the conversation platform into various atoms and molecules. The conversation platform itself is an organism in atomic design terms.
Breakdown of StayContent organism into smaller molecules
Breakdown of components in UI

Whew! So many technicalities 😅 . Let’s talk a bit more human-like, shall we? In these two months, Expedia has shaped me personally and professionally. I learnt how to communicate with my teammates to share my ideas, take feedback positively, and why business ethics are so important in the workplace. I understood why my mental wellbeing is so important for me to perform well in my career and why working in a team expedites our work and learning process.

EG values

Looking back I can proudly say that my project embodies one of the five EG values: Force Simplicity. Both from the developers’ side to decrease code redundancy and increase productivity or from the travelers’ side to have a steady and consistent UI. Personally, I feel that I have learnt and practised another core EG value: to Choose Fearlessly. I believe that by taking ownership of my work, making mistakes and moving on, I understand why EG places this as one of its core values.

Challenges

Setup

I faced issues in installing required node_modules and running the Stay UI server in localhost. After debugging with my manager and teammates, we found that I was facing authentication errors and that my Visual Studio build tools were not properly configured. It took nearly 4 days to troubleshoot these issues, but it gives me immense pleasure to share that we were able to help our newer interns who had similar issues in about half the time. Taking notes 📝 really goes a long way.

Understanding the Stay UI repo

Since this was my first internship experience, I had never worked on such a massive codebase. It was huge and overwhelming 😫 at first, but thanks to the gradual increase in the complexity of the tasks, I was able to contribute effectively and deliver on time 😸. Here I would like to suggest newbies who are getting their hands dirty with exploring a new codebase to know that it is OK to not understand how everything fits in the bigger picture. Don’t panic or be harsh on yourself. Instead, pick up a small portion that seems interesting and dig your way through. Believe me, you’ll have an exhilarating experience on your way.

Thanks and further reading

All in all, I would like to thank Expedia for providing me with a great and fulfilling internship experience that I can look back on and feel proud of.

Atomic design methodology: https://atomicdesign.bradfrost.com/chapter-2/

Learn more about technology at Expedia Group

--

--