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 specific applications and technology expertise to the specification and design development process as required. Create system and operating documentation. Receive technical guidance and day-to-day direction from Software Engineers and Sr. Software Engineers.
Write new code using prescribed specifications and design documentation in accordance with programming standards. Modify, test and troubleshoot existing programs/software utilizing the appropriate hardware, database, and development/programming technology. Analyze end user data and business needs to format final product and ensure user-orientation and optimization of program/system performance. Contribute program and domain knowledge to feature and functionality planning.
Maintain and modify programs/software. Implement approved changes by amending flow charts, develop detailed programming logic, and make 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.
Effectively unit test all code and programs prior to releasing them to the quality assurance team. Resolve all unit test issues in a timely manner. Assist the quality assurance team in identifying test cases and in creating/mining 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.
Analyze performance of programs and make recommendations to correct deficiencies. Provide input into decisions regarding prolonging application life or replacing. Confer with senior development team members to gain understanding of needed changes or modifications of existing programs. Participate in resolution of questions of program intent, data input, output requirements, and inclusion of internal checks and controls.
Evaluate and understand simple interrelationships between programs 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. Lend knowledge of assigned application(s) to other members of the technology and business teams to ensure understanding of interrelationships and dependencies. Participate in solution design to ensure quality and minimize impact on other applications and business processes.
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.
Bachelors degree in Computer Science, Engineering, related field, or equivalent relevant work experience.
1-3 years of relevant work experience required.
1-3+ years of experience coding in relevant programming languages (specific required languages will vary by position), gaining an understanding of programming procedures and best practices.
1-3+ years of experience developing and maintaining programming/systems documentation and technical instructions in the use of programs and/or program modifications.
First level knowledge and demonstrated technical ability to code in multiple environments.
Basic understanding of the Software Development Life-Cycle (SDLC).
Object Oriented Development, such as Java (varies significantly by position)
Knowledge on Python/Shell/J Scripting/Groovy languages
Bachelor's degree in Computer Science, IT, MIS, Math or related field; or equivalent work experience.
Proved ability to communicate ideas, issues, and recommendations clearly and persuasively
Ability to work occasional evenings and weekends to aid the team in providing 24x7 support/weekend support.
Experience and ability with entire Microsoft Office suite.
Must have troubleshooting skills
Hands on knowledge on Jenkins/Bamboo, Bitbucket, Blackduck, SonarQube, Artifactory, Deployment Tool.
CICD pipeline setup and maintenance knowledge
Familiar with Cloud Resources monitoring.
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.