A day in the life of an (iOS) engineer at Turo

Linda Zhang
Turo Engineering
Published in
6 min readMar 12, 2019

A question was recently asked during a company all hands meeting: “What does an engineer do each day”? I think this is a good, common question to ask, so I would like to share more about what we do daily from our iOS team’s perspective.

First, I would like to introduce our team. I’ve always been very proud to be a member of our awesome iOS team. The core group had been 5 engineers for the past few years, but we added 3 new team members in the past 6 months. Our team is a very diverse team, from different countries, different professional backgrounds, working from different offices, which builds an open-minded, respectful, and strong team.

iOS offsite team photo taken in January 2019

Work Collaboratively

As iOS engineers, we work very closely with the product and design teams to build and release features. In 2018, we released 63 app updates, including some features like Extras, Deluxe/Super Deluxe, UK Peer-to-peer Service, Turo Go, Search Redesign, etc.

“As engineers we don’t just fix what’s broken, we create value by building tools” — Matt (Turo iOS engineer)

We are creators. We work in an environment where product managers, designers, and engineers share ideas, and collectively we create products.

Turo Go guest check-in as 11/2018

For example, we recently built a brand new check-in experience for Turo Go trips. Engineers brought up the confusion of which location (booked location or car location) to display for a Turo Go trip, if we only show one, which was the original product design. Once noticing this issue,the product manager, designer, and engineers all gathered together, discussed the issues, possibilities, and what would be the best experience for customers when they’re looking at the map and checking-in. In the end, the designer revised original design and engineers made changes accordingly. The screenshot on the left is the revised version. The highlighted car pin represents the car’s location, which helps users to locate the car when looking at the map to check-in. The regular pin gives users the original booked location information if they need it.

To keep our product features consistent across platforms, we also collaborate closely with the backend, android, and frontend teams. For instance, cross-functional engineers gather together to discuss API(application programming interface) implementations. We strive to have business logic at the API level for all clients, so that, business logic is consistent on all clients. If logic needs to be changed by business requirements, backend changes could make it done for all clients, as well as sustaining old app versions.

Last but not least, our iOS team members work closely with each other every day, either on the same project or supporting each other. In some cases, we work collaboratively on a big project that is broken into several pieces. In other cases, each team member is trusted and independently takes on a project, and others support by, for example, writing code reviews. As an iOS team, we try to review each other’s pull requests as quickly as possible, and not keep a pull request open for a long time. As a team, we release high-quality app features on time.

Keep app bug free

Besides “app features”, “app crashes”, “app bugs” are probably frequently used phrases by users when talking about an app. As Turo iOS engineers, not only do we build user-friendly features, but also we care a lot about our app quality. Gladly, and proudly, I can say that the Turo iOS app has 99.9% crash-free users.

Turo for iOS version 19.6 crash-free rate

There’re many factors that helped us achieve this great result, for example, code review, phased releases, app performance monitoring, bug fixes, etc. Here, I would like to elaborate more on how writing high quality code helped us. Please read “The new gold standard for iOS releases: 99.99% crash-free” by my colleague Eric for more details.

When I worked on a school project, “It works” was enough to make me very happy. After joining Turo, I learned that is the very basic mindset. One of our team’s conventions is to write good, clean, readable and reusable code. We do not do “it works, ship it, and improve it later”. As much as we’d like to release the project as quickly as possible, we keep a high standard to ourselves.

For example, we had an aggressive timeline for the Turo Go trip experience project. Before coding, we took some time to design, not only just for current experience flow, but also considering for the structure stability, flexibility, and safety. There were a few adjustments, and we settled on a version where a center controller handles connections among different viewControllers. Each viewController is independent, but works smoothly together, and the center controller supports flow adjustments or more flows if needed in the future.

On the iOS team at Turo, not only do we fix crashing bugs, but we also pay close attention to user experience bugs. We treat functional bugs with high priority since they block users from doing what they want to do, which is the bare minimum we want for users. For visual bugs, we would talk to the design team, get suggestions, and fix them. We read customer feedback for usability bugs or suggestions, and we accordingly prioritize and work on them to give them a better experience.

Keeping the team strong

Besides the software development work, the following are also key factors that make us a strong iOS team.

  • Interviews

Some days we interview candidates. Interviews are important to help our team grow, so we make them a high priority. An interviewer does detailed preparation for his/her interview session, and writes anonymous feedback after. In the end, all interviewers gather together to have a debrief on the candidate. With everyone’s efforts, we doubled the size of our iOS team in the San Francisco office in the past few months.

  • Guild meetings & offsites

Each week, all iOS team members join (or remote join) a meeting, which we call the iOS guild meeting. We talk about recent work, to keep the whole team up-to-date, as well as discuss our platform-specific topics.

Each year, all iOS team members gather together in one place. We normally talk about our SWOT (strengths, weaknesses, opportunities, and threats), and plan for the next year.

  • Team lunches

iOS team gathers together every few weeks to have an (office based) team lunch together, during which we would talk about not only work but also other fun subjects and activities.

  • Learning

Turo engineering team is very supportive and encourages learning and improving ourselves. For example, we will be supported in attending WWDC (if we’re lucky enough to win the lottery 😄), the biggest Apple developer conference in the world.

Julio playing table tennis during WWDC 2018

Summary

So, that’s what we, iOS engineers, do at Turo. We’re creators, we work collaboratively with different teams to build high-quality and user-friendly app features. We write high-standard code, support each other and care a lot about our app quality. We are a strong and fun team.

Thank you for reading! Interested? Join us!

--

--