Marina Gornostaeva profile image

Marina Gornostaeva

Professionally enjoying iOS development since 2011 💆‍♀️ maintainer @SayTheirName_io | co-organizer @CopenhagenCocoa | mentor

Twitter Site

How and when did you get into programming? And into iOS?

Growing up, I was exposed to STEM a lot. My mother studied computer engineering and worked as a programmer, so I had a great example. She'd make educational video games for me when I was little, and when I got older, I watched my mom work on software gigs in the evenings. She mostly made ed games for children, so it was always engaging to observe and I could soon understand what was going on.

So my interest in programming and computers in general started early. I wrote my first BASIC program at 11, and by 15 I was already a Linux nerd. When it came to university, I knew I wanted to go into computer science, and ended up studying Applied Mathematics and Computer Science.

First few years I had some software dev gigs and gigs teaching kids programming. When on the 4th year (in 2011) I decided it's time to find a full time job, I put my eye on a local mobile development agency called iD EAST. It was one of the biggest in Russia and had serious clients. I passed the interviews with a test assignment in C#, and had a choice between starting as an iOS or an Android developer. I knew pretty much nothing about either of the platforms (I had a Windows phone at the time). I chose iOS only because I knew C and C++ well, and almost didn't know any Java.

I think it was a very lucky choice, and I have never regretted it since :)

Wow, that is quite a road to iOS 🙂 Do you remember what was learning ObjC and iOS in general back then? Was it easy to find good resources?

Back when I was starting, we relied a lot on books and the official documentation. My learning of iOS development started with the book Programming in Objective-C 2.0 by Stephen G. Kochan. I definitely spent the first couple of weeks wrapping my head around the syntax!

For iOS SDK topics we mostly referred to the official documentation. The so called programming guides were so good and detailed. Most are now marked as archived, and I feel that nowadays it's harder to get a full overview of any given technology, such as the view controller infrastructure. On the other hand, the Apple dev community has grown so much in the last decade, that there are lots of alternative ways to learn :)

Oh right, kind of wish I were around to witness this state of the documentation. Just yesterday I was trying to look up some things and got a few "No overview available"..

What was the switch from ObjC to Swift like? Do you remember what were your first impressions?

I was curious about Swift when it first came out, but at first it was going through an infant stage, much like SwiftUI has. I was working on a product that was an SDK, not an app, and we couldn't use Swift yet without dropping support for older iOS versions. I really liked Objective-C (I've been using it for 5 years by then), so frankly I wasn't very sad that we couldn't jump onto Swift right away.

In 2016 I had a month-long break before starting the job at Mofibo, so I had a chance to dive into Swift properly while working on a pet side project. The Swift Language Guide was my summer read, basically. I got to love the language, though it took some adjustments to the mental model to incorporate the power of value types, enums, generics. I've been predominantly using Swift since then, and I miss these powerful features whenever I have to work with older codebases that still use Objective-C.

Got it! Sounds like you narrowly missed the switch from Swift 2 to Swift 3, which many people seem to have scars from.. You have been doing iOS for a decade now. Is there something that (surprisingly) did not change during this time?

The first thing I had to do at Mofibo is upgrade a large project from Swift 2 to Swift 3, so I didn't manage to escape it either :) Core Data has been largely the same, and I'm hoping Apple will surprise us with a modern alternative that would feel more at home with Swift and SwiftUI.

What's the origin story behind itsxcode.app? 😃

After Mofibo was acquired by Storytel, the teams started growing. As a lead developer I was in charge of hiring, and I've seen hundreds of iOS developer CVs over the years. A large share of them had Xcode misspelled, and I see it over and over also in articles and even sometimes in documentation for popular tooling.

A mobile developer is expected to have good attention to detail, so misspelling the name of the tool you use daily can be seen as a red flag. So I decided to do something about it, and I figured it should be something visual and fun. The design was inspired by goshdarnblocksyntax.com and goshdarnifcaseletsyntax.com.

Are there other frequent "issues" you see in CVs? Or maybe any tips how can developers improve their résumés?

Interviewers build their first impression off of your CV. Going into the first interview, the interviewer might have different mindsets - anything from expecting you to prove yourself to be fit for the position, to hoping to convince you to like the position and the company. So I have one tip - make your CV look as impressive as you can (while still being truthful of course). The more excited the interviewer is about your candidacy, the more relaxed the interview will be.

Everyone lists skills and past job experiences, so it's not enough to stand out. Every little bit counts and adds up to build the first impression: make sure to add links to the apps you worked on, have clickable links to your GitHub, StackOverflow, etc - even if there's not a lot there. Don't include social media links unless you post about professional things. Mention recently attended conferences, if you're a regular at the local CocoaHeads, what professional books you recently read. If you feel you don't have enough experience for the position you're applying to - make sure to write a relevant cover letter (cover paragraph).

You do quite a bit of mentoring. How did this get started?

I've been mentoring junior developers at work for quite a long time, that's part of senior developer's job. At one point I realised that I can make a bigger impact if I don't limit myself to helping only one or two colleagues at work. So I signed up to a mentorship program where I got matched up with someone looking for a mentor. Nowadays people just reach out on Twitter or email, and I try to help with some advice even if I can't take on new long-term mentees.

I am also curious what the mentoring looks like? It is mostly about code or also about other aspects of being a dev?

I always start with a conversation about your journey so far and your goals. Ofter people want to level up, or find the first full time job, or navigate a new role. Sometimes it's about code, about challenges with interviewing, or dealing with situations at work, or career advice. It's so individual. That's what I like about it - everyone is so different, and if I can help someone in their journey, even a little bit - that makes me happy. And sometimes you even make friends along the way!

I have been planning to try a new mentorship arrangement for those who want to level up their dev skills, where you work on your own idea, with some oversight and feedback from my side. This project could then be shared publicly on GitHub as part of your open source portfolio. Soon I will have the first mentee start this, and hopefully this turns out to be helpful and can even be scaled to help more people :)

That's sounds like a nice approach! Do you maybe have some tips for senior developers how to start mentoring outside their company? Maybe via the mentorship program you used in the beginning?

Unfortunately that program does not exist anymore... I am not aware of anything like it going now. There are websites for mentor matching, but I haven't heard of them being popular in the iOS community. I can recommend reaching out to other mentors, so they can refer new mentees to you - there's always more interest than one can handle! Also post on Twitter. Make sure to start small with just one mentee and see how it goes. Mentorship requires some of your time, so it's important not to over-commit and take it at a sustainable pace :)

You have a magic wand... and can change one thing about iOS development. What?

That's a really interesting question! I wish that learning iOS development was more accessible financially. In many places the price of a good MacBook corresponds to a few average monthly salaries.

Yeah, it would be really nice if Apple tried to address this with some new machines that are more affordable. To step away from iOS and code. What do you do to relax?

I like to play board games with friends and watch TV shows. I also like to travel, now just exploring nearby locations - Denmark is awesome :)

Nice! Thanks so much for taking the time! Do you want to give someone or something a shoutout?

Thank you Filip! It's been so much fun chatting with you. I'd like to take a moment to appreciate the amazing iOS community and everyone who's making it better every day 😊

Other chats

All chats