The Software Engineer position is responsible for developing innovative technology solutions needed to support critical Investment Management business applications. In this role you will 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. **Locations: Boston, MA OR Minneapolis, MN
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 that adheres to coding standards, procedures, and techniques. Maintain the integrity of existing program logic according to specifications.
Actively participate in the code review process to ensure development work adheres to standards and specifications (including peer review and code review external to team). Ensure the quality of work completed by vendor partners. Write and/or revise system design documentation and operations documentation to include providing required input into operation support manuals.
Unit test all code and programs prior to releasing them to quality assurance. Quickly resolve all unit test issues. Assist quality assurance in identifying test cases and creating/mining test data to enable a thorough test of all development deliverables. Respond to all inquiries and issues in a timely manner as developed code/program moves through the testing process.
Provide mentoring and direction to more junior members of the application development team. Influence the shaping of standards and tools. Provide governance oversight to ensure project adherence to development strategy, standards, policies, tools, and procedures. Guide the development team to consistently apply appropriate development principles and standards during all phases.
Work in partnership with the project team and business to fully understand project goals and requirements and use this knowledge to effectively plan and execute the development process. Participate in project design walkthroughs. Evaluate interrelationships between applications to determine whether a change in one part of the project would impact or cause undesirable results in related applications and design for effective interfaces between interrelated applications.
Improve the health of system assets by identifying enhancements to improve performance, reliability, and resource consumption. Track exceptions to standards (e.g. security gaps) to ensure they are addressed in a planful and timely fashion. Evaluate and troubleshoot root-cause analysis for production issues and system failures; determine corrective action(s) and propose improvements to prevent their recurrence.
Maintain up-to-date business domain knowledge and technical skills in software development technologies and methodologies. Provide input in the selection, implementation and use of development tools and best practices. Work effectively in a team environment to ensure that solution delivery is on time, within cost estimates and meets business needs.
Bachelor's degree or equivalent (4-years) in Computer Science, Engineering or related technical field; or related work experience.
5+ years of relevant experience required.
Meaningful programming experience in Java, C# or equivalent
Experience in Python/R, TypeScript, NodeJS or one other modern front end framework
Unit test automation and build automation experience
Experience as DevOps Engineer in an AWS environment with tools and services such as Jenkins, Cloud Formation, Terraform, Cloud Watch, Kubernetes/EKS, Lambda,
Practical job experience refactoring or re-engineering applications to take advantage of cloud native capabilities including PaaS, DaaS, elasticity, available zones/HA,
Lambda/Functions or other serverless constructs, and/or re-architecting traditional batch-type process to cloud paradigm.
In-depth knowledge of Linux and Docker
Practical job experience working on migrations to AWS
Experience on AWS RDS, S3, Athena, Glue
Prior experience in design, development and implementation of application development solutions
In-depth knowledge of application, information, infrastructure, middleware and security architectures.
Innovate with new technologies and existing strategic platforms to deliver quality products
Lead technical discussions with users on deliverables and requirements
Financial Services industry specific knowledge (financial asset management) that includes a working knowledge of industry standards.
Solid understanding of business functional areas and business management issues as well as the IT organizations systems and capabilities.
Exceptional written and verbal communication skills.
Proven experience in delivering in an on-site offshore model working with multiple vendor partners.