Contribute to software development activities by developing, documenting, testing, modifying, and maintaining new and existing software applications. Apply standard techniques, procedures, and criteria to the development life cycle. Bring application(s) and technology expertise to the specification and design development process. Provide technical expertise on assigned applications, to include interfaces and interrelationships, with other applications and systems.
Apply applications expertise to participate in the design process of new and existing applications/programs (including feature and functionality planning), and then write new program code based on defined specifications and programming standards. Modify code, test, and troubleshoot existing programs applying the appropriate hardware, database, and programming technology. Analyze end user data and business needs to format final product and assure user-orientation and optimal program/system performance.
Maintain and modify programs/software. Implement approved changes by amending flow charts, developing detailed programming logic, and making changes to code. Write and maintain development/programming/systems documentation, as well as operations and user guides (as required). Document development/programming problems and resolutions for future reference.
Analyze performance of programs and take action to correct deficiencies based on consultation with end users, Business Analysts, and senior development team members. Provide input to prolong application life or recommend replacement. Confer with senior development team members to gain understanding of needed changes or modifications of existing programs. Assist in resolution of questions of program intent, data input, output requirements, and inclusion of internal checks and controls.
Effectively unit test all code and programs prior to releasing them to the quality assurance (QA) team. Resolve all unit test issues in a timely manner. Collaborate with the QA team to identify test cases and create/mine test data to enable a thorough test of all development deliverables. Respond to all inquiries and issues in a timely manner as the developed code/program moves through the testing process and ultimately into production. Provide implementation/production support, as required.
Support the installation planning for application program requirements. Support the end-user and technical operations staff, as required. Assist senior development staff with the integration of technology within and across the capability domains.
Evaluate and thoroughly understand sophisticated interrelationships between assigned applications and systems, such as whether a contemplated change in one application would impact or cause unwanted results in a related part of that application or other applications/systems. Proactively provide subject matter expertise regarding assigned application(s) to other members of the technology and business teams to ensure quality and minimize impact on other applications and business processes.
Act as a resource to junior development staff regarding technology, methodologies and standards. Proactively share knowledge and collaborate with development team members, Business Analysts, and Technology Operations to assure quick and effective responses to customer needs (internal and/or external). Maintain up-to-date business domain knowledge and technical skills in software development technologies and methodologies.
Education: Bachelors degree or equivalent (4-years).
Experience: 3-5 years of relevant experience.
Degree focus Computer Science, Engineering, or related field.
3+ years of experience coding in relevant programming languages (specific required languages will vary by position), while providing a deep understanding of programming languages and procedures.
3+ years of experience developing and maintaining programming/systems documentation and technical instructions in the use of programs and/or program modifications.
3+ years of experience coding in multiple environments.
Solid understanding of the Software Development Life Cycle (SDLC).
Adept at processing computer data and formatting and generating reports.
Demonstrable ability to be successful in a multi-sourced, multi-vendor environment.
Excellent oral and written communication skills along with logical, analytical and abstract thinking skills.
At Ameriprise Financial, we're not just in the business of helping clients with their financial goals - we also help our advisors and employees reach their true potential by embracing an inclusive and collaborative culture. 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 Financial.
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.