The Senior Mobile Developer reflects the mission, vision, and values of NM, adheres to the organization's Code of Ethics and Corporate Compliance Program, and complies with all relevant policies, procedures, guidelines and all other regulatory and accreditation standards.
The Senior Mobile Developer will be part of an agile team delivering mobile solutions.
* Design, specification, implementation and testing of software in an agile development process
* Software integration and customization
* Creation of technical documentation
* Diagnosis of problems and performance analysis
* Hands-on coding as well as mentoring developers.
* Assist in onboarding and training new team members.
* Contribute to the vision, roadmap, and open source plan for all applications, libraries, modules, and tools built.
* Participate in grooming sessions with product owners to give technical input and time estimates
* Provide senior level support in project, ad hock status / issues meetings and conference calls.
* Ensure business needs are being met and our organization is prosperous; that means sometimes jumping on high priority projects that may be unrelated from platform work but require the help of the application platform team.
* Prepare specifications, design, develop, and support mobile applications and prepare documentation per NM mobile standards and best practices.
* Assist in assessing and optimizing designs through review, evaluation tools, and analysis to ensure optimal user experiences for all device types.
* Work closely with Product Teams to ensure technical specifications are accurate and implementable, and ensuring code base is solid by conducting thorough code reviews.
* Work with Product Owners to influence and implement the vision of the mobile product at NM.
* Collaborate with cross-functional teams (UI/UX, product, analysts) to define, design, and ship new features and products.
* Participate in capacity planning for fiscal project initiatives and services requests.
* Provide support and guidance to the team regarding their operational and project assignments.
* Keep team resources focused on release items related to the fiscal year project list and service requests.
* Design and develop mobile applications/components based on documented requirements
* Senior level experience developing and releasing commercial mobile apps
* Must be able to think analytically to analyze requirements and design a logical, maintainable framework for all new features before starting to code
* Debug and do root cause analysis of critical business and production issues.
* Solid understanding of techniques and best practices for documenting code inline and writing supporting documentation.
* Expert level knowledge of RESTful APIs and connecting applications to back-end services (REST, SOAP, JSON), ETL jobs, and APIs (service-oriented architectures)
* Solid understanding of how to implement and architect multi-threaded and distributed multi-tier systems.
* Experience designing strategies and implementing unit-tests for robustness, including edge cases, usability, and general reliability.
* Experience architecting and writing code to improve performance and optimization of existing applications and tools.
* Experience developing and maintaining CI/CD pipelines to build, test, and deliver application artifacts.
* Experience configuring and deploying software debugging tools for development teams (debuggers, loggers, crash report tools).
* Participate in creation of scope statements and specification documents.
* Set guidelines and maintain adherence of the team to update development tracking tools, coding standards, and source control repositories with proper branching strategies.
* Create internal process improvement initiatives within team's toolsets and workflows.
* Must have expert level knowledge in one of the following technology areas: Swift, Objective-C, iOS SDK, XCode or Kotlin, Java, Android SDK, Android Studio
* Bachelor's degree in Computer Science or 4+ years of developing and engineering applications as a full-stack and/or mobile developer.
* Proficient with Objective-C, Swift (3+ years), Xcode IDE, and Cocoa Touch
* Proficient with Android Development and frameworks
* Experience with iOS frameworks such as Core Data, UIKit, Core Animation, Grand Central Dispatch, NSOperation, Background Operations, and Foundation Libraries
* Understanding of Apple's design principles and interface guidelines
* Experience releasing mobile applications to AppStore Connect for deployment to the App Store or TestFlight
* Experience with performance and memory tuning with tools such as Instruments
* Familiarity with cloud message APIs and Push Notifications setup and implementation
* Solid understanding of object-oriented development and MVVM design pattern
* Familiarity with RESTful APIs to connect iOS applications to back-end services (REST, SOAP, JSON), ETL jobs, and APIs (service-oriented architectures)
* Working experience with Agile planning and development methodologies, continuous integration, and continuous delivery
* Experience using Kanban board tools like TFS, BitBucket, or GitHub
* Experience with test-driven development using XCTest & OCMock.
* Experience integrating 3rd party SDKs
* Experience with offline storage and multi-threading
* Experience with Security Protocols: SSL and Security Mechanisms like Client certificates, Basic Authentication, Authentication Tokens, OAuth and OpenId
* Demonstrable portfolio of released applications on the Apple App Store and Google Play
* Knowledge of other web technologies and UI/UX standards a plus