A senior resource on software development projects, the Sr. Software Engineer will lead the development team through the design, development, documentation, testing, and modification of existing and new software applications, championing standard techniques, procedures and criteria. Participate in architecture design, performance monitoring, product evaluation, and buy vs. build decisions. Track and communicate development project status, dependencies, and risks and mitigation strategies to the project team and leadership. Provide technical expertise to the business.
- Execute and/or oversee the following: create low level design documents (including code samples/outlines) and detailed engineering specifications based on complex business, user and non-functional (e.g., performance, reliability, balance and controls) requirements; write code, adhering to standards, procedures and techniques; maintain integrity of existing program logic according to specifications; complete deliverables using the Software Development Life-Cycle (SDLC).
- Partner with the business and project team to gather requirements and fully understand project goals, then use this information to effectively plan and lead the development process. Participate in project design walkthroughs. Evaluate interrelationships between applications and design for effective interfaces between interrelated applications/systems. Appropriately address failure scenarios in design work. Proactively review then plan and execute corrective action in response to production support issues as required.
- Lead the code review process to ensure development work adheres to standards and specifications (including peer review as well as code review external to development team). 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.
- Ensure all code is effectively unit tested prior to being released 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 into production. Approve code to be put into production.
- Provide oversight, mentorship and technical leadership to a development team (consisting of employees, contractors and vendor partner resources) to ensure timely execution of project deliverables (may include direct management of 1-2 employees). Provide governance oversight to ensure adherence to development strategy, standards, tools and procedures. Guide the development teams to consistently apply appropriate development principles and standards during all phases of the development life-cycle.
- Conduct annual asset health and security assessment. Improve health of system assets by identifying enhancements to improve performance, reliability, and resource consumption. Track standards exceptions (e.g., security gaps) to ensure they are addressed in a planful and timely manner. Evaluate, troubleshoot and lead root-cause analysis for production issues and system failures; determine corrective action and improvements to prevent recurrence. Provide implementation/production support as required.
- Maintain up-to-date skills in software development technologies and a broad understanding of the business, business needs, and how applications/assets drive and support the business (understand greater impact of assets/applications and development work). Provide expertise in the selection and implementation of development tools and best practices, as well as recommendations on priority and asset investments. Establish and maintain productive working relationships with business partners and project teams.
*Open to Virtual work arrangements
- Bachelors Degree w/focus in Computer Science, Engineering, Mathematics or related field.
- 7-10 years relevant experience
- 7+ years of experience coding and/or designing in multiple programming languages, including focused experience in relevant/targeted software stack (specific required software stack will vary by position).
- 7+ years of practical experience and proven success with the design and build of complex software applications in multiple environments.
- Experience working with vendor partner (on- and off-shore) resources.
- Property & Casualty Insurance experience.
- Experience working with Application Performance Management (APM) software (ie NewRelic, DynaTrace, Stackify, etc).
- Experience implementing and configuring vendor solutions.
- Experience with insurance processing solutions like those from Guidewire, Duck Creek, etc.
- Superior technical communication skills with proven ability to lead and influence others.
- Excellent communicator (written and verbal).
- Experience with Public Cloud computing (AWS, Azure, etc)
About Our Company
Ameriprise Auto & Home Insurance is a division of Ameriprise Financial, a FORTUNE 500® company. Through exclusive partnerships with organizations such as Costco, we are able to offer their clients our personal insurance products. We offer customers across the nation high-quality, cost-effective auto, home and umbrella insurance products.