Job Details
Experience Needed:
Career Level:
Education Level:
Salary:
Job Categories:
Skills And Tools:
Job Description
About the Job
We are looking for an iOS Developer who possesses a passion for pushing mobile technologies to the limits and will work with our team of talented engineers to design and build the next generation of our mobile applications
Responsibilities
- Build native iOS applications in Swift/Objective-C;
- Write native mobile applications using best techniques, design patterns and industry standards;
- Deploy iOS applications to the iTunes App Store;
- Participate in development of mobile application design;
- Collaborate with business analyst and mobile UX designer to determine detailed tasks;
- Provide required application development and support for mobile apps;
- Work with technical leads to determine the system integration design;
- Communicate risks and issues to project and technical management teams;
- Work with the testing team to find and resolve defects;
- Work with Project Managers to help determine timelines and project tasks;
- Work with QA team and developers to diagnose and resolve performance related problems;
- Responsible for creating and documenting systems designs and architectures.
Job Requirements
Requirements
- Proven working experience in software development
- Working experience in iOS development
- Have published one or more iOS apps in the app store
- A deep familiarity with Objective-C and Cocoa Touch
- Experience working with iOS frameworks such as Core Data, Core Animation, Core Graphics and Core Text
- Experience with third-party libraries and APIs
- Working knowledge of the general mobile landscape, architectures, trends, and emerging technologies
- Solid understanding of the full mobile development life cycle
Core Skills:
Coding - handles coding responsibilities including the ability to:
- Understand code at their level independently
- Properly document code
- Follow coding standards
- Engineer sections of code independently and subsystems with guidance
- Create tools to be used by the team
- Refactor code at a sub-system level
Ownership - takes accountability and ownership for work:
- Being responsible for understanding work before commencing
- Following through on a task to completion
- Handling responsibility beyond the explicit for his/her own tasks, bugs, and designs
- Being proactive in addressing unforeseen issues
Technical Design - designs/develops effective technical designs that:
- Are written to the level of expectation of code responsibility
- Accurately estimate times for his/her tasks
- Include resource maps and optimization plans on a sub-system level
- Assess risks for tasks on a system level
- Identify missing aspect of a design, particularly at the sub-system level
- Identify missing aspects of someone else’s design
- Apply techniques of object oriented design and meta-programming
- Anticipate problems in their own area of code
- Include the interface design with some guidance
- Take into account methods of automatic testing
- Identify the need for tools ahead of time
Debugging - fully debugs familiar and unfamiliar areas of his/her own code, other’s code (of similar level), and higher-level code (with limited guidance).
Debugging responsibilities include:
- More consistent use of exception handlers to track down problems
- Basic understanding working with and debugging assembly
- Use of profiling as a standard step
Time Management - looks for ways to save time, including:
- Multitasking
- Helping the broader team identify high risk tasks so they can be scheduled early
- Effectively prioritizing tasks