22May

Software Engineer – Software Design Strategies

This position is open to candidates seeking remote opportunities. Candidate must be open to travel to headquarters located in Johnston, RI dependent on business needs. Must be willing to work EST hours.

Our client is a leading property insurer of the world’s largest businesses, providing more than one-third of FORTUNE 1000-size companies with engineering-based risk management and property insurance solutions. They help clients maintain continuity in their business operations by drawing upon state-of-the-art loss-prevention engineering and research; risk management skills and support services; tailored risk transfer capabilities; and superior financial strength. To do so, we rely on a dynamic, culturally diverse group of employees, working in more than 100 countries, in a variety of challenging roles.

Software Design Strategies Team

Our client’s Software Engineering has taken on significant change in recent years. Some of this change is within the adoption of “Cloud-Native” Development – new technologies that require different application design skills.

Becoming technically competent in cloud-native application design and development, leading, and raising the bar for both our full-time and partner engineering staff requires a continual, focused methodology to modernize our software design and development and improve our technical value delivery. It has also become important to design and develop at scale in a multi-team scenario requiring renewed modular and interface-based design focus.

The software design strategies team is a hand-on special central team that works across multiple projects, often greenfield applications, for relatively shorter duration such as a quarter and helps development teams design their application. The members of this team are champions in the field of modern software engineering including but not limited to object-oriented design, cloud technologies, event driven architecture, modularity, shared codebase structure, interface-based design, and integration patterns. Their primary objective is to enable software engineering teams to deliver quality software in time and in the process share their knowledge to the team members.

Responsibilities

We are hiring highly skilled Software Engineers to join the Software Design Strategies team. This is a great opportunity for someone who would like to showcase and practice the art of software engineering & design and help our software engineering teams deliver high quality software.

As a hands-on member of this team, you will collaborate with assigned team members to lead design and implementation of multi-tiered enterprise solutions that are feature rich, performant, and maintain a high degree of test automation.

This role will actively participate and contribute to technical design, coding, and code reviews. You will work to enhance your skills and capabilities and those of other developers within your agile chapter through experimentation, training, and knowledge sharing.

You will bring…

  • Strong software engineering and design skills.
  • Strong leadership and problem-solving skills.
  • Ability to create design artifacts such as software models and application architecture diagrams.
  • Commitment to delivery.
  • Excellent communication skills and a desire to collaborate openly within a fast-moving team.
  • A deep desire to learn and apply technology in a pragmatic way to create client value.
  • Experience designing and building systems that are maintainable, evolvable, and highly tested.
  • Ability to effectively participate in peer code reviews and pull requests, both as the reviewer and the reviewee.
  • The desire and initiative to know the latest in development technologies, tools, and implementation patterns to share this knowledge within teams and the broader organization.

Qualifications

10+ years of Software engineering and design experience with large scale business applications in a fast-paced iterative development environment.

5+ years’ experience leading software design in teams of 5+ team members.

Insurance industry experience is a big plus but not required!

Technical Skills

  • Experience with patterns-based Software Design including creation of reference designs for teams.
  • Experience with breaking down complex problems into simpler repeatable design artifacts such as domain models, class, sequence, state, and activity diagrams.
  • Experience with C# (or Java), .NET, data structures, basic algorithms, and applying object-oriented principles and design patterns.
  • Strong API design and development skills.
  • Proficiency with development tools such as Visual Studio and Git.
  • Proficiency with relational databases design and query construction and optimization (we use SQL Server and Postgress, other RDBMS experience is acceptable).
  • Experience implementing unit and integration tests with NUnit, xUnit, MS Test, Selenium or similar.
  • Strong understanding of architectural principles of software development, modelling, and security.
  • Experience with or desire to upskill on modern technologies including:
  • React.JS
  • GraphQL
  • Cypress
  • Apollo
  • Hasura

Education

Bachelor’s degree in computer science, Information Technology, or a related field. Advanced degree and certification are desirable!