5 months ago
Develops, documents and maintains architectures, requirements, algorithms, interfaces and designs for software systems.
* With general direction, performs architectural trade studies, contributes to the development documentation and maintenance of software architectures. Participates in internal and external architecture reviews.
* With general direction, provides data, recommendations, and estimates for software component level project planning including corrective action plans. Coordinates and participates in project management reviews and compliance audits.
* Develops Computer Software Units (CSUs) software requirements and algorithms. Defines internal interfaces. Performs requirements allocation between hardware, software, and operators. Participates in requirement team and peer reviews as a presenter and evaluator. Performs CSCU requirements change assessment and provides a technical interface to requirement change-assessment meetings.
* Develops supplier/subcontract performance assessment including appropriate metrics. Makes recommendations of adequacy of subcontractor/supplier technical approach to project lead. Helps resolve programmatic and technical problems that would impact cost, schedule and/or performance.
* Develops, maintains and unit tests code by utilizing software development environments and programming languages in order to implement design and satisfy allocated requirements. Participates in internal code walkthroughs.
* Develops/decomposes, documents and maintains designs for software consistent with the defined architecture and requirements/regulations by applying established methods and practices. Participates in internal design reviews.
* Builds large scale software systems. Leads day to day software integration efforts. Provides guidance to less experienced staff. Troubleshoots and investigates difficult problems across software components. Evaluates proposed solutions to problems.
* For all phases of the software life cycle: develops, selects, tailors and deploys processes and tools; establishes metrics; and utilizes regulations and industry standards. Participates in process reviews.
* With general direction, provides guidance to less experienced employees, performs research, contributes to proposals, documents research and development results and aids technology transfer into programs.
* Provides subject matter expertise on software methodologies and processes to customers, suppliers, application users, and other technical and support personnel. Provides guidance to less experienced engineers. Supports operational and integration issue resolution of regulatory, domain and specific software systems.
Technical degree in a related field of study and typically 5 or more years' related work experience or an equivalent combination of education and experience.
Knowledge and Skills:
* Core Data
* Familiarity with RESTful APIs to connect iOS applications to back-end services
* Familiarity with push notifications
* Experience with performance and memory Instruments
* Unit testing using XCTest
* Completely understands and applies job practices, techniques, standards, principles, theories, and concepts. Possesses general knowledge of other related disciplines.
* Provides technical solutions to a wide range of difficult problems. Develops solutions that are imaginative, thorough, practicable, and consistent with organization objectives.
* Independently determines and develops approaches to solutions. Receives general direction for work that is reviewed upon completion for adequacy in meeting objectives.
* Contributes to the completion of specific programs and projects. Failure to obtain results, reaching erroneous decisions or making recommendations would typically result in serious program delays and considerable expenditure of resources.
* Interacts frequently with inter-organizational personnel and external customers. Represents the organization by providing solutions to difficult technical issues associated with specific projects.