How To Become A Professional iOS Developer

Written by Reinder de Vries on June 13 2018 in Careers

How To Become A Professional iOS Developer

I could tell you that this is how you get a job as an iOS developer:

  1. Make a GitHub profile and contribute to OSS projects
  2. Sign up for Twitter and pitch in on relevant conversations
  3. Update your LinkedIn profile and your curriculum vitae
  4. Find and talk to potential employers, clients and/or recruiters
  5. Practice for the technical coding interview
  6. Go to networking events and talk to career coaches

Even though every one of these items is good advice for job seekers, it’s also just a checklist. Any decent developer can tick off these boxes. What makes your work yours?

This article shows you how you can do original, professional and career-defining work. If you’re looking for a checklist, you’re looking for an excuse to be unoriginal. And that’s not going to land you that next project!

Here’s how to become a professional iOS developer:

  1. Build your app portfolio
  2. Gain real-world experience
  3. Deliver beyond spec

Let’s get started!

Build Your App Portfolio

The first step to becoming a professional iOS developer is to understand that your portfolio is a crucial component of your work.

It’s as important as your professional reputation, keeping your tools sharp, and learning new things every day.

Your app portfolio is the culmination of your work. They are carefully crafted projects, over the long term, that you carry around as a badge of accomplishment.

When you interview with a potential employer or client, your portfolio can do the talking for you. You can fold it open in front of the interviewer and say: “Look, I did this great work. I’d love to add your project to the list.”

You won’t merely add it to the list. You seek to start a collaboration that results in work that’s more than good enough to belong in your portfolio. To do your work, you need your employer or client just as much as they need you.

An app portfolio is more than a collection of app screenshots. Here’s what you should highlight:

  • Technologies, tools and techniques you’ve worked with (including ones unrelated to app development)
  • Insights you’ve gained, like subject matter expertise or “skill multipliers” (more on that later)
  • Experiments, try-outs, studies, and finished-but-incomplete work

Your curriculum vitae (CV) should list former employers, your education, and a quick list of tools and techniques, so the interviewer can scan those and tick the appropriate boxes.

Some interviewers just want to check boxes. Do you have 3 years of experience with Swift? Check. Do you know unit testing? Check. Can you speak English? Check. Do you have a pulse? Check.

This makes the interviewer feel safe, because they’re afraid of hiring the wrong person and losing their job. They missed out on the inescapable truth that a good hire is not someone who merely checks all the boxes.

This hiring process is changing, but the reality is: interviewers will hang onto that checklist for a while longer.

Now that you know, you can either make sure you check the boxes, and use it as a first step to do original work. And of course, you can seek out companies and interviewers that value independent thinking and original work.

Back to your app portfolio. A portfolio is a chance to showcase your best work. But what do you do if you don’t yet have any work to showcase?

You make work worth showcasing. It’s that simple. In fact, “make work worth showcasing” is a damn fine approach to building a professional career!

Let’s look at a few misconceptions about portfolio projects:

  • It needs to be paid work (no it doesn’t!)
  • It needs to be only your best work (nope, your worst is fine too!)
  • It needs to be for big-time clients and employers (no, “small” is OK too!)

Some of the best app development work I’ve done in the past 10 years wasn’t for the biggest clients on my CV. I learned a lot from working on my own failed startup ideas, that I made no money with whatsoever.

Every app in your portfolio gives you the opportunity to connect with a potential employer or client. The first step is to do work that’s worth showcasing. Take it from there: put it on your website, on your CV, and tell its stories to those you seek to serve with your work.

Become a professional  iOS developer

Get started with iOS 12 and Swift 4

Sign up for our iOS development course Zero to App Store to learn iOS development with Swift 4, and start with your professional iOS career.

Gain Real-World Experience

Let’s look at a typical job posting for an iOS developer:

  • At least 5 years of experience as a software developer
  • Experience with Swift, iOS, CocoaPods and XCUnit
  • Experience with “agile” and scrum
  • Experience with unit testing, mocking and stubbing
  • Knowledge of “clean architecture”
  • Knowledge of security

It looks like a fair deal, right? They need someone who can deliver. A developer with enough experience. Someone who takes input and produces output.

But what does it mean to have experience and knowledge? I think the above job posting should have said:

  • We need someone who’s built enough apps to understand our business’ needs and desires
  • She should tick the boxes on whatever tools, frameworks and technologies she thinks are best to complete the work we require of her
  • You need to be independent, autonomous and in control

And it also should have said:

  • We need someone who has written spaghetti code before, tried to unit test it, failed, f*cked up the project, and now knows how to do it better
  • We need someone who doesn’t hide behind “clean architecture”, but a developer who can explain to us why the app is built like this
  • When the app has a security breach, we need someone who can take responsibility and fix it
  • We need someone who can ask the right questions, and tell us the best answers

It’s not about experience, it’s about real-world experience. As a career-oriented iOS developer, you need to ask yourself what it means to have gained experience.

Make lots of mistakes! That’s the only thing you need to do to gain real-world experience. Mistakes lead to insights, and insights lead to innovation, and innovation leads to progress.

The difference between a junior and a senior developer isn’t measured in years, but in the willingness to make mistakes.

A senior developer will look at a problem from different angles, try out different approaches, and then succeeds in coming up with the best answer. A junior developer will merely do what he’s told, while avoiding mistakes. And they often need constant oversight.

The problem in the software industry isn’t that there aren’t enough senior developers to mentor the juniors. The problem is that no one taught the junior developers to think like seniors.

When you do work worth showcasing, you almost immediately gain real-world experience. Unless you avoid making mistakes – so don’t do that.

Start with a first app project that resonates with you. Test out different approaches, hypothesize what might work, and then try it out.

  • Did it work? Great, keep it!
  • Did it fail? Great, fix it!

You want to test what works, make mistakes, fix those mistakes, and repeat the successes that you found. It’s quite literally the recipe for life.

Deliver Beyond Spec

When you do work that follows the specifications, your employers and clients can find someone else who can do that same job cheaper.

What’s keeping your employers and clients from doing so, is the cost of change. They are used to working with you and it takes too much effort to replace you. Until it doesn’t.

Marketplaces like Upwork, Freelancer.com, Toptal and 99designs make it easier than ever to hire good developers that deliver good projects. Some of these developers have modest expenses, so they can afford to price themselves lower than you. It’s a race to the bottom.

I tell myself that those developers can’t do what I do. But is that really true? And what is it that I do, anyway?

Recently I explained to a freelance client that they don’t hire me for iOS development services. They hire me to think critically, and to communicate. Writing code is just one of the things I do. What I really do, is make insightful decisions on their behalf.

What does it mean to deliver beyond specifications?

  • Make a functional and technical design before you start coding
  • Explain alternatives and choices in an insightful way
  • Take your client, employer or team on a journey towards a result
  • See your work through the eyes of another person

Of course you bring your skills, expertise and experience to your work. It’s not that anyone can code apps. But now that some of us can, and some of us can code cheaply – why should we hire you?

A simple way to deliver beyond spec, is to develop a skill multiplier. As an iOS developer, you can…

  • … learn about UI/UX and build apps with better usability
  • … learn about marketing and help make change happen
  • … learn about business, and understand that apps need to make money
  • … learn about any subject matter, like finance, life science, education, and use it to create apps that fit the needs of its users better

I like to think of the skill multiplier as an asset that appreciates in value over time. The more insights you gain in your field, the better you become:

value = iOS x [skill multiplier]

The same is not true for just iOS development. Other developers are more skillful than you are, and they know more than you, and they learn more than you. Working harder and learning faster isn’t an option when everyone is racing to the bottom.

When you bring another skill into the equation, it’s suddenly much more difficult to replace a skillful developer who combines iOS development with marketing, UI/UX, business, etcetera.

Further Reading

You want to tell a potential employer or client the story of you.

You start by doing work worth showcasing. You gain real-world experience by doing so. Now you know that’s what really matters to a client or employer. When you do your work, you deliver beyond spec.

It’s not a replacement for traditional career advice, like polishing your CV and contributing in your field. It’s an extension of those things. Because when everybody can do what you do, the bar raises for all of us.

And that’s exactly where you can make a difference.

Reinder de Vries

Reinder de Vries

Reinder de Vries is a professional iOS developer. He teaches app developers how to build their own apps at LearnAppMaking.com. Since 2009 he has developed a few dozen apps for iOS, worked for global brands and lead development at several startups. When he’s not coding, he enjoys strong espresso and traveling.