how-culture-communication-and-collaboration-shape-the-ios-team
Engineering
Aug 30, 2022

How Culture, Communication, and Collaboration Shape the iOS Team

Max Held
iOS Engineer

For Senior iOS Engineer, Max Held, teamwork is everything. Here, he explains ways in which the iOS team keeps communication open and supportive – and how music is the perfect accompaniment to programming.

When I joined GetYourGuide three years ago, it was clear from the outset that the company embodied what I was passionate about. Having worked across three amazing teams, I’ve had the opportunity to meet so many fantastic colleagues who I’ve learned a lot from. I’ve also got to work on and ship many great things in my time here. But what’s really shaped my experience with the company is the iOS team and its culture.

The whole team has made the product – that is, the codebase – their home, and there is a global sense of shared ownership that feels really positive. I'm incredibly proud of what we've achieved as a team in the past few years, and of the supportive, respectful subculture we’ve cultivated.

Here’s more about the part I play in building that grounding of collaboration, how knowledge sharing happens both inside and outside the company, and why programming is the ultimate creative pursuit.

{{divider}}

Programming Solid Foundations

My role in the Travelers Platform Native Apps team is to make other engineers as productive as possible by building a strong foundation for them to build on. The team comprises both Android and iOS engineers, predominantly focused on these respective platforms.

Although there are some overlapping issues that affect both platforms, each has its own set of challenges to tackle. We focus on functionalities that are global to the codebase so that other teams don’t have to. That means processes including analytics; experimentation; common shared utility tools such as helpers for creating UI components; algorithms; and a strong design system.

Keeping up with all the moving parts in the codebase and the needs of different teams can be challenging. It requires clear, proactive communication with my fellow iOS engineers; and a good sense of what the main pain points are across the teams. It also calls for decision making, and together with the iOS chapter of the Native Apps Guild, envisaging how the roadmap of the Travelers Platform Native Apps team should look.

Growing a Team, Fostering Collaboration

Engineering at GetYourGuide calls for an environment of collaboration, exchange, and trust with colleagues across multiple disciplines – in my case, iOS. And that’s precisely what we’ve collectively built these past few years. When I joined the company back in December 2019, I was the team’s fifth iOS engineer.

Back then the team was largely made up of engineers who had been at the company for less than a year. We inherited a very large codebase and worked closely together to modernize and break it down into isolated, more manageable modules.


Fast-forward to today, and we now number 12 iOS engineers based in Berlin and Zurich. We are an international group from South America, Europe, and Asia, with a wide scope of backgrounds and experience. The Android team is similar in diversity and size, and together, we make up the greater Native Apps Guild.

Each team has one Guild Lead in the Native Apps Guild: I represent iOS, and my colleague Benedict Pregler, Android. It’s our job to act as facilitators of team discussions and be the first point of contact for engineering leadership regarding native apps topics.

Through close collaboration and building on each other's work, the iOS team in particular has grown into a tight-knit group that pushes each other to bring out the best in everyone.

Maintaining Open Communication Via Pair-Programming

Of course, there have been a few mountains to climb to get to the point we’re at today. Although we wouldn't have been able to achieve the technology, product, and tackle tech-debt work without the team’s grit and determination, we’ve also nurtured a very open and respectful subculture, founded on knowledge sharing and support. The key to maintaining that is proactive communication and pair-programming to overcome problems together.

A core characteristic of the iOS team is speaking up – be that if someone’s unsure about something, needs feedback, is stuck, or has information to share. In return, colleagues are receptive and quick to react. Similarly, communication-based is our use of pair-/mob-programming: simply getting together and working through something. We use this for onboarding new engineers, working on features, doing refactoring, and getting engineers comfortable with a new domain in the codebase.

Since the pandemic, we’ve been using Tuple to do our pair-programming sessions remotely and it’s really changed the game for us in how seamlessly it integrated into our day-to-day development flow.

Knowledge-sharing Through Meetups

An illustrative of our approach to knowledge sharing is a recent Meetup event we hosted in Berlin. Because this was the first in-person Meetup since the start of the Covid-19 pandemic, it was pretty special. Our topic was the recent migration of the GetYourGuide app to use Swift Package Manager, how it’s helped with scalability and flexibility, and the ways in which it facilitated the improvements on key performance metrics.

The talk was delivered by Felipe Marino, Staff iOS Engineer, Travelers Platform. Its research and content, however, were very much a team effort and required us to be very active communicators and collaborate closely with the iOS team. When working on the presentation together with Felipe, gaining each other’s feedback was an invaluable part of the process, as was working together to generate examples to illustrate the presentation.

Feedback was overwhelmingly positive, and it was especially great to share our experience and insights with peers currently navigating similar waters.

Bringing Passion to Work

What I appreciate about my team is that we completely embody loving our craft, and always aim for the highest standards. We’re radically open to each other's ideas and opinions, and firmly believe in what we can achieve together.

All of these qualities resonate with me on a personal level. Despite what some might think, I consider programming to be a very creative activity. I’m a huge fan of the Swift programming language in particular, and really passionate about writing simple, intuitive, and accessible code. It can be very expressive, and I think you can recognize people’s styles just by reading their code.

My other creative outlet is music: in my spare time, I get behind the decks and DJ electronic music and hip-hop. I love combining programming and music, and find listening to DJ sets help me focus and get ‘wired in’ when I need to program for longer periods of time. Together they really help me get in the rhythm of things. Sometimes the two worlds also cross over, like when I played back-to-back DJ sets at the last two company parties!

Other articles from this series
No items found.

Featured roles

Marketing Executive
Berlin
Full-time / Permanent
Marketing Executive
Berlin
Full-time / Permanent
Marketing Executive
Berlin
Full-time / Permanent

Join the journey.

Our 800+ strong team is changing the way millions experience the world, and you can help.

Keep up to date with the latest news

Oops! Something went wrong while submitting the form.