Becoming a remarkable
Lead iOS Developer


Hello, my name is Caio Zullo, and I am a Brazilian lead software developer and coach based in London, United Kingdom. I started coding for fun back in 1998 and got my first job as a programmer in Brazil when I was seventeen.

My journey on iOS development started in 2009 as one of the first hires of a startup. I was a full stack developer and the business was very pleased with my performance. As the iPhone SDK was taking off at the time, the company’s CEO decided to build native iPhone apps inhouse. I stepped up for the challenge and attended an advanced iOS development training course paid by the company. By my second year, I was promoted to team lead.

At first, I was delighted with how things were progressing. However, I quickly realized that despite being technically proficient as a software developer, I lacked the knowledge and experience to lead a team and consequently achieve the next level for my career.

If you think you are in or heading towards a similar position, please keep reading. I have some valuable insights I'd like to share with you.

After I was promoted to team lead, I made the costly mistake of assuming that my technical expertise would be more than enough to make me excel in this new role. Whenever I met with other team leads in the past, I thought they were just developers who knew how to solve technical problems and write code really well. At least that is what it looked like from the outside.

But reality kicked in soon. Suddenly, I was unable to produce the same level of results in scale. I did not understand why I could deliver results on my own, but could not achieve more with an entire team working together.

Before becoming a tech lead, I used to think that If I delivered my work on time and my peers did not, it was their problem. My image would remain intact. I quickly became aware that this was a terrible mindset for a leader. The team's results reflected first and foremost on me. If I wanted to gain visibility in the company, which I thought I deserved, then we would have to produce scalable and flexible solutions as a team. All the time!

For the first time in my career, I faced stagnation.

Up to that point, I was progressing steadily throughout the professional ladder and I was always reaching for the next step. From junior to mid-level and senior positions, I was really proficient. My technical skills were sharp so working on more difficult problems as team lead should be the natural progression.

However, as it turns out, it felt like there was no natural next step anymore. I thought that was it. “I’ve reached the top,” and it wasn’t as great as I thought it would be. I used to think the only way to achieve more and increase my salary was to change jobs, work harder, longer hours and to commit to more projects. I did all of these as I was craving for that feeling of progression again.

In 2012, I reached my stress limit. My personal life and my career were in total imbalance. It became clear that the course I had taken was utterly unsustainable. Most of my actions were reactive and added no measurable value to the overall business. There were no metrics I could use to quantify the impact of my work and I could not easily justify my decisions. Many times I was micro managing my team to maintain the quality high and didn’t even have time to deliver my own features on time.

You can be very good and very fast, but if you do not know how to work in a team, you become the bottleneck.

No one was talking about those challenges. There were no frameworks or Model View Something acronyms that could save me. I felt alone.

I remember my friends and colleagues were trying to justify what I was going through by claiming that “it's fine,” “that’s how things are,” “software is hard to get right,” and “welcome to the business world.” Luckily for me, I didn't settle for any of the above excuses.

I decided to go against the conventional belief by starting a journey on resolving my problems. I realized that it was time to accept responsibility for what was happening and take ownership of the situation.

I went on a mission to improve my life significantly by reducing stress, going home on time, enjoying the holidays and keep increasing my wage while doing what I loved – solving problems and coding.

My first thought was to go back to a sole senior position, where I could thrive again as a proficient professional. However, that was just running away from the problem.

Stepping down my position would make me financially stagnant. Additionally, the most interesting and worthwhile projects to work on are dependent on people’s collaboration, so working alone wasn’t going to get me anywhere near to professional satisfaction.

Writing clean code was the minimum requirement and no one would pay me more just for that. If I wanted to evolve as a professional and increase my income, I had to learn how to create and lead a highly productive team. I also had to learn how to maximize my team's output based on the available resources while managing risks.

In short, I had to find a sustainable way to make software development scalable.

This was the biggest professional challenge I’ve ever taken and ended up being what I love to do. After hundreds of hours of researching and studying advanced software development and leadership content, it was now clear that being just a good programmer wasn't enough. I had to learn how to create solutions that would have a continuous positive impact on the business. Including when I was absent from the office!

A year later, I had made considerable progress while working in a big multinational company and I started considering about getting a position abroad. A new challenge, where the stakes would be higher, with a better chance of improving my skills and making a significant impact.

I moved to London looking for better practices in a more established market. To my surprise, I was faced with the same problems as I did in Brazil. However, thanks to my newly acquired leadership skills, and my technical background I was able to quickly prove the effectiveness of the techniques I was practicing as a proactive team leader and software developer.

Within a year, I had my salary doubled.
A year later, doubled again.
Today I’m earning 5 times the salary I was making in the big multinational.

I haven’t reached the limit yet.

This course is the result of a seven year investment through research and practice on an array of disciplines, given in a set of structured processes that otherwise can  be costly to develop. What I want to present you is a methodology that will help you create a growth mentality, increase your income, create outstanding projects, collaborate with ease and maintain the passion for your job. If you have trouble with estimations and time management at work, if you are uncomfortable handling expectations, and do not feel confident scaling your work as a software team lead, but want to step up your career, this course is for you.


iOS Lead Essentials

If you want to:

  • Increase your income as a software professional and learn how to lead teams in a lightweight, results-oriented way.

  • Create daily disciplines that prevent you from being pressured by superiors or customers when the project deadlines are unattainable.

  • Learn how test automation and good software architecture practices can help you achieve results even in short deadlines and unfavorable situations.

  • Avoid the hardship and hassle generated by the fast pace of requirement changes.

  • Find out what companies really expect from a developer and how to meet these expectations and evolve your career.

  • Apply techniques for reducing development costs and gaining prominence in your company.

  • Develop the socio political and economic skills seen as imperative to any professional growth after a certain level.

  • Understand how to create a solid positioning within the corporate hierarchy of your company and defend your work in a healthy way.

  • Improve the creation of a growth mindset and become unshakeable in the face of day-to-day problems.

  • Learn how to analyse the current cost of a project and propose practical ways for reducing it using proven processes and architecture.

  • Create respect for your work with peers and superiors.

  • Learn how to effectively say no to unrealistic deadlines by being able to provide achievable alternatives.


Testing Automation demystified


Turn your tests into a powerful tool to improve the quality of your work


"I was hugely impressed by Caio's ability to look at code and see through to the core of the problem. It was a joy to watch him develop using TDD and SOLID principles. The resultant code was always elegant and invariably worked when he stopped writing tests and finally started the simulator."

– James Hogg, Senior iOS Developer


"Mike always strives to find a clean solution by carefully designing each required system, taking into consideration all the unhappy paths and edge cases. What’s great when you work with him is that testing becomes mandatory and actually enjoyable."

 — Fragi Katsimpas, Senior iOS Developer

Build robust applications


Effectively develop and maintain resilient apps with good architecture


"Caio has a wide knowledge of software best practices that gives him the ability to create simple and efficient solutions. He was able to clearly explain the principles and approaches to the team, applying them in a pragmatic way to a complex set of challenges, with a comprehensive test suite that ensured delivery of a stable and maintainable code base."

— Phil Heenan, Mobile Team Lead

Increase your market value


See how others succeeded and bend the learning curve in your favor


“Mike’s teaching was simply amazing. He provided me with daily tasks, and step by step I progressed from simple object-oriented programming ideas to advanced design patterns and effective architecture principles. I learned that in order to develop great apps and advance my career, I had to start writing clean code. I wouldn’t be as successful and valuable to companies as I am today without Mike’s help.”

— Nickolas Maniatis, iOS Developer

Take your skills to the next level


See first-class engineering solutions applied to real products


“I’ve been developing software as my job for two decades now, and it’s been my obsession for another 10 years on top of that. I worked with Caio on a big refactor for our client’s project and because of working together, I became a much better developer.

Looking back, I can see that before working with Caio, what I knew about was how to paint and plaster and saw and hammer really damn well. Thirty years of stubbing your thumb is a lot of practice. But I didn’t know how to design a house, or a tower, or a city. Or how to run the project to get it done effectively, on time, and to best match the client’s desires with the available resources.

If you want to develop excellent code for your client, Caio will set you walking on the right path of learning.”

— Benjohn Barnes, Senior iOS Developer


What our viewers think

Our Guarantee


If you're not amazed by the quality of this course send us an email at any time during the 30 days following your subscription and we will refund 100% of your payment. We only want happy and satisfied members in iOS Lead Essentials. If you are not satisfied with the results, we will be happy to reimburse you.


Join iOS Lead Essentials today and get:

+ Access to Exclusive Forum for Questions and Networking

We want to connect all developers that share the same mindset and have similar goals. In this exclusive group you will have the opportunity to connect with professionals around the world, find new opportunities, and share your knowledge, experience and background. Not only that, you will be able to learn from their experiences and ours as well, since Mike and me will be participating in the group.

+ Q&A with Caio and Mike during the Course

We know that during the course, several doubts will come up. That’s why Mike and I will make Q&A sessions. You can interact directly with us and with the other members.

+ Guaranteed Access to the Next Course (2019)

All the members of this course will have guaranteed access to the next course, to be released in 2019, including all the features and bonuses combined.

This course was created for those who want to transform their career. If you are tired of paying for random courses, videos, and ebooks, do not miss out on this opportunity.

This is a complete solution that will help you become a lead iOS developer. We developed this course so that it is focused on the person, not languages or frameworks. The technology and platforms change over time, but the fundamentals of a leader will remain.


Meet your instructors


Caio Zullo

I've been writing software since 1998, professionally since 2006, and on Apple platforms since 2009. I love building robust, well-engineered, and beautiful applications and coaching developers to achieve their best potential.


Mike Apostolakis

I'm a software engineer from Athens, Greece. My goal is to help the software industry evolve by enabling developers and companies to practice valuable techniques and build powerful and durable systems.

© Essential Developer Ltd. All rights reserved.