What’s the going rate for an iOS developer?

The Context

One of my students came to me and asked me about taking on a contract for a non-trivial app. We’re talking complex navigation, account creation, and animations everywhere. The client was willing to pay a few thousand dollars on the condition that the student sign an NDA and forego taking credit of creating the app. Basically, take a few thousand dollars and strip them of authorship. The central question was, should they do it?

Before I offered a few options, my student brought up an additional point: another senior dev advised them not to do it. My student was told that an app like the one described would go for 20k+. The client was simply taking advantage of an above-average student that had the chops to deliver this app for a fraction of the “real” cost.

What’s the right answer?

This is a real-life scenario of the age-old question: how much should I charge for my work?

There’s plenty of good advice out there. Never work for free. Don’t undervalue your work. Programming is in high demand so you should be ready to charge more, not less.

All of it is good advice that I never found useful because it lacked context. My student presented a complex scenario. Should they make money, even if it’s less than what’s “fair”? How do they measure whether that amount of money is worth if they can’t add the app to their résumé? What’s their value as a junior?

Using back-of-the-napkin math, we concluded that the advising senior dev was correct in their assessment of price. Programming is extremely well paid and mobile development especially so. According to Stack Overflow’s 2020 Developer Survey, mobile development’s median data point is 120k USD a year. That’s 2500 USD a week before taxes; an app that takes 6-10 weeks would be between 15 and 25 thousand dollars. Probably more, since you’d be freelancing it and you have to take into account all of the hidden costs of freelancing.

However, I told the student the hard truth: they are not as valuable as a senior.

Advice is easy to come by

Of course my student is not as valuable as a senior. A senior dev with 7+ years of experience could deliver 10x more than a junior. Intuitively, someone who is just getting into the workforce is less valuable than someone who has so much more experience.

The advice my student got made sense, but it also lacked context because a senior’s worldview is completely skewed. Most seniors have been earning more than 100k USD a year for the past 5+ years. When you’re at the top of your game, having someone come to you and lowball you with a few thousand dollars for a full-fledged app is downright insulting.

My student knows how to code but has no evidence to prove it. Programming professionally is just like building a credit. It doesn’t matter that you’re good and will pay your debt, it’s that you can’t prove it. Taking a shitty credit card in the beginning to build your history is the only solution for some of us.

What should I do?

Advice is easy to come by, but since I was asked, I told my student to request permission to add the description of the app to their résumé. They may not be able to say, “I built app X” but the client may be okay with my student saying “I built an app in category Y with features a, b and c”. This is incredibly important: this app is your shitty credit card. It may not pay well, but it is an investment so that others understand that you can code.

I also recommended them reading the contract very carefully, because an NDA is serious business. I advised they negotiate a rate they felt comfortable with, market price be damned, because in the beginning, any paid work is usually good work.

In the end, I don’t know what the student decided but I felt that other juniors might find themselves in that position of trying to land a high paying job because all they hear is that tech is well-payed. Unfortunately, sometimes you have to start at the bottom, even in an industry as amazing as programming.

If you liked this article, please consider subscribing! I write a weekly newsletter with a 15-minute coding exercise, and additional sections like interviews from members of our community.