Job Information
Naviga Inc. Senior Engineer (iOS) in United States
Duties/Responsibilities:
The ideal candidate will have a robust understanding of the iOS platform and be proficient in Swift. You will be responsible for developing high-quality, robust, and scalable iOS applications that provide an exceptional user experience.
Key Responsibilities:
Design and Build Advanced Applications: Develop and maintain advanced applications using Swift and/or Objective-C.
Collaborate with cross-functional teams to define, design, and ship new features.
Unit-test Code for Robustness: Ensure the performance, quality, and responsiveness of applications.
Identify and correct bottlenecks and fix bugs in new and existing applications.
Unit-test code for robustness, including edge cases, usability, and general reliability.
Maintenance and Optimization: Continuously discover, evaluate, and implement new technologies to maximize development efficiency.
Maintain code quality, organization, and automatization.
Technical Documentation: Assist in the preparation of documentation for code and design changes.
Required Skills/Abilities:
Swift and Objective-C
Proficiency in Swift, the primary language used for iOS development.
Understanding of Objective-C for maintaining and upgrading legacy applications.
UIKit
Strong knowledge of UIKit to create and manage app user interfaces.
Familiarity with SwiftUI is a plus as it is becoming more prevalent.
Xcode and Interface Builder
Expertise in using Xcode, Apple's IDE, for developing iOS applications.
Skills in using Xcode’s Interface Builder to layout UIs visually.
Core Data
Experience with Core Data for local data storage and management.
APIs and Networking
Ability to integrate third-party APIs.
Experience with networking libraries and handling JSON data via RESTful interfaces.
Auto Layout
Skills in using Auto Layout to build dynamic and adaptive UIs across different iOS devices.
Version Control
Proficiency in using version control systems, primarily Git, for source code management.
Debugging and Profiling
Ability to use debugging tools within Xcode and performance profiling to identify and fix bugs efficiently.
Memory Management
Understanding of memory management in iOS applications, including the use of Automatic Reference Counting (ARC).
App Lifecycle
Deep understanding of the iOS app lifecycle from initialization to termination.