The Software Engineer IV develops, implements, and maintains software solutions that enable business operations to realize company goals & objectives. The incumbent performs analysis, design, coding, debugging, testing, and support of software applications. May be assigned to develop new applications/systems, enhance/upgrade existing systems or provide production support. He/she works independently on moderately complex projects, receiving only general direction. May provide assistance and direction to less experienced peers.
- Works with the Agile Program Manager (APM), Digital Product Manager (DPM), and Business Systems Analyst (BSA) to accurately capture stakeholder requests and system specifications and translate them into engineering artifacts, which typically include design specifications, source code, test scripts and test results.
- Coordinates with software architects and Software engineer IVs to ensure that the engineering realization is in accordance with Enterprise Architecture principles and software development best practices.
- As part of Agile teams, completes software development work which includes application design, coding, code review and testing. Keeps Agile team and APM apprised of project status.
- Offers suggestions to stakeholders on devising effective and efficient approaches to achieve project and program objectives.
- Manages engineering risks by proactively tracking and communicating issues, and devising methods to mitigating them.
- Liaises with other project and program areas to coordinate interdependencies and resolve issues.
- Supports business units in the resolution of in-depth user questions and issues following production support process and SLA’s.
- Maintains a working knowledge of new technology and software engineering standards, practices and tools.
- Provides input to APM/DPM in creation of Product Roadmap, High Level Estimates
- Collaborates with IT management to define and develop documentation & engineering artifact standards, guidelines, processes, and templates.
- Advanced knowledge of the theoretical and practical application of highly specialized software engineering best practices, methods & techniques.
- Extensive experience in developing software applications on the assigned technology platform.
- Extensive knowledge on source code change management and related tools.
- Knowledge and experience using agile software development principles, process and tools..
- Excellent analytical, problem solving and organizational skills.
- Excellent interpersonal, and written and oral communication skills.
- Strong customer service skills in order to provide end user/business owner systems support.
- Knowledge of production support processes such as incident and problem management techniques.
- XML / XSLT
- SQL Query Knowledge / Ability to read and understand data in a database
- Source Control/TFS
- SOAP/REST Services Consumption
- Configuration experience such as Pega, Guidewire, PolicyWriter or other configurable systems
Technology Experience and Expertise
- Experience developing lPython/Django database-backed business applications
- Experience with Python 3, Django, Ubuntu, Postgres, Github
- Front end development experience including React, Redux, Typescript
- Advantage will be given to candidates with experience working with: Slack, Jenkins, CircleCI
- Experience with the following technologies is a plus:
- Experience with AWS services (particularly RDS/S3/EC2)
- Ubuntu, Docker, Redis, Celery, Nginx, Supervisor, .NET, Typescript
- Experience working within an agile software development methodology
- Experience building financial systems, data analytics systems and web APIs
- Experience developing React applications on top of popular third-party applications such as Google Maps, React Table, and PDF.js
- Experience with Insurance / Reinsurance systems and data
- Must have excellent communication skills:
- Excellent command of the English language, i.e. Ability to write and understand written documents, email and other forms of electronic communications.
- Ability to discuss, articulate and complex technical topics to non-technical people
- Required knowledge and skills would typically be acquired through a Bachelors degree in computer science, business, or related field plus 5-7 years of related experience.