12 Weeks as a iOS Developer Intern — Week One

Lisa Jiang
Fuzz
Published in
4 min readJul 8, 2018

I was greeted warmly, shown around the office and handed a folder of paperwork. This was really happening, my first professional foray into tech as a developer. This was the stuff of my dreams, except it was all real!

Stock photo because I haven’t gotten around to taking a picture of my work desk LOL

I started with setting up my coding environment on my work laptop. Installing the latest edition of Xcode and setting up all my company work accounts. I have a macbook pro and a giant Apple monitor complete with an external mac keyboard and awesome wireless mac mouse. It was kinda funny to scroll on the mouse at first because there’s no scroll wheel, like petting a smooth surface with my index finger.

I was introduced to MVVM architecture paradigm and RxSwift with a scaffold of an example project and a RxSwift book. It was completely new to me.

MVVM stands for Model, View, View Model.

MVC vs. MVVM

In MVC, the logic and displaying of the view objects is handled in the View Controller.

In MVVM, the logic is handled in the viewModel. Each View Controller has it’s own viewModel. The View Controller is in charge of displaying UI.

RxSwift

RxSwift makes handling async code much easier! Instead of using delegates, the concept of binding is used for shared mutable state.

RxSwift, in its essence, simplifies developing asynchronous programs by allowing your code to react to new data and process it in a sequential, isolated manner.

— RxSwift Reactive Programming With Swift

I was tasked with building a starter project in MVVM imperatively (programming paradigm that uses statements to change the program’s state) then reactively with RxSwift. It was quite tricky at first because I had never seen anything built in MVVM. With the help of a reference project, and the support of my manager and senior engineers on my team when I got stuck, I eventually figured out how to build the starter project and it felt amazing. The feeling I get when the app I’m working on, finally does the thing it’s supposed to do. That’s one of the reasons I fell in love with programming.

Code reviews with my manager were immensely helpful. I had never noticed how many random newlines I left in my code until code reviews. Lines of code used for debugging purposes, lines of code that are no longer used, commented out code should be removed before pushing to the codebase. My code style had significantly improved by the end of the week.

The iOS team has a meeting every Wednesday to share knowledge/ updates. There is also a bi-weekly developers meeting with developers from across all the engineering teams for the same purpose. In both, some developers working remotely will join via Google Hangouts.

stock image again LOL I just haven’t taken photos at work

I was encouraged to join social events and hobby based slack channels like biking/bookclub/wine at the company. Every Wednesday, there’s an event called Whinesday. Fun wine and cheese plate chill event! I got to chat with some engineers from the iOS team as well as engineers from the other teams.

There’s company catered lunch Monday - Thursday, bagel breakfasts on Tuesdays and breakfast spread on Friday as well. I love not having to decide what to eat for lunch and going out to order. The food is delicious too. My favorite so far is Gaddy Lane’s sandwiches and salads.

It was quite an eventful week with lots of learning and I’m excited for the weeks to come!

--

--

Lisa Jiang
Fuzz
Writer for

Software Engineer @LinkedIn| Prev: SWE Apprentice @Linkedin, Jr. iOS Dev @Fuzz, @C4Q alum | I write about my coding journey, in hopes of helping you on yours