跳转至

5 An Interview with Sarah Olson

Sarah is a Senior Engineer working on the Trello iOS and Android apps at Atlassian. She has over eighteen years of development experience in a variety of technologies, including Java, WordPress, iOS and Android development.

Sarah OlsonSarah Olson

Connect with Sarah

Twitter: @saraheolson LinkedIn: in/saraheolson

Interview

As a fully remote worker without a commute, do you use podcasts or books, and do you have a preference for either?

I tend to prefer books over podcasts. I’m also much more of a visual learner, so the words stick better to my eyeballs than my ears. A book that comes to mind that’s had an impact on my work is the “Gang of Four” — also known as GoF—book for Java development, where I started. The full title is Design Patterns: Elements of Reusable Object-Oriented Software. The insights from the four authors, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, are still patterns I refer to to this day.

In addition to the insights from this book, what is something you wish someone had told you at the start of your software development career that you had to learn the hard way instead?

I wish someone had told me: You belong here. You’ll never have all the answers. Feeling like an imposter is normal and there are many others out there like you who feel the same way. Find them.

“I have spent the past few years building up my network of peers who can help me with my career, and, as a person who has faced barriers and discrimination, that has made all the difference.”

Do you have any role models, either technical or non-technical, that helped you become a better developer? How did they shape your thinking or daily practice?

I’ve had coworkers who’ve helped me ramp up in new technologies, but no, I’ve never really had a role model or a mentor. I’ve tried to become that person for others, since I never had it. I have spent the past few years building up my network of peers who can help me with my career, and, as a person who has faced barriers and discrimination, that has made all the difference. Find people who have your back and can help you through the weeds.

As you navigate the industry, do you find any current industry trends to be wrong?

Honestly, the implication that any tech or trend is “wrong” is problematic. Any trend is probably still a choice you could make under the right conditions. Over the years, I’ve heard developers debate about which technology is best and they belittle the ones they didn’t like. I began to notice that tech that was typically undervalued were the entry points in which underestimated developers would come in from other fields. For example, I’ve heard a lot of developers belittling PHP/WordPress developers, and then I’d look around the room and see that’s where the women were. So I don’t trust trends, and I especially don’t trust people who like to point out everyone else who is doing things “wrong.”

But, one trend I particularly don’t like is open office spaces. I’m an introvert who gets overstimulated by too much sound, harsh lighting, etc., and I need my personal space. But it works for some! So I don’t think it’s necessarily wrong, but that it’s ill-suited to people like me. What we need is to be willing to offer other options.

The more we embrace the fact that we’re all different—that we make different choices based on our own preferences or the information we have at any given time—the better off we’ll all be. And the more diverse and welcoming we’ll be as well.

Although it’s not an easy problem to solve, how can people start making a difference in tackling these issues with welcoming diversity—specifically gender bias that seems to be an ever-present issue in this industry?

First, I’d say start asking white men this question! But, really, progress is slow on this front in the software industry because leadership doesn’t care, doesn’t want to change, and/or doesn’t want to give up their power. Research has proven that diverse companies perform better, and yet companies fail to put any incentives behind diversifying their workforce. Diversity starts at the top. If leadership isn’t demanding change, it won’t happen. Underestimated individuals don’t have all the answers. You can’t expect them to do the work for you—they’re already overburdened as it is. But there are people out there who specialize in diversity and can help you and/or your company make progress. Pay them.

Your own career has been very diverse. You have worked with many different technologies, starting with DB management, then backend development, and currently iOS development. What led you through this interesting career path? What challenges have you encountered while transitioning between these very different platforms?

I took a full-time job while still in college, working with a database and programming language called Progress. From there, I was hired to work at Cargill after graduating because I was already familiar with those technologies, and they had a Center of Expertise built around it. I then moved into Perl, working with content management software consulting, traveling all over the world. That led me to middleware, and eventually to Java. I spent over a decade as a Java developer, mostly focused on backend work but doing some middleware and frontend as well. I ended up at a custom dev shop that was technology-agnostic, and I expressed my desire to learn iOS. We ran out of Java work shortly after joining, so they threw me right into an iOS project. I ended up bouncing around between Java, Android, iOS and WordPress projects for a few years, until I realized I couldn’t keep up in all those technologies at the same time, so I decided to focus specifically on iOS. I’ve been a full-time iOS developer since then.

One of the biggest challenges I faced in transitioning technologies was not knowing the right terminology to use. I knew what I wanted to accomplish, but couldn’t find the correct Google terms to get me what I needed. I remember a specific instance in which I needed to have an app read text aloud, and I had a difficult time finding the name of the class to use! It was AVSpeechSynthesizer… not terribly intuitive. Having a mentor around to help “translate” for me was incredibly helpful.

Another challenge, as a mostly self-taught developer, was not knowing generic language terms for talking about programming languages in general. As an example: knowing what a closure means and how that concept is applied in various languages. Learning multiple programming languages allowed me to compare and contrast different languages and the benefits and drawbacks of each, thereby better understanding the one I was currently working in.

For your daily work, how do you start your day off with a bang? Do you have any secret morning routines that set you up for success?

As a fully remote employee, I’ve found that having a morning routine is really helpful to establish my day. I make myself a latte in the morning, eat a small breakfast, and then work out in my home studio. Afterwards, I go upstairs to my office and start my work day. Having a dedicated room or area for work is also really helpful for me.

How do you stay highly productive in your own work, for long stretches of time?

I’m one of those people who works in bursts. There are times where my progress will be slow, because I need time to think things through in my head, or my mind is too busy to process. But then it’ll all come out in a huge burst of productivity. Even though we don’t do time tracking, I personally keep track of everything I accomplish in Trello so I can prove my productivity. It also helps me remember all the awesome stuff I’ve done when it comes time for reviews.

Sarah’s Recommendation

  • Design Patterns: Elements of Reusable Object-Oriented Software | Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides