Interested in getting paid to build iOS apps? Perhaps you’re already well on your way—you’ve learned the intricacies of Swift and Objective-C, created some personal projects to round out your portfolio, and took tons of leetcode tests.
Nonetheless, trying to plunge into a new career can be daunting, even for new technologists. But fear not! We spoke to a few leading developers to help you understand how to approach your first iOS developer job. It all boils down to this: the more you can focus on learning new skills and upping your development game, the more you’ll win.
What are the best opportunities for new iOS developers?
“I think the most exciting project iOS developers can find right now is the one with an opportunity to practice new approaches presented by Apple, such as Swift UI,” says Serhiy Buchniev, macOS and iOS engineer at MacPaw.
Buchniev also suggests learning about augmented reality (AR) development on iOS, especially with the rumors that Apple will release an AR headset next year: “It is also extremely interesting to work in the field of AR because Apple is putting more and more effort into improving its AR technologies… working with AR developers can be a part of the development of promising technology.”
Greg Orleans, Vice President of Software Engineering at Axxess, says: “Getting into an organization that has a lot of active application development, as well as a solid team of developers, can help accelerate your career. Organizations that are simply maintaining existing applications won’t give you much opportunity to grow and become a more highly skilled developer. In addition, having strong developers that you are working closely with can help any engineer accelerate their learning and growth as a developer.”
What skills do you think new developers should focus on?
“Junior developers should focus on learning their craft really well,” Orleans says. “Take a critical eye to your code or architecture. Are there simpler ways to accomplish a task? Is the code easy to read and understand without comments? Can your code handle large numbers of transactions or large data volumes? These sorts of questions can help you think beyond just getting the code to work and meet the defined requirements.”
In other words, know your fundamentals. Produce good code, comment well, and know how to work effectively with others (i.e., your “soft skills”) to accomplish the team’s overall goals.
Buchniev adds: “Developers should focus on training their abstract and critical thinking, learning how to use documentation, read code written by others, and write small prototypes to understand a complex technological topic. They should also develop ‘engineering pragmatism’ that will help choose such a development approach that will be useful to users and a business in the first place. Speaking of soft skills, knowing how to express thoughts and not hesitating to ask for help will also be valuable in work.”
What does the first 30, 60, 90 days at a new job look like for a new iOS developer?
Maria Holubieva, macOS engineer at MacPaw, tells Dice: “In the beginning, the new iOS developers will be slightly overloaded with new information and learning how iOS development theory is crossed with practice. In a while, they will get to the more or less understandable area where they can breathe out and relax for a while. However, after that, there will be digging into other iOS development areas followed by the same overloading as at the beginning. I think this is a way of growth for any developer.”
Given the pressures and speed at many software-development companies, staying flexible is a must for many newbie iOS developers. “I don’t think the first days for iOS developers are somehow different from what other engineers do at work,” Buchniev assures us. “Developers have two balancing and important tasks during this period. The first one is getting to know people, building contacts, finding themselves in a new team, and understanding the processes. And understanding the product itself, its technical features, style of code writing and pull requests is the second one.”
Orleans says: “The first 30 days is typically getting your bearings in your new role. For example, starting to understand the domain, starting to understand the architecture of the application, and getting familiar with the tools and applications used by the organization.” The next 30 days are often spent “going through the software development lifecycle and understanding all the steps and checks throughout that process. This is also where you will start building relationships with other developers.”
The month or two after that “is typically spent expanding beyond a simple software change into feature development,” Orleans continues. “This entails digging deeper into the code and architecture of the system to understand it more fully. A deeper dive into the domain should also begin at this stage, as it will help inform the developer about how well the architecture and code matches with the domain itself.”
What does a junior iOS developer do, day-to-day?
“Junior developers are typically assigned to work on bug tickets or simple features in the application,” Orleans says. “Typically, a lot of time is spent understanding how the application works and how it is structured, then spending time debugging or stepping through the code and looking for or addressing edge cases. These tasks are usually short in duration, so there should be a constant flow of different challenges to work on.”
What skills do you think new developers should focus on?
“I think the must-have skill for a new iOS developer is building UI with standard UIKit elements,” Holubieva says. “Also, it's crucial to be open to mentor suggestions and amendments and be able to learn from others.”
Orleans echoes this, adding: “Junior developers should focus on learning their craft really well. Take a critical eye to your code or architecture. Are there simpler ways to accomplish a task? Is the code easy to read and understand without comments? Can your code handle large numbers of transactions or large data volumes? These sorts of questions can help you think beyond just getting the code to work and meet the defined requirements.”
Critical thinking is key, especially when studying concepts and documentation written by others. “Learning how to use documentation, read code written by others, and write small prototypes to understand a complex technological topic,” Buchnev says. Newer iOS developers should also embrace an ‘engineering pragmatism’ mindset “that will help choose such a development approach that will be useful to users and a business in the first place.”
How long should a junior developer be in position before they seek a promotion?
“One shouldn’t view promotions as time-based,” Orleans notes, “even though some companies may treat some junior level roles in that manner. One should view promotions as a recognition that someone is performing at a higher level than their current role. Performing at a high level could be in the form of doing your assigned tasks very well, such as writing high-quality code in an expedient manner, or it could be performing tasks above and beyond your expected role. For example, if a junior developer is providing well-thought-out comments on other team members’ code.”
Holubieva says reviews can help you know when it’s time to level up: “Performance reviews will help understand whether a newbie is ready for promotion. I’d recommend starting with two reviews per year, and later the review cycle could be changed to one review per year. The result of the review should depend on the progress demonstrated during the work time.”
Finally, Buchnev agrees it’s not a time-sensitive thing, but says you should give yourself a good six months before worrying about what’s next. “It depends a lot on engineers, their entry-level knowledge and motivation.” Developers can hardly expect a promotion earlier than half a year after starting to work in a new role and place. “However, it all depends on how much they can take on and how successfully can cope with the responsibility. So, in the end, promotion is more about the transition to the next level of a specialist’s complex maturity rather than knowledge of specific technologies.”