Mobile Software Engineer
Be responsible for designing, coding, testing, implementing, maintaining, and supporting application software that is delivered on time and within budget. Work closely with customers, business analysts, technology, and project teams to understand business requirements, drive the analysis and design of quality technical solutions that are aligned with business and technology strategies, and comply with the organization's architectural standards. Provide technical guidance to the development team through the full software life cycle. Responsibilities
Responsible for designing, coding, testing, implementing, maintaining and supporting Mobile Native Applications to be delivered on time and within budget. Work closely with Product owners, business analysts, technology and project team to understand business requirements, drive the analysis and design of quality technical solutions that are aligned with business and technology strategies and comply with the organization's architectural standards. Provide technical guidance to the development team through the full software life cycle. Design & Build
- Create low level design documents (including pseudo code, Guidelines) and detailed engineering specifications based on complex business, user and non-functional (e.g., performance, reliability, balance and controls) requirements.
- Write code, adhering to coding standards, procedures and responsive web design patterns wherever applicable.
- Build Mobile applications implementing Android /iOS frameworks and utilize REST services for interacting with backend
- Program logic according to specifications. Complete project deliverables using the Software Development Life Cycle (SDLC) and/or Agile methodology. Document
- Actively implement automated static/dynamic code review tools , generate code review reports to ensure development work adheres to standards and specifications (including peer review and code review external to team).
- Lead, guide vendor partners to ensure quality of work.
- Write and/or revise system design documentation and operations documentation to include providing required input into operation support manuals and user guides.
- Create and properly archive all project related documentation. Required Qualifications
- Bachelor's degree in Computer Science, Engineering, or related field; or equivalent work experience.
- 5-7+ years of experience coding and/or designing in relevant programming languages (specific required languages will vary by position).
- 5+ years of practical experience and Mastery of object-oriented design methodologies, design patterns and data modeling and usage.
- Experience in designing and implementing large-scale distributed systems software, with particular attention to reliability, security, scalability, and high performance, is required
- Demonstrated experience coding and/or designing in multiple environments.
- Experience with Rest Services, Native Mobile apps XCode/Android, Java, Objective-C, Swift, Kotlin
- Expert level experience with programming language in implementing Objective-C/cocoa concepts like Delegates, Protocols, Categories, extensions, Core-data, Local Notifications, Push Notifications, etc.
- Good understanding on implementing Auto-layouts, Storyboarding and size classes.
- Experience on writing unit test cases using xctest/ocunit.
- Experience with Mobile development is mandatory Preferred Qualifications
- Proven ability to successfully translate client/business needs into software designs.
- Prior experience with agile teams and a strong track record of delivering on time with very high quality
- Proven analytical and business skills to reconcile conflicting objectives and find/design acceptable compromises within existing limitations.
- Understand and apply both current technical solution elements (specific tools, components, and frameworks) and abstract elements (algorithms and architectures).
- Effectively applies technology/engineering knowledge-base to multiple and evolving programs and languages.
- Strategic and innovative thinker implementing new tools/technologies/frameworks.
- Deep understanding of enterprise architecture and system deployment infrastructure About Our Company
With the right company, life can Be Brilliant®. The Ameriprise Financial Technology team mission is to create innovative technology solutions and engaging digital experiences for our clients, advisors, and employees. We embrace an inclusive and collaborative culture that allows us to partner across the business and lend our expertise in the areas of corporate computing, network infrastructure and security. We celebrate the unique qualities and reward the contributions of our talented, passionate employees. If you're motivated and want to work for a strong, ethical company that cares about you and your community, take the next step with Ameriprise Technology and we can Be Brilliant® together.
Ameriprise Financial is an equal opportunity employer. We consider all qualified applicants without regard to race, color, religion, sex, national origin, genetic information, age, sexual orientation, citizenship, gender identity, disability, veteran status, marital status, family status or any other basis prohibited by law.