Job descriptionThis job family brings an engineering discipline and best practices to investigating, architecting, designing and implementing new solutions and/or adding new features and functions to existing solutions, which meet our Insurance clients business needs.
Investigation: Investigation starts with understanding the business problem to be solved. Software Engineers may lead or participate in requirements gathering that will feed an iterative based methodology. Packaged Software and SaaS products are commonly identified, and utilized, within Standard and are integrated with by new and existing solutions. Software Engineers are expected to be proficient installing and integrating these components.
Architect and Design: Designing solutions using an iterative, test driven methodology is the expectation. Software Engineers will write their own unit tests and perform the validation using contemporary tools, moving us towards continuous development/continuous integration.
Production ready code is the target for all Software Engineers in this family. Data needs will be gathered, designed, implemented and tested by the Software Engineer using Oracle, Microsoft, or other data repositories. More complex data designs will be overseen by a specific Data Engineer. User Interface or User Experience design is the responsibility of the Software Engineer and should use a responsive design framework. Designs and code are peer reviewed with other Software Engineers or architectural governing bodies, depending on their complexity. Proto-typing is expected when introducing new approaches or techniques. Development in multiple modern languages is required with good proficiency. All architecture and design is expected to adhere to good enterprise level application security best practices.
Implement: Software Engineers are expected to build and automate the deployment of their components/solutions into production using contemporary and emerging platforms, technology and software engineering methods. Knowledge or proficiency in the current industry toolset for this purpose is required.
Software Engineers have to possess and demonstrate systems and critical thinking and leverage that in a collaborative team based environment. The ability to play varying roles comfortably is required. They must be self-directed and have the ability to technically lead at a senior level. Working in a multi-vendor, offshore model is now the norm in the industry and Software Engineers need to know how to be successful in this model.
The languages and/or platforms the Software Engineer should be familiar with are:
? Java – Including development of Services and/or Micro-Services
? .Net C++
? Salesforce.Com or Force.com
? Angular, HTML5 with Responsive Design
? Data Repositories (Oracle/SQL Server with MSBI) with some knowledge of ETL
? Git, Jira, Jenkins, Maven, Junit, Jmeter, Selenium, Jprobe and XLDeploy/Release
? Cloud provider platforms (Azure, AWS, Google using IaaS, PaaS)
? Experience or comfort operating in a distributed, non-homogeneous technology environment
KNOWLEDGE: Uses professional concepts; applies company policies and procedures to resolve a variety of issues.
JOB COMPLEXITY: Works on problems of moderate scope where analysis of situations or data requires a review of a variety of factors. Exercises judgment within defined procedures and practices to determine appropriate action. Has internal and some external contacts.
SUPERVISION: Normally receives general instructions on routine work, detailed instructions on new projects or assignments.
EXPERIENCE: Typically requires a minimum of 2 years of related experience. B.Sc. Degree in Software Engineering, Computer Science or Information Systems preferred, or equivalent experience as a substitute.