Why iOS Developers Feel Stuck In Their Careers & What To Do


We have been receiving messages and questions from iOS developers of all levels asking for advice on how to evolve professionally and financially.

The messages usually start with “I feel stuck,” followed by questions like “Should I learn Android/Backend Development?” This pattern indicates that iOS developers are looking to progress in their careers, which is fantastic! But they end up finding suboptimal solutions, such as deciding to become more “generalized” developers (constantly jumping to new technologies & frameworks). When, in fact, we’ve learned that “specialized” developers (mastering specific technologies & foundational concepts) achieve much better outcomes.

In this article, we have gathered some essential findings from our research and discussions we had with iOS developers to help you progress faster in your career and achieve your professional and financial goals. You’ll learn insights on the following key topics:

  • How unrealistic expectations prevent iOS developers from progressing professionally.
  • The most common challenges and aspirations of iOS developers we meet.
  • What iOS developers can do to prevent and/or overcome these challenges and achieve an enriching and fulfilling career.

1. Beware of setting unrealistic expectations

One of the biggest problems we see that many developers face is setting unrealistic expectations regarding the time needed for achieving their goal.

It is imperative to understand the timeframe required to cultivate a particular skill. Also, realize that everyone learns at a different speed.

In many cases, developers expect to learn a skill faster than the actual time required. Since their expectations aren’t met, they end up dropping the learning process and subsequently stop evolving.

As discussed in the video “#1 Reason Why You Don’t Improve As a Software Developer,” the main reason that developers can’t seamlessly progress in their career is that they prematurely stop the learning process. They stop before the “a-ha!” moments. Before the learning occurs.

Why is this happening? One key reason is setting unrealistic expectations.

For example, we’ve talked to many folks that expected to improve their skills by just reading a book, watching some videos or even, in some cases, by being promoted to a more senior role and taking on more responsibility. That’s rarely the case.

Technical excellence comes through continuous learning, practice, and execution.

It’s imperative to understand that improvement takes time and comes in multiple forms. For instance, if your goal is to learn Test-Driven-Development (TDD), you need to recognize that the learning process itself is a crucial element contributing to your improvement.

Improving your learning i.e., enduring longer learning sessions, learning faster, finding better sources, becoming more consistent, deliberate practice, and applying what you’ve learned, are catalysts for achieving your goals. Although such practices may not refer to TDD directly, they all facilitate the underlying path you need to take to reach the goal of getting better at TDD or any other skill. They refer to learning as a process.

In other words, you can learn how to learn better (& faster).

Another reason why iOS developers stop the learning process is the perception of not having enough spare time currently.

If the time allocated for learning—an essential component in increasing your professional value and financial returns—is perceived as spare, it’s natural to become eager to stop. That’s because spare denotes a surplus or a nice to have. However, in this case, developers are actually dealing with a deficit in their expected value or a must have. Learning needs are a must have because they are identified aspects of your professional skill set that can be improved to generate better outcomes (and rewards!).


In the graph above, you can see how we have highlighted the dip of the green line also labeled “Uncomfortable zone.” That’s the stage where students go through materials, ideas, principles, etc. that are unknown to them. That’s also the stage where growth and productivity seems to fall drastically, so many quit before the breakthrough (green line peak).

It’s common and natural to feel stuck when learning something new. It may even be appealing to stop learning because of the unknown return on investment. “What if I’m just wasting time?” “Will this pay off?”

The good news is that you are not alone or on “uncharted territory.” Advanced topics, such as TDD and Modular Architecture, have been mastered by many developers in the industry. So when in doubt about the return on investment when learning such skills, you can study their careers, articles, books, talks, and see if it was worth it. Also, of course, feel free to ask their opinion if you can!

We often see iOS developers who want better skills and being capable of better results (and rewards!); however, they aren’t aware of how to achieve it. iOS Developers really want a remarkable career, so complacency is not the issue. The lack of investment in learning happens because many times, we just aren’t incentivized enough to justify learning as a rational investment. The immediate short-term happiness and utility we get from allocating our resources to more comfortable or familiar options seem like a better investment (with potential huge long-term loss).

“Learning XYZ is hard. Maybe I should be spending my time doing something more entertaining.”

If you experience such thoughts, don’t feel bad. We can assure you that’s natural. Even the most accomplished students face these kinds of thoughts. They just get extremely good at ignoring them. They actually get enormous satisfaction and happiness by shutting those thoughts down as they’re getting closer and closer to achieving their ambitious goals! These students are experiencing a fulfilling and enriching life.

2. Feeling stuck

We have received dozens of emails and comments from developers feeling stuck in their careers. They come from all seniority levels and a lot of different educational backgrounds, including self-taught programmers, CS degree graduates, and boot camp graduates.

The most prevalent challenges include the following issues:

  • Ineffective cross-team communication with other developers and business/product folks.
  • Being responsible for unrealistic expectations and being blamed for failed results.
  • Lack of free time & resources to invest in functional training.
  • Unrealistic expectations from the business side for dealing with inherited “legacy” codebases.
  • Lack of proper processes when pushing to production.
  • Less qualified professionals being compensated more.
  • Translating iOS specific knowledge to other platforms, e.g., android/backend.

Many developers don’t anticipate to face those issues, nor are they trained to deal with them.

On the other hand, when we asked them to discuss their goals and aspirations, these are the most popular answers we’ve received:

  • Working with teams of more knowledgeable professionals (mentors) that can teach them how to effectively create and maintain a high-quality codebase (short & long-term).
  • Working under great leadership.
  • Working in worthwhile projects with remarkable people.
  • Working in companies that give them space & resources for professional and personal growth.
  • Receiving mentorship that leads to professional and personal growth.
  • Developing skills to become a remarkable developer in the eyes of their peers.
  • Gaining experience to lead a team of iOS developers effectively.
  • Increasing compensation/bonuses/perks.
  • Working under a more flexible schedule and/or remotely.
  • Master software architecture and be able to create large scale apps effectively.
  • Improve technical abilities and efficiency in automated testing.
  • Learn how to work with and improve legacy codebases effectively.
  • Stress less.

We can deeply understand and relate to these problems and aspirations as we have experienced many of them throughout our careers. Many of these items are not related directly to the discipline of programming; rather, they have to do with communication and economics. Programming is just a single activity of the daily multi-disciplined operations in the life of a professional iOS developer.

The way we understand the underlying challenges iOS developers face in their careers is outlined through the following three-layered realization:

  1. “My goal is to build a profitable career building remarkable apps.” (aspiration)
  2. “Many of my professional challenges have nothing to do with building apps.” (realization)
  3. “I don’t know how to deal with such challenges (feeling stuck), but to progress faster in my career, I do know I have to find the answers.” (action)

The faster you go through those phases, the faster you’ll achieve a prosperous and fulfilling career.

3. Getting unstuck: combining technical excellence with real-life business challenges

The common pattern for many iOS developer careers is an initial struggle to get an opportunity in the iOS market, followed by a fairly quick career (& salary) progression, then stagnation as a mid/senior developer.

Many iOS developers are experiencing frustration in their day-to-day professional life, and they feel stuck. They don't know what to do or where to search to get through these challenges. Most importantly, these are not only technical challenges.

Software development is a social activity, and it comes with social challenges too. In a job market with increasingly more participants and more significant challenges, developers that can collaborate well and lead with Empathy, Integrity, Economics in mind will thrive.

We recognized this phenomenon in the professional lives of iOS developers and founded the Essential Developer Academy to provide a solution and accelerate the career growth rate of iOS developers around the world. By continuously studying our most successful students, we have concluded that iOS Developers need two essential elements:

  1. Exceptionally well-thought education integrating technical excellence and leadership to tackle real-life business challenges.
  2. Caring for long-term success equally as the short-term success.

Transforming your challenges into opportunities

The demand for Technical Excellence and Leadership skills in the iOS market is skyrocketing. However, only a few are mastering the skills to tackle those challenges effectively. Ignoring such market needs will lead to stagnation and a massive amount of money left on the table.

When you develop the skills to tackle business challenges and market yourself accordingly efficiently, you become a vital asset to any company striving to adapt and overcome the never-ending opportunities of the business world.

As mentors, educators, and iOS developers, we have been helping many iOS developers break free of salary/market caps and achieve professional and financial independence, with integrity. However, an enriching and fulfilling career doesn’t come easy. It requires dedication, and we’ve learned that, not every iOS developer will do what it takes to achieve their dreams.

To maximize and accelerate your career growth, we recommend you to find mentors that understand what makes successful iOS developers thrive and can help you achieve your best potential. Then, learn, practice, and execute continuously!