About the Client
We are one of the world’s leading providers of reinsurance, insurance and other forms of insurance-based risk transfer, working to make the world more resilient. We anticipate and manage a wide variety of risks, from natural catastrophes and climate change to cybercrime. Combining experience with creative thinking and cutting-edge expertise, we create new opportunities and solutions for our clients. This is possible thanks to the collaboration of more than 14,000 employees across the world.
About the Role
The role requires an active, hands-on person working with technology, code, and people on a daily basis. Here's how we work:
We take care of large existing Java code bases, and don't fear to modernize them.
We develop new services and applications, adding new capabilities to our application landscape.
We review code, giving feedback to the developers in the teams that we guide through the technology jungle.
We keep up with the vibrant developments in Java and Spring Boot, and we love to use latest Java technology.
We always have our standard IDE, IntelliJ IDEA, at our fingertips.
We love data and know how to connect to data using PostgreSQL, MongoDB, REDIS.
We foster loosely coupled systems designs, and we use domain events and commands using RabbitMQ, and Azure Service Bus.
About the team
Our team takes care of a large set of key applications in the core business, plus we have Internet facing APIs and applications.
We guide 250+ developers, QA and DevOps engineers, removing obstacles, setting standards
Our user base is worldwide, and mostly internal Underwriters, and Business Service and Management user groups.
We use Lean/Agile methodologies, mainly Scrum.
Our applications are based on public and private Clouds, and we build 12-factor applications.
Responsibilities
We are building up internal engineering capabilities. In this first phase, we are looking for self-driven, eager to learn software engineers.
You interact with one or more development teams on a daily basis through Dailies, Sprint reviews and planning sessions, shaping the team's technical backlogs.
You drive efficient decision making processes using ADR (Architecture Decision Records).
You foster a best-in-class developer experience.
You bring back best practices, or new ideas to our central engineering team for evaluation and eventual incorporation of it in our central body of documentation.
You identify and collect issues and pain points in the teams, and you bring them back to the architecture team to learn and share.
Requirements
On the soft factor side, here's what you should bring with you:
You are passionate about software development and technology.
You love to solve problems, and you have strong analytical skills. You tackle problems in a structured way, merging your own ideas and those of others.
You are a good communicator, and you love to talk to business analysts, developers, and testers.
We need you to bring in the following must haves:
Bachelor or master in Computer Science.
Proficient in software development using Java and Spring Boot with 5+ years of hands-on experience.
Experience in scripting on Linux and/or Windows.
Leadership skills to manage and guide technical product development teams.
Nice to Have Skills
Experience in API design and implementation (REST, RPC, SOAP, etc.) is a plus.
Experience in message based designs using RabbitMQ, Azure Service Bus, Kafka, or other technologies is a plus.
Experience in software development using NodeJS and any major UI framework, such as Angular, React, Svelte, etc. is a plus.
An understanding of insurance/reinsurance business is a plus.