# Effective ways to contribute in a new codebase as an onboarding iOS Engineer

DevFeed: [Effective ways to contribute in a new codebase as an onboarding iOS Engineer](<https://devfeed.tech/articles/effective-ways-to-contribute-in-a-new-codebase-as-an-onboarding-ios-engineer-23968.md>)

Original publisher: [Read original article](<https://medium.com/making-meetup/effective-ways-to-contribute-in-a-new-codebase-as-an-onboarding-ios-engineer-4d146c709040?source=rss----6981e268ba45---4>)

Author: Hakeem Musse

Published: 2023-04-11T20:35:32Z

Content type: tutorial

Language: en

Sources: [Making Meetup - Medium](<https://devfeed.tech/sources/making-meetup-medium.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [Code](<https://devfeed.tech/topics/code.md>), [legacy](<https://devfeed.tech/topics/legacy.md>), [A/B Testing](<https://devfeed.tech/topics/a-b-testing.md>), [Framework](<https://devfeed.tech/topics/framework.md>)

Tags: [a-b-testing](<https://devfeed.tech/tags/a-b-testing.md>), [code](<https://devfeed.tech/tags/code.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [ios](<https://devfeed.tech/tags/ios.md>), [legacy-code](<https://devfeed.tech/tags/legacy-code.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [onboarding](<https://devfeed.tech/tags/onboarding.md>), [tips](<https://devfeed.tech/tags/tips.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

## AI overview

An iOS engineer at Meetup shares onboarding practices for contributing to an existing codebase. Using the re-platforming of an A/B testing Experiment feature as an example, the article emphasizes reading documentation, understanding architecture and dependencies, and resolving issues when modularizing legacy code.

## Source excerpt

Photo by Aron Visuals on Unsplash For most engineers, joining a new organization means having to onboard to some existing codebase. The larger a codebase, the more complicated it can be to navigate for new engineers, which can be overwhelming to start contributing code. As an iOS Engineer at Meetup, I experienced this firsthand when onboarding. This blog post focuses on some tips I've learned from my experiences contributing to Meetup's iOS codebase when I first onboarded. To illustrate these practices, let's look at an example of a task I worked on. The task My task was to re-platform our Experiment feature in the iOS app, which allows us to conduct A/B testing on new features. At the time, this feature was located in Meetup's legacy codebase and part of the task was to move this code into its own module. The acceptance criteria for this task was to make it so any engineer can import the standalone feature and use it without having to reference legacy code. When I began this task, I had some knowledge of where I can start working, so like any eager engineer, I dove right in! On the surface, re-platforming is essentially moving over files and implementation to a modularized framework. I thought, "how hard can this be, right?" I started ⌘+ C'ing like never before! Files were being copied at the speed of light. We were taking flight! I couldn't wait for the reaction of my peers: "Damn, Hakeem, you did this that quickly?" However, not too far into the work, I was hit with about 100+ Xcode errors when trying to compile. I could faintly hear Xcode laughing at me. This leads me to tip number one... Reading Documentation This underestimation was a sign for me that I had to go back to square one and read up on how this feature is architected. Indeed, reading the documentation unveiled nuggets of information on how to re-platform that I didn't realize. More importantly, reading documentation gave a high level picture of how individual components work together. So, I tried agai